From 9a3b6b92b8813b40f097c7758dcfd5a28338bb79 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Sun, 31 Jan 1999 23:06:20 +0000 Subject: [PATCH] * gnus-offline.el: Rewrite to work with pGnus v0.74 based T-gnus. * gnus-ofsetup.el: Ditto. * pop3-fma.el: Removed because after pGnus0.73 , pGnus can treat multiple pop3 account. * gnus.el (running-pterodactyl-gnus-0_73-or-later): Provide as a new feature. * mail-source.el (mail-source-read-passwd): Don't load "passwd" if the function `read-passwd' already exists. * gnus-start.el (gnus-read-active-file): Eliminate duplicated select methods. * gnus-group.el (gnus-group-catchup-current): Fix typo. * gnus.el (gnus-version-number): Update to 6.10.056. * Sync up with Pterodactyl Gnus v0.74. --- lisp/ChangeLog | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-art.el | 118 +++++++++++++++++++++++++++----------------- lisp/gnus-cite.el | 2 +- lisp/gnus-demon.el | 1 - lisp/gnus-group.el | 31 +++++------- lisp/gnus-kill.el | 2 +- lisp/gnus-logic.el | 2 +- lisp/gnus-msg.el | 19 ++++---- lisp/gnus-offline.el | 90 ++++++++++++++++++++-------------- 9 files changed, 285 insertions(+), 113 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 92ab5a5..ead5bb5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,136 @@ +Wed Jan 27 05:24:53 1999 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.74 is released. + +1999-01-27 05:56:29 Lars Magne Ingebrigtsen + + * gnus-art.el (article-fill-long-lines): Renamed. + (article-fill-long-lines): New keystroke. + +1999-01-26 06:35:07 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-setup-posting-charset): Check for group. + + * gnus-group.el (gnus-group-catchup-current): Skip groups now + displayed. + (gnus-group-catchup-current): Be more robus. + + * gnus-sum.el (gnus-summary-select-article): Reselect for showing + headers. + +1999-01-25 Dave Love + + * message.el (message-mode-menu): Add message-mime-attach-file. + (message-mode): Doc fix. + +1999-01-26 05:24:19 Lars Magne Ingebrigtsen + + * nnmail.el (nnmail-check-duplication): Insert the mail source + string. + + * mail-source.el (mail-source-fetch-pop): Bind mail-source-string. + (mail-source-fetch-directory): Ditto. + (mail-source-fetch-file): Ditto. + (mail-source-string): New variable. + + * gnus-start.el (gnus-get-unread-articles): Nix out groups over + the level. + + * rfc2047.el (rfc2047-encodable-p): Convert to MIME charsets + before handling. + + * mm-util.el (mm-mime-charset): Use the parameters. + (mm-mime-charset): Removed region paremeters. + + * nnmail.el (nnmail-get-new-mail): Don't message the entire + source. + +1999-01-25 12:05:16 Lloyd Zusman + + * nnmail.el (nnmail-get-split-group): Quote right. + +1999-01-25 05:55:41 Lars Magne Ingebrigtsen + + * mail-source.el (mail-source-movemail): Would kill an arbitrary + buffer. + +1999-01-24 03:02:31 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-clear-inboxes-moved): Removed. + (gnus-group-mode): Don't hook. + + * mail-source.el (mail-source-bind): Doc fix. + (mail-source-bind): Take only one param. + + * gnus-art.el (gnus-treat-highlight-signature): typep. + + * mail-source.el (mail-source-movemail): Ignore empty file. + (mail-source-callback): Check before deleting. + + * message.el (message-mime-attach-file): Include name. + +1999-01-23 17:01:12 Lars Magne Ingebrigtsen + + * mm-util.el (mm-read-charset): Return a symbol. + + * mm-view.el (mm-inline-text): Insert signature separator. + + * gnus-art.el (gnus-treat-predicate): New function. + (gnus-treat-article): Allow all types to be checked. + + * gnus-util.el (gnus-or): New function. + (gnus-and): Ditto. + + * gnus-art.el (gnus-mime-display-single): Use override. + + * mm-decode.el (mm-attachment-override-types): New variable. + (mm-attachment-override-p): New function. + + * gnus-picon.el (gnus-group-display-picons): Don't go backward. + +1999-01-23 16:45:06 Andrew J. Cosgriff + + * mm-view.el (mm-inline-text): Do vcards. + +Sat Jan 23 14:23:27 1999 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.73 is released. + +1999-01-23 11:38:36 Lars Magne Ingebrigtsen + + * nnmail.el (nnmail-spool-file): Changed to use mail-source. + (nnmail-crash-box, nnmail-use-procmail, nnmail-procmail-directory, + nnmail-procmail-suffix, nnmail-resplit-incoming): Removed. + (nnmail-movemail-program): Removed. + (nnmail-movemail-args): Removed. + (nnmail-pop-password-required): Ditto. + (nnmail-tmp-directory): Ditto. + (nnmail-delete-incoming): Removed. + (nnmail-pop-password, nnmail-moved-inboxes, + nnmail-internal-password, nnmail-move-inbox): Removed. + (nnmail-read-passwd): Ditto. + (nnmail-get-spool-files): Removed. + (nnmail-resplit-incoming): Reinstated. + + * mail-source.el: New file. + +1999-01-23 09:08:31 James H. Cloos, Jr. + + * gnus-art.el (gnus-article-mode-map): Bind backspace. + +1999-01-23 09:05:04 Lars Magne Ingebrigtsen + + * gnus-art.el (article-make-date-line): Fix iso8601 display. + +1999-01-20 02:53:52 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-treat-display-smileys): Check xpm. + + * gnus-picon.el (gnus-group-display-picons): Goto body. + + * gnus.el: Indented all functions; broke long lines; changed all + instances of illegal/legal to invalid/valid. Yes, I'm bored. + Wed Jan 20 00:50:53 1999 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.72 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 6545081..289d910 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -437,8 +437,7 @@ The following additional specs are available: :group 'gnus-article-various) (defcustom gnus-article-prepare-hook nil - "*A hook called after an article has been prepared in the article buffer. -If you want to run a special decoding program like nkf, use this hook." + "*A hook called after an article has been prepared in the article buffer." :type 'hook :group 'gnus-article-various) @@ -638,7 +637,7 @@ displayed by the first non-nil matching CONTENT face." (defvar gnus-inhibit-treatment nil "Whether to inhibit treatment.") -(defcustom gnus-treat-highlight-signature 'last +(defcustom gnus-treat-highlight-signature '(or last (typep "text/x-vcard")) "Highlight the signature." :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -759,7 +758,9 @@ displayed by the first non-nil matching CONTENT face." :group 'gnus-article-treat :type gnus-article-treat-custom) -(defcustom gnus-treat-display-smileys (if gnus-xemacs t nil) +(defcustom gnus-treat-display-smileys (if (and gnus-xemacs + (featurep 'xpm)) + t nil) "Display smileys." :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -778,7 +779,6 @@ displayed by the first non-nil matching CONTENT face." '((gnus-treat-highlight-signature gnus-article-highlight-signature) (gnus-treat-buttonize gnus-article-add-buttons) (gnus-treat-buttonize-head gnus-article-add-buttons-to-head) - (gnus-treat-emphasize gnus-article-emphasize) (gnus-treat-fill-article gnus-article-fill-cited-article) (gnus-treat-strip-cr gnus-article-remove-cr) (gnus-treat-hide-headers gnus-article-hide-headers) @@ -790,6 +790,7 @@ displayed by the first non-nil matching CONTENT face." (gnus-treat-highlight-headers gnus-article-highlight-headers) (gnus-treat-highlight-citation gnus-article-highlight-citation) (gnus-treat-highlight-signature gnus-article-highlight-signature) + (gnus-treat-emphasize gnus-article-emphasize) (gnus-treat-date-ut gnus-article-date-ut) (gnus-treat-date-local gnus-article-date-local) (gnus-treat-date-lapsed gnus-article-date-lapsed) @@ -1184,22 +1185,24 @@ MAP is an alist where the elements are on the form (\"from\" \"to\")." (put-text-property (point) (1+ (point)) 'face 'underline))))))))) -(defun article-fill () - "Format too long lines." +(defun article-fill-long-lines () + "Fill lines that are wider than the window width." (interactive) (save-excursion - (let ((buffer-read-only nil)) - (widen) - (article-goto-body) - (end-of-line 1) - (let ((paragraph-start "^[>|#:<;* ]*[ \t]*$") - (adaptive-fill-regexp "[ \t]*\\([|#:<;>*]+ *\\)?") - (adaptive-fill-mode t)) - (while (not (eobp)) - (and (>= (current-column) (min fill-column (window-width))) - (/= (preceding-char) ?:) - (fill-paragraph nil)) - (end-of-line 2)))))) + (let ((buffer-read-only nil) + (width (window-width (get-buffer-window (current-buffer))))) + (save-restriction + (widen) + (article-goto-body) + (let ((adaptive-fill-mode nil)) + (while (not (eobp)) + (end-of-line) + (when (>= (current-column) (min fill-column width)) + (narrow-to-region (point) (gnus-point-at-bol)) + (fill-paragraph nil) + (goto-char (point-max)) + (widen)) + (forward-line 1))))))) (defun article-remove-cr () "Translate CRLF pairs into LF, and then CR into LF.." @@ -1733,7 +1736,7 @@ how much time has lapsed since DATE." ((eq type 'iso8601) (concat "Date: " - (format-time-string "%Y%M%DT%h%m%s" time))) + (format-time-string "%Y%m%dT%H%M%S" time))) ;; Do an X-Sent lapsed format. ((eq type 'lapsed) ;; If the date is seriously mangled, the timezone functions are @@ -2186,7 +2189,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is '(article-hide-headers article-hide-boring-headers article-treat-overstrike - (article-fill . gnus-article-word-wrap) + article-fill-long-lines article-remove-cr article-display-x-face article-de-quoted-unreadable @@ -2225,6 +2228,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is " " gnus-article-goto-next-page "\177" gnus-article-goto-prev-page [delete] gnus-article-goto-prev-page + [backspace] gnus-article-goto-prev-page "\C-c^" gnus-article-refer-article "h" gnus-article-show-summary "s" gnus-article-show-summary @@ -2975,7 +2979,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (if (and (setq not-attachment (or (not (mm-handle-disposition handle)) (equal (car (mm-handle-disposition handle)) - "inline"))) + "inline") + (mm-attachment-override-p type))) (mm-automatic-display-p type) (or (mm-inlinable-part-p type) (mm-automatic-external-display-p type))) @@ -4397,34 +4402,59 @@ For example: (let ((length (- (point-max) (point-min))) (alist gnus-treatment-function-alist) (article-goto-body-goes-to-point-min-p t) + (treated-type + (or (not type) + (catch 'found + (let ((list gnus-article-treat-types)) + (while list + (when (string-match (pop list) type) + (throw 'found t))))))) val elem) - (when (and (gnus-visual-p 'article-highlight 'highlight) - (or (not type) - (catch 'found - (let ((list gnus-article-treat-types)) - (while list - (when (string-match (pop list) type) - (throw 'found t))))))) + (when (gnus-visual-p 'article-highlight 'highlight) (gnus-run-hooks 'gnus-part-display-hook) (while (setq elem (pop alist)) (setq val (symbol-value (car elem))) - (when (cond - (condition - (eq condition val)) - ((null val) - nil) - ((eq val t) - t) - ((eq val 'head) - nil) - ((eq val 'last) - (eq part-number total-parts)) - ((numberp val) - (< length val)) - (t - (eval val))) + (when (and (or (consp val) + treated-type) + (gnus-treat-predicate val)) (funcall (cadr elem))))))) +;; Dynamic variables. +(defvar part-number) +(defvar total-parts) +(defvar type) +(defvar condition) +(defvar length) +(defun gnus-treat-predicate (val) + (cond + (condition + (eq condition val)) + ((null val) + nil) + ((eq val t) + t) + ((eq val 'head) + nil) + ((eq val 'last) + (eq part-number total-parts)) + ((numberp val) + (< length val)) + ((listp val) + (let ((pred (pop val))) + (cond + ((eq pred 'or) + (apply 'gnus-or (mapcar 'gnus-treat-predicate val))) + ((eq pred 'and) + (apply 'gnus-and (mapcar 'gnus-tread-predicate val))) + ((eq pred 'not) + (not (gnus-treat-predicate val))) + ((eq pred 'typep) + (equal (cadr val) type)) + (t + (error "%S is not a valid predicate" pred))))) + (t + (error "%S is not a valid value" val)))) + ;;; @ for mime-view ;;; diff --git a/lisp/gnus-cite.el b/lisp/gnus-cite.el index db4b9dd..8845d19 100644 --- a/lisp/gnus-cite.el +++ b/lisp/gnus-cite.el @@ -71,7 +71,7 @@ Set it to nil to parse all articles." integer)) (defcustom gnus-cite-prefix-regexp - "^[]>|:}+ ]*[]>|:}+]\\(.*>\\)?\\|^.*>" + "^[]>»|:}+ ]*[]>»|:}+]\\(.*>»\\)?\\|^.*>" "*Regexp matching the longest possible citation prefix on a line." :group 'gnus-cite :type 'regexp) diff --git a/lisp/gnus-demon.el b/lisp/gnus-demon.el index 178cb66..3401ed4 100644 --- a/lisp/gnus-demon.el +++ b/lisp/gnus-demon.el @@ -273,7 +273,6 @@ minutes, the connection is closed." (save-window-excursion (let ((servers gnus-opened-servers) server) - (gnus-clear-inboxes-moved) (while (setq server (car (pop servers))) (and (gnus-check-backend-function 'request-scan (car server)) (or (gnus-server-opened server) diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index bef88e8..0af00bd 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -782,8 +782,6 @@ The following commands are available: (gnus-set-default-directory) (gnus-update-format-specifications nil 'group 'group-mode) (gnus-update-group-mark-positions) - (make-local-hook 'post-command-hook) - (add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t) (when gnus-use-undo (gnus-undo-mode 1)) (when gnus-slave @@ -804,9 +802,6 @@ The following commands are available: (list (cons 'process (and (search-forward "\200" nil t) (- (point) 2)))))))) -(defun gnus-clear-inboxes-moved () - (setq nnmail-moved-inboxes nil)) - (defun gnus-mouse-pick-group (e) "Enter the group under the mouse pointer." (interactive "e") @@ -851,8 +846,6 @@ Also see the `gnus-group-use-permanent-levels' variable." (gnus-group-default-level nil t) gnus-group-default-list-level gnus-level-subscribed)))) - ;; Just do this here, for no particular good reason. - (gnus-clear-inboxes-moved) (unless level (setq level (car gnus-group-list-mode) unread (cdr gnus-group-list-mode))) @@ -2453,7 +2446,8 @@ The number of newsgroups that this function was unable to catch up is returned." (interactive "P") (let ((groups (gnus-group-process-prefix n)) - (ret 0)) + (ret 0) + group) (unless groups (error "No groups selected")) (if (not (or (not gnus-interactive-catchup) ;Without confirmation? @@ -2467,21 +2461,20 @@ up is returned." (car groups) (format "these %d groups" (length groups))))))) n - (while groups + (while (setq group (pop groups)) ;; Virtual groups have to be given special treatment. - (let ((method (gnus-find-method-for-group (car groups)))) + (let ((method (gnus-find-method-for-group group))) (when (eq 'nnvirtual (car method)) (nnvirtual-catchup-group - (gnus-group-real-name (car groups)) (nth 1 method) all))) - (gnus-group-remove-mark (car groups)) - (if (>= (gnus-group-group-level) gnus-level-zombie) + (gnus-group-real-name group) (nth 1 method) all))) + (if (>= (gnus-info-level (gnus-get-info group)) + gnus-level-zombie) (gnus-message 2 "Dead groups can't be caught up") (if (prog1 - (gnus-group-goto-group (car groups)) - (gnus-group-catchup (car groups) all)) + (gnus-group-goto-group group) + (gnus-group-catchup group all)) (gnus-group-update-group-line) - (setq ret (1+ ret)))) - (setq groups (cdr groups))) + (setq ret (1+ ret))))) (gnus-group-next-unread-group 1) ret))) @@ -2582,7 +2575,7 @@ or nil if no action could be taken." gnus-level-default-subscribed)) s))))) (unless (and (>= level 1) (<= level gnus-level-killed)) - (error "Illegal level: %d" level)) + (error "Invalid level: %d" level)) (let ((groups (gnus-group-process-prefix n)) group) (while (setq group (pop groups)) @@ -2824,7 +2817,7 @@ yanked) a list of yanked groups is returned." (gnus-make-hashtable-from-newsrc-alist) (gnus-group-list-groups))) (t - (error "Can't kill; illegal level: %d" level)))) + (error "Can't kill; invalid level: %d" level)))) (defun gnus-group-list-all-groups (&optional arg) "List all newsgroups with level ARG or lower. diff --git a/lisp/gnus-kill.el b/lisp/gnus-kill.el index 8c3ff51..d0cbe27 100644 --- a/lisp/gnus-kill.el +++ b/lisp/gnus-kill.el @@ -444,7 +444,7 @@ Returns the number of articles marked as read." (setq beg (point)) (setq form (ignore-errors (read (current-buffer))))) (unless (listp form) - (error "Illegal kill entry (possibly rn kill file?): %s" form)) + (error "Invalid kill entry (possibly rn kill file?): %s" form)) (if (or (eq (car form) 'gnus-kill) (eq (car form) 'gnus-raise) (eq (car form) 'gnus-lower)) diff --git a/lisp/gnus-logic.el b/lisp/gnus-logic.el index f345524..0b14ce0 100644 --- a/lisp/gnus-logic.el +++ b/lisp/gnus-logic.el @@ -218,7 +218,7 @@ ((memq type '(s S string String)) 'search-forward) (t - (error "Illegal match type: %s" type))))) + (error "Invalid match type: %s" type))))) (goto-char (point-min)) (prog1 (funcall search-func match nil t) diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index d6c0062..0314ae6 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -240,15 +240,16 @@ Thank you for your help in stamping out bugs. (defun gnus-setup-posting-charset (group) (let ((alist gnus-group-posting-charset-alist) elem) - (catch 'found - (while (setq elem (pop alist)) - (when (or (and (stringp (car elem)) - (string-match (car elem) group)) - (and (gnus-functionp (car elem)) - (funcall (car elem) group)) - (and (symbolp (car elem)) - (symbol-value (car elem)))) - (throw 'found (cadr elem))))))) + (when group + (catch 'found + (while (setq elem (pop alist)) + (when (or (and (stringp (car elem)) + (string-match (car elem) group)) + (and (gnus-functionp (car elem)) + (funcall (car elem) group)) + (and (symbolp (car elem)) + (symbol-value (car elem)))) + (throw 'found (cadr elem)))))))) (defun gnus-inews-add-send-actions (winconf buffer article) (make-local-hook 'message-sent-hook) diff --git a/lisp/gnus-offline.el b/lisp/gnus-offline.el index 2a9ca81..568e2c5 100644 --- a/lisp/gnus-offline.el +++ b/lisp/gnus-offline.el @@ -1,5 +1,5 @@ ;;; gnus-offline.el --- To process mail & news at offline environment. -;;; $Id: gnus-offline.el,v 1.1.2.5.2.27 1999-01-26 02:35:37 ichikawa Exp $ +;;; $Id: gnus-offline.el,v 1.1.2.5.2.28 1999-01-31 23:06:20 yamaoka Exp $ ;;; Copyright (C) 1998 Tatsuya Ichikawa ;;; Yukihiro Ito @@ -8,7 +8,7 @@ ;;; Hidekazu Nakamura ;;; Tsukamoto Tetsuo -;;; Version: 2.02 +;;; Version: 2.10 ;;; Keywords: news , mail , offline , gnus ;;; ;;; SPECIAL THANKS @@ -59,7 +59,7 @@ ;;; In Gnus group buffer , type g to get all news and mail. ;;; Then send mail and news in spool directory. ;;; -;;; Security Notice. +;;; Security Notice. (This is available before version 2.02) ;;; ;;; You can set the variable gnus-offline-pop-password-file to save your POP ;;; passwords. But TAKE CARE. Use it at your own risk. @@ -105,7 +105,6 @@ (require 'cl) (require 'custom) -(require 'pop3-fma) (require 'easymenu) (unless (and (condition-case () @@ -124,12 +123,13 @@ :group 'mail :group 'news) -(defconst gnus-offline-version-number "2.02") +(defconst gnus-offline-version-number "2.10b1") (defconst gnus-offline-codename ;; "Beta5" ; Beta ;; "This is the time" ; 2.00 ;; "A matter of trust" - "Modern Woman" +;; "Modern Woman" + "Ahhhhhhh!!" ; 2.10b1 ;; "Code of silence" ) @@ -253,6 +253,9 @@ If value is nil , dialup line is disconnected status.") (defvar gnus-offline-movemail-arguments nil "*All command line arguments of exec-directory/movemail.") +(defvar gnus-offline-mail-source nil + "*nnmail-spool-file save variable.") + ;;; Temporary variable: (defvar string) (defvar hdr) @@ -381,25 +384,30 @@ If value is nil , dialup line is disconnected status.") (if (functionp gnus-offline-dialup-function) (funcall gnus-offline-dialup-function)) (gnus-offline-get-new-news-function) - (let (buffer) - (unwind-protect - (progn - (save-excursion - (or pop3-fma-password - (when gnus-offline-pop-password-file - (setq pop3-fma-save-password-information t) - (setq buffer (get-buffer-create "*offline-temp*")) - (set-buffer buffer) - (erase-buffer) - (insert-file-contents-as-binary gnus-offline-pop-password-file) - (and gnus-offline-pop-password-decoding-function - (funcall gnus-offline-pop-password-decoding-function)) - (eval-buffer)))) - (gnus-group-get-new-news arg)) - (when gnus-offline-pop-password-file - (setq pop3-fma-password nil) - (setq pop3-fma-save-password-information nil) - (kill-buffer buffer))))) + (if (not (locate-library "mail-source")) + (progn + (let (buffer) + (unwind-protect + (progn + (save-excursion + (or pop3-fma-password + (when gnus-offline-pop-password-file + (setq pop3-fma-save-password-information t) + (setq buffer (get-buffer-create "*offline-temp*")) + (set-buffer buffer) + (erase-buffer) + (insert-file-contents-as-binary gnus-offline-pop-password-file) + (and gnus-offline-pop-password-decoding-function + (funcall gnus-offline-pop-password-decoding-function)) + (eval-buffer)))) + (gnus-group-get-new-news arg)) + (when gnus-offline-pop-password-file + (setq pop3-fma-password nil) + (setq pop3-fma-save-password-information nil) + (kill-buffer buffer))))) + ;; + ;; Use mail-source.el + (gnus-group-get-new-news arg))) ;; ;; dialup... @@ -536,13 +544,16 @@ If value is nil , dialup line is disconnected status.") (defun gnus-offline-enable-fetch-mail () "*Set to fetch mail." (setq gnus-offline-mail-fetch-method 'nnmail) - (setq nnmail-movemail-program 'pop3-fma-movemail) - (setq nnmail-spool-file (append - pop3-fma-local-spool-file-alist - (mapcar - (lambda (spool) - (car spool)) - pop3-fma-spool-file-alist)))) + (if (not (locate-library "mail-source")) + (progn + (setq nnmail-movemail-program 'pop3-fma-movemail) + (setq nnmail-spool-file (append + pop3-fma-local-spool-file-alist + (mapcar + (lambda (spool) + (car spool)) + pop3-fma-spool-file-alist)))) + (setq nnmail-spool-file gnus-offline-mail-source))) ;; ;; Enable fetch news ;; @@ -786,7 +797,8 @@ If value is nil , dialup line is disconnected status.") (add-hook 'gnus-group-mode-hook '(lambda () (local-set-key "\C-coh" 'gnus-offline-set-unplugged-state) - (local-set-key "\C-com" 'gnus-offline-toggle-movemail-program) + (if (not (locate-library "mail-source")) + (local-set-key "\C-com" 'gnus-offline-toggle-movemail-program)) (local-set-key "\C-cof" 'gnus-offline-toggle-articles-to-fetch) (local-set-key "\C-coo" 'gnus-offline-toggle-on/off-send-mail) (local-set-key "\C-cox" 'gnus-offline-toggle-auto-hangup) @@ -837,7 +849,8 @@ If value is nil , dialup line is disconnected status.") ["Online $B>uBV$X(B" message-online-state message-offline-state] "----" ("Gnus Offline" - ["movemail $B$N@ZBX$((B" gnus-offline-toggle-movemail-program t] + ["movemail $B$N@ZBX$((B" gnus-offline-toggle-movemail-program + (not (locate-library "mail-source"))] ["$B