From 755de461b341153b1e8833f33b402793185c2732 Mon Sep 17 00:00:00 2001 From: morioka Date: Mon, 23 Feb 1998 11:08:10 +0000 Subject: [PATCH] Sync with latest Semi-gnus. --- lisp/ChangeLog | 405 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/nnmail.el | 91 ++++++------- lisp/nnmh.el | 35 +++-- 3 files changed, 462 insertions(+), 69 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b8d4bdb..60cdafb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,408 @@ +Tue Feb 17 07:00:43 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.29 is released. + +Tue Feb 17 06:15:03 1998 Lars Magne Ingebrigtsen + + * nnmail.el (nnmail-purge-split-history): List if alists, not + alist. + +Mon Feb 16 20:22:04 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.28 is released. + +1998-02-16 Lars Magne Ingebrigtsen + + * message.el (message-dont-send): Make sure the article really is + saved. + + * nnmail.el (nnmail-purge-split-history): Alist; not a list of + alists. + +1998-02-16 Hrvoje Niksic + + * message.el (message-kill-to-signature): Do the right thing when + there is no signature. + +1998-02-16 Hrvoje Niksic + + * message.el (message-elide-elipsis): Add type and group. + (message-elide-region): Docfix. + +1998-02-16 Lars Magne Ingebrigtsen + + * gnus-util.el (gnus-run-hooks): Use unwind-protect instead of + save-excursion. + +1998-02-16 Per Abrahamsen + + * nntp.el (nntp-authinforc-file): Customized. + +Mon Feb 16 03:18:33 1998 Lars Magne Ingebrigtsen + + * gnus-nocem.el (gnus-nocem-unwanted-article-p): Don't look if the + hashtable doesn't exist. + + * gnus-start.el (gnus-ask-server-for-new-groups): Make sure the + killed groups hashtable exists. + +Sun Feb 15 23:02:11 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-authinforc-file): Changed name and default. + (nntp-send-authinfo): Use it. + +Sun Feb 15 19:50:10 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.27 is released. + +Sun Feb 15 19:41:14 1998 Lars Magne Ingebrigtsen + + * gnus.el (gnus-ephemeral-servers): New variable. + * gnus-srvr.el (gnus-server-prepare): Use it. + * gnus-group.el (gnus-group-read-ephemeral-group): Ditto. + +Sun Feb 15 19:35:11 1998 Kurt Swanson + + * gnus-art.el (gnus-article-read-summary-keys): Go to top on + some. + +Sun Feb 15 19:26:21 1998 SeokChan LEE + + * message.el (message-ignored-supersedes-headers): Fix. + +Sun Feb 15 18:39:15 1998 Lars Magne Ingebrigtsen + + * gnus-salt.el (gnus-tree-close): Start killing buffer again. + + * gnus-sum.el (gnus-mark-article-as-read): Return t. + + * gnus-art.el (gnus-article-edit-mode): Run text mode hook. + +Sun Feb 15 17:31:19 1998 Roland Roberts + + * gnus-sum.el (gnus-nov-parse-line): Would bug out on bogus + References headers. + +Sun Feb 15 14:23:51 1998 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-article-current-summary): New variable. + (gnus-article-mode): Make it local. + + * gnus-score.el (gnus-summary-increase-score): Find the right + global score file. + + * gnus-start.el (gnus-setup-news): Don't find new newsgroups + unless plugged. + + * message.el (message-mode): Set font-lock things before running + mode hook. + + * gnus-agent.el (gnus-agent-group-path): Respect long file names. + +Sat Feb 14 21:31:25 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-goto-last-article): Force jumping to + articles outside limit. + + * gnus-agent.el (gnus-agent-toggle-plugged): un/plug before hook. + +Sat Feb 14 21:08:03 1998 Kim-Minh Kaplan + + * gnus-xmas.el (gnus-xmas-article-display-xface): t t would make + faces disappear. + +Sat Feb 14 20:52:34 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-netrc-file): New variable. + +Sat Feb 14 19:28:01 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.26 is released. + +Sat Feb 14 18:40:55 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-directory): Translate file chars. + + * gnus-sum.el (gnus-summary-print-article): Don't display all + headers. + (gnus-summary-edit-parameters): New command and keystroke. + + * gnus-group.el (gnus-group-rename-group): Mark dribble. + +Sat Feb 14 18:39:45 1998 Fred Oberhauser + + * nnmail.el (nnmail-process-babyl-mail-format): Fix point + movement. + +Sat Feb 14 18:31:39 1998 Lars Magne Ingebrigtsen + + * gnus.el (gnus-group-get-parameter): Dix fix. + +Sat Feb 14 18:29:12 1998 Kim-Minh Kaplan + + * gnus-picon.el: Updated documentation. + +Sat Feb 14 18:26:53 1998 Joev Dubach + + * nntp.el (nntp-send-authinfo-from-file): Doc fix. + +Sun Jan 11 23:44:12 1998 Ken Raeburn + + * nnagent.el (nnagent-request-update-info): New no-op fn. + +Sat Feb 14 17:41:44 1998 Lars Magne Ingebrigtsen + + * gnus-srvr.el (gnus-browse-unsubscribe-group): Wouldn't allow + subscription of visited groups. + + * gnus-util.el (gnus-run-hooks): New function. + Use it everywhere. + + * nntp.el (nntp-authinfo-password): New variable. + (nntp-send-authinfo): Cache authinfo password. + + * gnus-sum.el (gnus-summary-mark-article-as-unread): Don't do + anything if the mark doesn't change. + +1998-01-17 Simon Josefsson + + * gnus-sum.el (gnus-summary-work-articles): change buffer + before looking at marked articles + (gnus-summary-work-articles): better check of marked articles + +Sat Feb 14 15:10:36 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-send-authinfo): Use new .netrc functionality. + + * gnus-util.el (gnus-netrc-syntax-table): New variable. + (gnus-parse-netrc): New function. + (gnus-netrc-machine): Ditto. + (gnus-netrc-get): Ditto. + + * gnus-draft.el (gnus-draft-make-menu-bar): Added deletion. + + * gnus.el (gnus-expert-user): Dix fox. + + * nnmail.el (nnmail-article-group): Remove duplicates from split. + + * message.el (message-check-news-header-syntax): Check more on + Message-ID. + + * nnmh.el: Don't call nnmail-activate. + + * gnus.el: User-variabelize all custom vars. + +Fri Feb 13 22:40:39 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.25 is released. + +Fri Feb 13 19:01:19 1998 Lars Magne Ingebrigtsen + + * nndoc.el (nndoc-type-alist): Allow blank lines to separate + headers from bodies. + + * gnus-art.el (gnus-article-edit): Restore Date header. + + * gnus-async.el (gnus-asynch-obarray): New variable. + (gnus-async-prefetched-article-entry): Use it. + (gnus-async-set-buffer): Use it. + + * nnmh.el (nnmh-active-number): Create parent dirs. + + * nntp.el (nntp-last-command): New variable. + (nntp-handle-authinfo): New function. + + * gnus-sum.el (gnus-summary-exit): Call purging function. + +Fri Feb 13 18:59:16 1998 François Pinard + + * nnmail.el (nnmail-get-new-mail): Don't clear split-history. + (nnmail-purge-split-history): New function. + +Fri Feb 13 18:36:16 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-telnet-shell-prompt): Renamed. + +Fri Feb 13 18:35:23 1998 Sam Falkner + + * nntp.el (nntp-open-telnet-envuser): New variable. + +Fri Feb 13 18:29:23 1998 Lars Magne Ingebrigtsen + + * message.el (message-send-mail-function): Added smtpmail-send-it. + +1998-02-11 Dave Love + + * gnus-art.el (gnus-button-url): Don't lose in Emacs 20 with + browse-url-browser-function an alist, not a function. + (gnus-button-embedded-url): Likewise. + +Fri Feb 13 17:10:31 1998 Lars Magne Ingebrigtsen + + * gnus-cite.el (gnus-cite-localize): New function. + (gnus-cite-close): Renamed. + (gnus-cite-parse-maybe): Use it. + + * gnus-sum.el (gnus-summary-move-article): Move back to summary + buffer. + + * nnfolder.el (nnfolder-request-accept-article): Save excursion. + (nnfolder-request-move-article): Ditto. + + * nntp.el (nntp-find-connection): Don't message. + +Fri Feb 13 14:51:56 1998 MORIOKA Tomohiko + + * message.el (message-send-mail-with-qmail): Fix. + +1998-02-13 Per Abrahamsen + + * gnus-draft.el (gnus-draft-make-menu-bar): Added missing commands. + +1998-01-06 Per Abrahamsen + + * gnus/gnus-cus.el (gnus-score-parameters): Make `files' and + `exclude-files' widgets inline. + +Fri Feb 13 12:46:23 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-article-mark): Dox dox. + +Wed Feb 11 15:05:03 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.24 is released. + +Tue Feb 10 21:59:53 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-fetch-session): Reversed reversal. + + * gnus-topic.el (gnus-topic-rename): Check whether the new name + exists. + +Tue Feb 10 21:39:47 1998 dave edmondson + + * message.el (message-font-lock-keywords): Allow : as a citation + ending. + +Tue Feb 10 20:09:02 1998 Lars Magne Ingebrigtsen + + * message.el (message-send): Removed dead code. + +Mon Feb 9 17:02:09 1998 Lars Magne Ingebrigtsen + + * message.el (message-fill-header): Fill to column 990. + + * gnus-score.el (gnus-score-load-file): Exclude all excluded + files. + +Mon Feb 9 16:55:41 1998 jari aalto + + * gnus-art.el (gnus-article-time-format): Extended variable. + +Mon Feb 9 16:27:59 1998 Lars Magne Ingebrigtsen + + * gnus-art.el (article-make-date-line): Make 8601 Dates. + (article-date-iso8601): New command and keystroke. + +Sun Feb 8 21:19:15 1998 Lars Magne Ingebrigtsen + + * message.el (message-ignored-mail-headers): Remove Xrefs. + + * nndoc.el (nndoc-open-document-hook): New variable. + +Sun Feb 8 21:01:33 1998 Istvan Marko + + * gnus-agent.el (gnus-unplugged): Typo fix. + +Sun Feb 8 18:34:31 1998 Kurt Swanson + + * gnus-score.el (gnus-score-thread-simplify): New variable. + +Sun Feb 8 18:31:35 1998 Lars Magne Ingebrigtsen + + * gnus-uu.el (gnus-uu-post-encode-mime): Call mmencode with + correct params. + +Sun Feb 8 18:13:58 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.23 is released. + +Sun Feb 8 17:20:40 1998 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-update-group-mark-positions): Bind `topic'. + + * message.el (message-expand-group): Added doc string. + + * nntp.el (nntp-wait-for): Don't change limit until after + accepting output. + +Sun Feb 8 16:44:36 1998 Richard Hoskins + + * message.el (message-kill-to-signature): Don't kill the + delimiter. + +Sun Feb 8 16:15:33 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-prepared-hook): New hook. + (gnus-summary-read-group-1): Use it. + + * message.el (message-cite-original-without-signature): New + function. + (message-cite-function): Added to custom. + +1998-01-13 Per Abrahamsen + + * gnus/message.el (message-cite-original): Don't quote signature. + +Sun Feb 8 15:50:20 1998 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-unsubscribe-group): Protest against + empty group names. + +Mon Feb 2 18:56:22 1998 Lars Magne Ingebrigtsen + + * gnus-draft.el (gnus-draft-setup): Associate with drafts group. + + * message.el (message-header-format-alist): Fill references. + + * gnus-agent.el (gnus-category-read): Changed default. + (gnus-agent-handle-level): New variable. + (gnus-agent-fetch-session): Use it. + + * gnus-art.el (article-strip-all-blank-lines): New command and + keystroke. + +Sun Feb 1 18:00:54 1998 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-inews-reject-message): Removed function. + (gnus-sent-message-ids-file): Removed. + (gnus-sent-message-ids-length): Ditto. + + * gnus-xmas.el (gnus-xmas-summary-set-display-table): Ditto. + + * gnus-sum.el (gnus-simplify-subject-fuzzy): Respect + `gnus-simplify-ignored-prefixes'. + (gnus-summary-set-display-table): Keep TAB. + +Thu Jan 15 22:47:38 1998 + + * gnus-art.el (gnus-request-article-this-buffer): Put it into the + backlog. + +Mon Jan 12 23:30:59 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-get-newsgroup-headers): Use the longest ID. + + * nnheader.el (nnheader-parse-head): Ditto. + +Thu Jan 8 09:47:18 1998 Lars Magne Ingebrigtsen + + * gnus-start.el (gnus-1): Use gnus-alive-p. + +Tue Jan 6 11:53:09 1998 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-article-prepare): Bind coding systems. + Tue Jan 6 07:45:39 1998 Lars Magne Ingebrigtsen * gnus.el: Quassia Gnus v0.22 is released. diff --git a/lisp/nnmail.el b/lisp/nnmail.el index c6cb367..e326b09 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1,5 +1,5 @@ ;;; nnmail.el --- mail support functions for the Gnus mail backends -;; Copyright (C) 1995,96,97 Free Software Foundation, Inc. +;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail @@ -74,7 +74,7 @@ (defcustom nnmail-split-methods '(("mail.misc" "")) - "Incoming mail will be split according to this variable. + "*Incoming mail will be split according to this variable. If you'd like, for instance, one mail group for mail from the \"4ad-l\" mailing list, one group for junk mail and one for everything @@ -106,14 +106,14 @@ This variable can also have a function as its value." ;; Suggested by Erik Selberg . (defcustom nnmail-crosspost t - "If non-nil, do crossposting if several split methods match the mail. + "*If non-nil, do crossposting if several split methods match the mail. If nil, the first match found will be used." :group 'nnmail-split :type 'boolean) ;; Added by gord@enci.ucalgary.ca (Gordon Matzigkeit). (defcustom nnmail-keep-last-article nil - "If non-nil, nnmail will never delete/move a group's last article. + "*If non-nil, nnmail will never delete/move a group's last article. It can be marked expirable, so it will be deleted when it is no longer last. You may need to set this variable if other programs are putting @@ -123,14 +123,14 @@ new mail into folder numbers that Gnus has marked as expired." :type 'boolean) (defcustom nnmail-use-long-file-names nil - "If non-nil the mail backends will use long file and directory names. + "*If non-nil the mail backends will use long file and directory names. If nil, groups like \"mail.misc\" will end up in directories like \"mail/misc/\"." :group 'nnmail-files :type 'boolean) (defcustom nnmail-default-file-modes 384 - "Set the mode bits of all new mail files to this integer." + "*Set the mode bits of all new mail files to this integer." :group 'nnmail-files :type 'integer) @@ -145,7 +145,7 @@ can also be `immediate' and `never'." (const never))) (defcustom nnmail-expiry-wait-function nil - "Variable that holds function to specify how old articles should be before they are expired. + "*Variable that holds function to specify how old articles should be before they are expired. The function will be called with the name of the group that the expiry is to be performed in, and it should return an integer that says how many days an article can be stored before it is considered @@ -164,14 +164,14 @@ Eg.: (function :format "%v" nnmail-))) (defcustom nnmail-cache-accepted-message-ids nil - "If non-nil, put Message-IDs of Gcc'd articles into the duplicate cache." + "*If non-nil, put Message-IDs of Gcc'd articles into the duplicate cache." :group 'nnmail :type 'boolean) (defcustom nnmail-spool-file (or (getenv "MAIL") (concat "/usr/spool/mail/" (user-login-name))) - "Where the mail backends will look for incoming mail. + "*Where the mail backends will look for incoming mail. This variable is \"/usr/spool/mail/$user\" by default. If this variable is nil, no mail backends will read incoming mail. If this variable is a list, all files mentioned in this list will be @@ -182,7 +182,7 @@ treat all files in that directory as incoming spool files." :type 'file) (defcustom nnmail-crash-box "~/.gnus-crash-box" - "File where Gnus will store mail while processing it." + "*File where Gnus will store mail while processing it." :group 'nnmail-files :type 'file) @@ -211,7 +211,7 @@ several files - eg. \".spool[0-9]*\"." :type 'boolean) (defcustom nnmail-delete-file-function 'delete-file - "Function called to delete files in some mail backends." + "*Function called to delete files in some mail backends." :group 'nnmail-files :type 'function) @@ -219,7 +219,7 @@ several files - eg. \".spool[0-9]*\"." (if (string-match "windows-nt\\|emx" (format "%s" system-type)) 'copy-file 'add-name-to-file) - "Function called to create a copy of a file. + "*Function called to create a copy of a file. This is `add-name-to-file' by default, which means that crossposts will use hard links. If your file system doesn't allow hard links, you could set this variable to `copy-file' instead." @@ -248,7 +248,7 @@ to be moved to." (if (eq system-type 'windows-nt) '(nnheader-ms-strip-cr) nil) - "Hook that will be run after the incoming mail has been transferred. + "*Hook that will be run after the incoming mail has been transferred. The incoming mail is moved from `nnmail-spool-file' (which normally is something like \"/usr/spool/mail/$user\") to the user's home directory. This hook is called after the incoming mail box has been @@ -278,25 +278,25 @@ If you use `display-time', you could use something like this: ;; Suggested by Erik Selberg . (defcustom nnmail-prepare-incoming-hook nil - "Hook called before treating incoming mail. + "*Hook called before treating incoming mail. The hook is run in a buffer with all the new, incoming mail." :group 'nnmail-prepare :type 'hook) (defcustom nnmail-prepare-incoming-header-hook nil - "Hook called narrowed to the headers of each message. + "*Hook called narrowed to the headers of each message. This can be used to remove excessive spaces (and stuff like that) from the headers before splitting and saving the messages." :group 'nnmail-prepare :type 'hook) (defcustom nnmail-prepare-incoming-message-hook nil - "Hook called narrowed to each message." + "*Hook called narrowed to each message." :group 'nnmail-prepare :type 'hook) (defcustom nnmail-list-identifiers nil - "Regexp that matches list identifiers to be removed. + "*Regexp that matches list identifiers to be removed. This can also be a list of regexps." :group 'nnmail-prepare :type '(choice (const :tag "none" nil) @@ -304,17 +304,17 @@ This can also be a list of regexps." (repeat :value (".*") regexp))) (defcustom nnmail-pre-get-new-mail-hook nil - "Hook called just before starting to handle new incoming mail." + "*Hook called just before starting to handle new incoming mail." :group 'nnmail-retrieve :type 'hook) (defcustom nnmail-post-get-new-mail-hook nil - "Hook called just after finishing handling new incoming mail." + "*Hook called just after finishing handling new incoming mail." :group 'nnmail-retrieve :type 'hook) (defcustom nnmail-split-hook nil - "Hook called before deciding where to split an article. + "*Hook called before deciding where to split an article. The functions in this hook are free to modify the buffer contents in any way they choose -- the buffer contents are discarded after running the split process." @@ -338,7 +338,7 @@ messages will be shown to indicate the current status." :type 'integer) (defcustom nnmail-split-fancy "mail.misc" - "Incoming mail can be split according to this fancy variable. + "*Incoming mail can be split according to this fancy variable. To enable this, set `nnmail-split-methods' to `nnmail-split-fancy'. The format is this variable is SPLIT, where SPLIT can be one of @@ -401,7 +401,7 @@ Example: (from . "from\\|sender\\|resent-from") (nato . "to\\|cc\\|resent-to\\|resent-cc") (naany . "from\\|to\\|cc\\|sender\\|resent-from\\|resent-to\\|resent-cc")) - "Alist of abbreviations allowed in `nnmail-split-fancy'." + "*Alist of abbreviations allowed in `nnmail-split-fancy'." :group 'nnmail-split :type '(repeat (cons :format "%v" symbol regexp))) @@ -476,7 +476,6 @@ parameter. It should return nil, `warn' or `delete'." (defun nnmail-request-post (&optional server) (mail-send-and-exit nil)) -;; 1997/5/4 by MORIOKA Tomohiko (defvar nnmail-file-coding-system 'raw-text "Coding system used in nnmail.") @@ -487,16 +486,12 @@ parameter. It should return nil, `warn' or `delete'." (let ((format-alist nil) (after-insert-file-functions nil)) (condition-case () - ;; 1997/5/4 by MORIOKA Tomohiko (let ((coding-system-for-read nnmail-file-coding-system) - ;; 1997/8/12 by MORIOKA Tomohiko - ;; for XEmacs/mule. (pathname-coding-system 'binary)) (insert-file-contents file) t) (file-error nil)))) -;; 1997/8/10 by MORIOKA Tomohiko (defvar nnmail-pathname-coding-system 'iso-8859-1 "*Coding system for pathname.") @@ -693,7 +688,6 @@ nn*-request-list should have been called before calling this function." group-assoc))) group-assoc)) -;; 1997/8/12 by MORIOKA Tomohiko (defvar nnmail-active-file-coding-system 'iso-8859-1 "*Coding system for active file.") @@ -740,8 +734,8 @@ is a spool. If not using procmail, return GROUP." (defun nnmail-process-babyl-mail-format (func artnum-func) (let ((case-fold-search t) start message-id content-length do-search end) - (goto-char (point-min)) (while (not (eobp)) + (goto-char (point-min)) (re-search-forward " \n0, *unseen,+\n\\(\\*\\*\\* EOOH \\*\\*\\*\n\\)?" nil t) (goto-char (match-end 0)) @@ -758,7 +752,7 @@ is a spool. If not using procmail, return GROUP." (goto-char (point-min)) (when (looking-at ">From ") (replace-match "X-From-Line: ") ) - (run-hooks 'nnmail-prepare-incoming-header-hook) + (gnus-run-hooks 'nnmail-prepare-incoming-header-hook) (goto-char (point-max)) ;; Find the Message-ID header. (save-excursion @@ -918,7 +912,7 @@ is a spool. If not using procmail, return GROUP." ;; having a (possibly) faulty header. (beginning-of-line) (insert "X-")) - (run-hooks 'nnmail-prepare-incoming-header-hook) + (gnus-run-hooks 'nnmail-prepare-incoming-header-hook) ;; Find the end of this article. (goto-char (point-max)) (widen) @@ -993,7 +987,7 @@ is a spool. If not using procmail, return GROUP." (insert "Original-"))) (forward-line 1) (insert "Message-ID: " (setq message-id (nnmail-message-id)) "\n")) - (run-hooks 'nnmail-prepare-incoming-header-hook) + (gnus-run-hooks 'nnmail-prepare-incoming-header-hook) ;; Find the end of this article. (goto-char (point-max)) (widen) @@ -1030,7 +1024,7 @@ FUNC will be called with the buffer narrowed to each mail." (nnheader-insert-file-contents incoming) (unless (zerop (buffer-size)) (goto-char (point-min)) - (save-excursion (run-hooks 'nnmail-prepare-incoming-hook)) + (save-excursion (gnus-run-hooks 'nnmail-prepare-incoming-hook)) ;; Handle both babyl, MMDF and unix mail formats, since movemail will ;; use the former when fetching from a mailbox, the latter when ;; fetching from a file. @@ -1052,7 +1046,8 @@ FUNC will be called with the group name to determine the article number." (obuf (current-buffer)) (beg (point-min)) end group-art method regrepp) - (if (and (sequencep methods) (= (length methods) 1)) + (if (and (sequencep methods) + (= (length methods) 1)) ;; If there is only just one group to put everything in, we ;; just return a list with just this one method in. (setq group-art @@ -1071,7 +1066,7 @@ FUNC will be called with the group name to determine the article number." (while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t) (replace-match " " t t)) ;; Allow washing. - (run-hooks 'nnmail-split-hook) + (gnus-run-hooks 'nnmail-split-hook) (if (and (symbolp nnmail-split-methods) (fboundp nnmail-split-methods)) (let ((split @@ -1086,6 +1081,7 @@ FUNC will be called with the group name to determine the article number." "Error in `nnmail-split-methods'; using `bogus' mail group") (sit-for 1) '("bogus"))))) + (setq split (remove-duplicates split :test 'equal)) ;; The article may be "cross-posted" to `junk'. What ;; to do? Just remove the `junk' spec. Don't really ;; see anything else to do... @@ -1498,7 +1494,7 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." (message-fetch-field header)))) (defun nnmail-check-duplication (message-id func artnum-func) - (run-hooks 'nnmail-prepare-incoming-message-hook) + (gnus-run-hooks 'nnmail-prepare-incoming-message-hook) ;; If this is a duplicate message, then we do not save it. (let* ((duplication (nnmail-cache-id-exists-p message-id)) (case-fold-search t) @@ -1555,7 +1551,7 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." ;; We first activate all the groups. (nnmail-activate method) ;; Allow the user to hook. - (run-hooks 'nnmail-pre-get-new-mail-hook) + (gnus-run-hooks 'nnmail-pre-get-new-mail-hook) ;; Open the message-id cache. (nnmail-cache-open) ;; The we go through all the existing spool files and split the @@ -1600,12 +1596,12 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." (nnmail-get-value "%s-active-file" method)) (when exit-func (funcall exit-func)) - (run-hooks 'nnmail-read-incoming-hook) + (gnus-run-hooks 'nnmail-read-incoming-hook) (nnheader-message 3 "%s: Reading incoming mail...done" method)) ;; Close the message-id cache. (nnmail-cache-close) ;; Allow the user to hook. - (run-hooks 'nnmail-post-get-new-mail-hook) + (gnus-run-hooks 'nnmail-post-get-new-mail-hook) ;; Delete all the temporary files. (while incomings (setq incoming (pop incomings)) @@ -1663,10 +1659,7 @@ If ARGS, PROMPT is used as an argument to `format'." (defun nnmail-write-region (start end filename &optional append visit lockname) "Do a `write-region', and then set the file modes." - ;; 1997/5/4 by MORIOKA Tomohiko (let ((coding-system-for-write nnmail-file-coding-system) - ;; 1997/8/12 by MORIOKA Tomohiko - ;; for XEmacs/mule. (pathname-coding-system 'binary)) (write-region start end filename append visit lockname) (set-file-modes filename nnmail-default-file-modes))) @@ -1746,15 +1739,13 @@ If ARGS, PROMPT is used as an argument to `format'." (princ "\n"))))) (defun nnmail-purge-split-history (group) - (let ((history nnmail-split-history)) + (let ((history nnmail-split-history) + prev) (while history - (let ((pairs (car history))) - (while pairs - (if (string= (car (car pairs)) group) - (setcar pairs (cdr pairs)) - (setq pairs (cdr pairs))))) - (setq history (cdr history)))) - (setq nnmail-split-history (delq nil nnmail-split-history))) + (setcar history (delete-if (lambda (e) (string= (car e) group)) + (car history))) + (pop history)) + (setq nnmail-split-history (delq nil nnmail-split-history)))) (defun nnmail-new-mail-p (group) "Say whether GROUP has new mail." diff --git a/lisp/nnmh.el b/lisp/nnmh.el index b0c1cb8..0001703 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -1,5 +1,5 @@ ;;; nnmh.el --- mhspool access for Gnus -;; Copyright (C) 1995,96,97 Free Software Foundation, Inc. +;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA @@ -250,7 +250,7 @@ (directory-files nnmh-current-directory nil "^[0-9]+$" t))) (is-old t) article rest mod-time) - (nnmail-activate 'nnmh) + (nnheader-init-server-buffer) (while (and articles is-old) (setq article (concat nnmh-current-directory @@ -303,22 +303,19 @@ (nnmail-check-syntax) (when nnmail-cache-accepted-message-ids (nnmail-cache-insert (nnmail-fetch-field "message-id"))) + (nnheader-init-server-buffer) (prog1 (if (stringp group) - (and - (nnmail-activate 'nnmh) - (if noinsert - (nnmh-active-number group) - (car (nnmh-save-mail - (list (cons group (nnmh-active-number group))) - noinsert)))) - (and - (nnmail-activate 'nnmh) - (let ((res (nnmail-article-group 'nnmh-active-number))) - (if (and (null res) - (yes-or-no-p "Moved to `junk' group; delete article? ")) - 'junk - (car (nnmh-save-mail res noinsert)))))) + (if noinsert + (nnmh-active-number group) + (car (nnmh-save-mail + (list (cons group (nnmh-active-number group))) + noinsert))) + (let ((res (nnmail-article-group 'nnmh-active-number))) + (if (and (null res) + (yes-or-no-p "Moved to `junk' group; delete article? ")) + 'junk + (car (nnmh-save-mail res noinsert))))) (when (and last nnmail-cache-accepted-message-ids) (nnmail-cache-close)))) @@ -335,7 +332,7 @@ t))) (deffoo nnmh-request-create-group (group &optional server args) - (nnmail-activate 'nnmh) + (nnheader-init-server-buffer) (unless (assoc group nnmh-group-alist) (let (active) (push (list group (setq active (cons 1 0))) @@ -432,8 +429,8 @@ (unless noinsert (nnmail-insert-lines) (nnmail-insert-xref group-art)) - (run-hooks 'nnmail-prepare-save-mail-hook) - (run-hooks 'nnmh-prepare-save-mail-hook) + (gnus-run-hooks 'nnmail-prepare-save-mail-hook) + (gnus-run-hooks 'nnmh-prepare-save-mail-hook) (goto-char (point-min)) (while (looking-at "From ") (replace-match "X-From-Line: ") -- 1.7.10.4