;;; gnus-offline.el --- To process mail & news at offline environment.
-;;; $Id: gnus-offline.el,v 1.1.6.2 1999-02-05 02:59:06 keiichi Exp $
+;;; $Id: gnus-offline.el,v 1.1.6.5 1999-08-09 05:07:13 keiichi Exp $
;;; Copyright (C) 1998 Tatsuya Ichikawa
;;; Yukihiro Ito
;;; Keywords: news , mail , offline , gnus
;;;
;;; SPECIAL THANKS
-;;; Keiichi Suzuki <kei-suzu@mail.wbs.or.jp>
+;;; Keiichi Suzuki <keiichi@nanap.org>
;;; KORIYAMA Naohiro <kory@ba2.so-net.or.jp>
;;; Katsumi Yamaoka <yamaoka@jpl.org>
;;; In Gnus group buffer , type g to get all news and mail.
;;; Then send mail and news in spool directory.
;;;
-;;; 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.
-;;; If you decide to use it, then write in .emacs or .gnus-offline.el
-;;; something like:
-;;;
-;;; (setq gnus-offline-pop-password-file "~/.pop.passwd")
-;;;
-;;; and write in this file something like:
-;;;
-;;; (setq pop3-fma-password
-;;; '(("SERVER1" "ACCOUNT1" "PASSWORD1")
-;;; ("SERVER2" "ACCOUNT2" "PASSWORD2")
-;;; ............................
-;;; ))
-;;;
-;;; If you want to encode the file with base64, try:
-;;;
-;;; M-: (base64-encode-region (point-min) (point-max))
-;;;
;;; Variables.
;;; gnus-offline-dialup-program-arguments
;;; ... List of dialup program arguments.
;;; (minutes)
;;; gnus-offline-dialup-function ... Function to diualup.
;;; gnus-offline-hangup-function ... Function to hangup.
-;;; gnus-offline-pop-password-file ... File to keep the POP password info.
-;;; gnus-offline-pop-password-decoding-function
-;;; ... Function to decode the password info.
;;; Code:
(if (functionp gnus-offline-dialup-function)
(funcall gnus-offline-dialup-function))
(gnus-offline-get-new-news-function)
- (if (null gnus-offline-pop-password-file)
- (gnus-group-get-new-news arg)
- (let ((buffer (get-buffer-create "*offline-temp*")))
- (unwind-protect
- (progn
- (if (boundp 'pop3-fma-password)
- (setq pop3-fma-save-password-information t))
- (save-excursion
- (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))
- (if (boundp 'pop3-fma-password)
- (setq pop3-fma-password nil
- pop3-fma-save-password-information nil)
- (setq mail-source-password-cache nil))
- (kill-buffer buffer)))))
+ (gnus-group-get-new-news arg))
;;
;; dialup...
(defun gnus-offline-enable-fetch-mail ()
"*Set to fetch mail."
(setq gnus-offline-mail-fetch-method 'nnmail)
- (if (not (featurep 'running-pterodactyl-gnus-0_73-or-later))
- (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)))
+ (setq nnmail-spool-file gnus-offline-mail-source))
;;
;; Enable fetch news
;;
"*Toggle movemail program movemail -> pop3.el -> movemail ->..."
(interactive)
(setq string "Set nnmail-movemail-program")
- (cond ((eq pop3-fma-movemail-type 'lisp)
- (setq pop3-fma-movemail-type 'exe
+ (cond ((eq nnmail-movemail-program 'nnmail-pop3-movemail)
+ (setq nnmail-movemail-program "movemail"
str "to movemail"))
(t
- (setq pop3-fma-movemail-type 'lisp
+ (setq nnmail-movemail-program 'nnmail-pop3-movemail
str "to pop3.el")))
(message (format "%s %s" string str)))
;;
;; 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 ()
;;
;; 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
;;