* lisp/gnus.el (gnus-revision-number): Increment to 01.
[elisp/gnus.git-] / lisp / gnus-offline.el
index cfbc454..30be109 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-offline.el --- To process mail & news at offline environment.
-;;; $Id: gnus-offline.el,v 1.1.2.5.2.32 1999-02-07 07:33:18 ichikawa Exp $
+;;; $Id: gnus-offline.el,v 1.1.2.5.2.35.2.1 1999-07-20 15:01:17 czkmt Exp $
 
 ;;; Copyright (C) 1998 Tatsuya Ichikawa
 ;;;                    Yukihiro Ito
@@ -82,6 +82,7 @@
 (require 'cl)
 (require 'custom)
 (require 'easymenu)
+(provide 'gnus-offline)
 
 (unless (and (condition-case ()
                 (require 'custom)
   :group 'mail
   :group 'news)
 
-(defconst gnus-offline-version-number "2.10b1")
+(defconst gnus-offline-version-number "2.20")
 (defconst gnus-offline-codename
 ;;  "Beta5"                    ; Beta
 ;;  "This is the time"         ; 2.00
 ;;  "A matter of trust"
 ;;  "Modern Woman"
-  "Ahhhhhhh!!"                 ; 2.10b1
+;;  "Ahhhhhhh!!"               ; 2.10b1
+  "Cup of life"                 ; 2.20
 ;;  "Code of silence"
   )
 
@@ -762,12 +764,12 @@ If value is nil , dialup line is disconnected status.")
       ;; Overwrite the toolbar spec for gnus-group-mode.
       (add-hook 'gnus-startup-hook
                (lambda ()
-                 (let ((i 0) (stat t) but)
-                   (while (and stat (setq but (nth i gnus-group-toolbar)))
-                     (and (equal 'gnus-group-get-new-news (aref but 1))
-                          (aset but 1 'gnus-offline-gnus-get-new-news)
-                          (setq stat nil))
-                     (setq i (1+ i))))))))
+                 (catch 'tag
+                   (mapcar (lambda (but)
+                             (when (eq 'gnus-group-get-new-news (aref but 1))
+                               (aset but 1 'gnus-offline-gnus-get-new-news)
+                               (throw 'tag nil)))
+                           gnus-group-toolbar))))))
 ;;
 ;;
 (defun gnus-offline-define-menu-on-miee ()
@@ -794,7 +796,9 @@ If value is nil , dialup line is disconnected status.")
          ["\e$B<hF@:Q5-;v$r>C$9\e(B" gnus-offline-agent-expire (eq gnus-offline-news-fetch-method 'nnagent)]
          ["\e$B5-;v<hF@4V3V;~4V$N@_Dj\e(B" gnus-offline-set-interval-time t]
          "----"
-         ["\e$B2s@~$N@ZCG\e(B" gnus-offline-set-unplugged-state gnus-offline-connected])
+         ["\e$B2s@~$N@ZCG\e(B" gnus-offline-set-unplugged-state gnus-offline-connected]
+         "----"
+         ["\e$B%W%m%Q%F%#\e(B..." gnus-ofsetup-customize t])
         ))
     (easy-menu-change
      nil
@@ -817,6 +821,8 @@ If value is nil , dialup line is disconnected status.")
        ["Set interval time" gnus-offline-set-interval-time t]
        "----"
        ["Hang up Line." gnus-offline-set-unplugged-state gnus-offline-connected]
+       "----"
+       ["Customize options..." gnus-ofsetup-customize t]
        ))))))
   (and (featurep 'xemacs)
        (easy-menu-add menu))))
@@ -840,7 +846,9 @@ If value is nil , dialup line is disconnected status.")
         ["\e$B<hF@:Q5-;v$r>C$9\e(B" gnus-offline-agent-expire (eq gnus-offline-news-fetch-method 'nnagent)]
         ["\e$B5-;v<hF@4V3V;~4V$N@_Dj\e(B" gnus-offline-set-interval-time t]
         "----"
-        ["\e$B2s@~$N@ZCG\e(B" gnus-offline-set-unplugged-state gnus-offline-connected])
+        ["\e$B2s@~$N@ZCG\e(B" gnus-offline-set-unplugged-state gnus-offline-connected]
+        "----"
+        ["\e$B%W%m%Q%F%#\e(B..." gnus-ofsetup-customize t])
      '("Offline"
        ["Toggle movemail program" gnus-offline-toggle-movemail-program
        (not (featurep 'running-pterodactyl-gnus-0_73-or-later))]
@@ -851,22 +859,38 @@ If value is nil , dialup line is disconnected status.")
        ["Expire articles" gnus-offline-agent-expire (eq gnus-offline-news-fetch-method 'nnagent)]
        ["Set interval time" gnus-offline-set-interval-time t]
        "----"
-       ["Hang up Line." gnus-offline-set-unplugged-state gnus-offline-connected])))
+       ["Hang up Line." gnus-offline-set-unplugged-state gnus-offline-connected]
+       "----"
+       ["Customize options..." gnus-ofsetup-customize t])))
   (and (featurep 'xemacs)
        (easy-menu-add gnus-offline-menu-on-agent)))
 ;;
 ;; Popup menu within the group buffer (under Emacs).
 ;;
+(defvar gnus-offline-popup-menu nil)
 (defun gnus-offline-popup-menu (event)
   "Popup menu for Gnus offline."
   (interactive "e")
-  (let* ((menu (if (boundp 'miee-popup-menu)
-                  (or (assoc 'keymap
-                             (assoc 'Miee (assoc 'menu-bar global-map)))
-                      miee-popup-menu)
-                gnus-offline-menu-on-agent))
-        (pop (x-popup-menu t menu))
-        (func (and pop (lookup-key menu (apply 'vector pop)))))
+  (unless gnus-offline-popup-menu
+    (setq gnus-offline-popup-menu
+         (let ((menu
+                (if (boundp 'miee-popup-menu)
+                    (or (assoc 'keymap
+                               (assoc 'Miee (assoc 'menu-bar global-map)))
+                        miee-popup-menu)
+                  gnus-offline-menu-on-agent)))
+           (if (string< emacs-version "20")
+               (append (list 'keymap
+                             (if (boundp 'miee-popup-menu)
+                                 '(nil "Miee")
+                               '(nil "Offline"))
+                             '(nil "")
+                             '(nil ""))
+                       (cdr menu))
+             menu))))
+  (let* ((pop (x-popup-menu t gnus-offline-popup-menu))
+        (func (and pop (lookup-key gnus-offline-popup-menu
+                                   (apply 'vector pop)))))
     (and pop func (funcall func))))
 \f
 ;;
@@ -883,5 +907,4 @@ If value is nil , dialup line is disconnected status.")
       (gnus-demon-remove-handler 'gnus-offline-gnus-get-new-news t)))
 ;;
 ;;
-(provide 'gnus-offline)
 ;;; gnus-offline.el ends here