* 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.
+Wed Jan 27 05:24:53 1999 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.74 is released.
+
+1999-01-27 05:56:29 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (article-fill-long-lines): Renamed.
+ (article-fill-long-lines): New keystroke.
+
+1999-01-26 06:35:07 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <fx@gnu.org>
+
+ * message.el (message-mode-menu): Add message-mime-attach-file.
+ (message-mode): Doc fix.
+
+1999-01-26 05:24:19 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <ljz@asfast.com>
+
+ * nnmail.el (nnmail-get-split-group): Quote right.
+
+1999-01-25 05:55:41 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mail-source.el (mail-source-movemail): Would kill an arbitrary
+ buffer.
+
+1999-01-24 03:02:31 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <ajc@bing.wattle.id.au>
+
+ * mm-view.el (mm-inline-text): Do vcards.
+
+Sat Jan 23 14:23:27 1999 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.73 is released.
+
+1999-01-23 11:38:36 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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. <cloos@jhcloos.com>
+
+ * gnus-art.el (gnus-article-mode-map): Bind backspace.
+
+1999-01-23 09:05:04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (article-make-date-line): Fix iso8601 display.
+
+1999-01-20 02:53:52 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@menja.ifi.uio.no>
* gnus.el: Pterodactyl Gnus v0.72 is released.
: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)
(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)
: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)
'((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)
(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)
(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.."
((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
'(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
" " 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
(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)))
(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
;;;
integer))
(defcustom gnus-cite-prefix-regexp
- "^[]>|:}+ ]*[]>|:}+]\\(.*>\\)?\\|^.*>"
+ "^[]>»|:}+ ]*[]>»|:}+]\\(.*>»\\)?\\|^.*>"
"*Regexp matching the longest possible citation prefix on a line."
:group 'gnus-cite
:type 'regexp)
(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)
(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
(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")
(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)))
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?
(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)))
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))
(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.
(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))
((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)
(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)
;;; 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
;;; Hidekazu Nakamura <u90121@uis-inf.co.jp>
;;; Tsukamoto Tetsuo <czkmt@remus.dti.ne.jp>
-;;; Version: 2.02
+;;; Version: 2.10
;;; Keywords: news , mail , offline , gnus
;;;
;;; SPECIAL THANKS
;;; 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.
(require 'cl)
(require 'custom)
-(require 'pop3-fma)
(require 'easymenu)
(unless (and (condition-case ()
: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"
)
(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)
(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...
(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
;;
(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)
["Online \e$B>uBV$X\e(B" message-online-state message-offline-state]
"----"
("Gnus Offline"
- ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program t]
+ ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program
+ (not (locate-library "mail-source"))]
["\e$B<hF@5-;v<oN`$NJQ99\e(B" gnus-offline-toggle-articles-to-fetch t]
["Mail \e$BAw?.J}K!\e(B(On/Off)\e$B$N@ZBX$(\e(B" gnus-offline-toggle-on/off-send-mail t]
["\e$B<+F0@ZCG$N@ZBX$(\e(B" gnus-offline-toggle-auto-hangup t]
["Message Online" message-online-state message-offline-state]
"----"
("Gnus Offline"
- ["Toggle movemail program" gnus-offline-toggle-movemail-program t]
+ ["Toggle movemail program" gnus-offline-toggle-movemail-program
+ (not (locate-library "mail-source"))]
["Toggle articles to fetch" gnus-offline-toggle-articles-to-fetch t]
["Toggle online/offline send mail" gnus-offline-toggle-on/off-send-mail t]
["Toggle auto hangup" gnus-offline-toggle-auto-hangup t]
"Gnus offline Menu"
(if (featurep 'meadow)
'("Offline"
- ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program t]
+ ["movemail \e$B$N@ZBX$(\e(B" gnus-offline-toggle-movemail-program
+ (not (locate-library "mail-source"))]
["\e$B<hF@5-;v<oN`$NJQ99\e(B" gnus-offline-toggle-articles-to-fetch t]
["Mail \e$BAw?.J}K!\e(B(On/Off)\e$B$N@ZBX$(\e(B" gnus-offline-toggle-on/off-send-mail t]
["\e$B<+F0@ZCG$N@ZBX$(\e(B" gnus-offline-toggle-auto-hangup t]
"----"
["\e$B2s@~$N@ZCG\e(B" gnus-offline-set-unplugged-state gnus-offline-connected])
'("Offline"
- ["Toggle movemail program" gnus-offline-toggle-movemail-program t]
+ ["Toggle movemail program" gnus-offline-toggle-movemail-program
+ (not (locate-library "mail-source"))]
["Toggle articles to fetch" gnus-offline-toggle-articles-to-fetch t]
["Toggle online/offline send mail" gnus-offline-toggle-on/off-send-mail t]
["Toggle auto hangup" gnus-offline-toggle-auto-hangup t]