+1998-08-23 Tatsuya Ichikawa <t-ichi@po.shiojiri.ne.jp>
+
+ * lisp/gnus.el (gnus-version-number): Update to 6.8.15.
+
+ * Sync up with Gnus 5.6.39.
+
+ * lisp/pop3-fma.el (pop3-fma-movemail): Enable to get from APOP server.
+ (pop3-fma-set-pop3-password) Enable to get from APOP server.
+
1998-08-20 Tatsuya Ichikawa <t-ichi@po.shiojiri.ne.jp>
* lisp/gnus.el (gnus-version-number): Update to 6.8.14.
+Sat Aug 22 10:28:25 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.39 is released.
+
+1998-08-22 10:06:03 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (gnus-ignored-headers): Added more headers.
+
+1998-08-21 02:49:56 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nnweb.el (nnweb-type): Doc fix.
+
+ * gnus-sum.el (gnus-summary-set-process-mark): Move to the right
+ article.
+
+1998-08-20 23:10:01 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nnmail.el (nnmail-spool-file): Allow lists of files.
+
+1998-08-20 Per Starback <starback@update.uu.se>
+
+ * gnus/gnus-start.el (gnus-check-first-time-used): Change current
+ buffer before creating help group.
+
+1998-08-20 01:33:08 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-msg.el (gnus-message-style-insertions): New variable.
+ (gnus-message-insert-stylings): New function.
+ (gnus-configure-posting-styles): Use them.
+
+ * gnus-topic.el (gnus-topic-mode): Don't alter summary-exit-hook.
+
+ * gnus-sum.el (gnus-select-newsgroup): Don't update group.
+
+ * gnus-msg.el (gnus-setup-message): Bind message-mode-hook.
+ (gnus-inhibit-posting-styles): New variable.
+ (gnus-summary-reply): Use it.
+ (gnus-configure-posting-styles): Ditto.
+
+ * gnus-group.el (gnus-group-suspend): Don't kill dribble buffer.
+
Thu Aug 20 00:28:35 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.6.38 is released.
:group 'gnus-article)
(defcustom gnus-ignored-headers
- '("^Path:" "^Posting-Version:" "^Article-I.D.:" "^Expires:"
- "^Date-Received:" "^References:" "^Control:" "^Xref:" "^Lines:"
- "^Posted:" "^Relay-Version:" "^Message-ID:" "^Nf-ID:" "^Nf-From:"
- "^Approved:" "^Sender:" "^Received:" "^Mail-from:")
+ '("^Path:" "^Expires:" "^Date-Received:" "^References:" "^Xref:" "^Lines:"
+ "^Relay-Version:" "^Message-ID:" "^Approved:" "^Sender:" "^Received:"
+ "^X-UIDL:" "^MIME-Version:" "^Return-Path:" "^In-Reply-To:"
+ "^Content-Type:" "^Content-Transfer-Encoding:" "^X-WebTV-Signature:"
+ "^X-MimeOLE:" "^X-MSMail-Priority:" "^X-Priority:" "^X-Loop:"
+ "^X-Authentication-Warning:" "^X-MIME-Autoconverted:" "^X-Face:"
+ "^X-Attribution:" "^X-Originating-IP:" "^Delivered-To:"
+ "^NNTP-[-A-Za-z]*:" "^Distribution:" "^X-no-archive:" "^X-Trace:"
+ "^X-Complaints-To:" "^X-NNTP-Posting-Host:" "^X-Orig.*:"
+ "^Abuse-Reports-To:" "^Cache-Post-Path:" "^X-Article-Creation-Date:"
+ "^X-Poster:" "^X-Mail2News-Path:" "^X-Server-Date:" "^X-Cache:"
+ "^Originator:" "^X-Problems-To:" "^X-Auth-User:" "^X-Post-Time:"
+ "^X-Admin:" "^X-UID:")
"*All headers that start with this regexp will be hidden.
This variable can also be a list of regexps of headers to be ignored.
If `gnus-visible-headers' is non-nil, this variable will be ignored."
;; Kill Gnus buffers except for group mode buffer.
(let ((group-buf (get-buffer gnus-group-buffer)))
(mapcar (lambda (buf)
- (unless (equal buf group-buf)
+ (unless (member buf (list group-buf gnus-dribble-buffer))
(kill-buffer buf)))
(gnus-buffers))
(gnus-kill-gnus-frames)
;;; Internal variables.
+(defvar gnus-inhibit-posting-styles nil
+ "Inhibit the use of posting styles.")
+
(defvar gnus-message-buffer "*Mail Gnus*")
(defvar gnus-article-copy nil)
(defvar gnus-last-posting-server nil)
(,article (and gnus-article-reply (gnus-summary-article-number)))
(,group gnus-newsgroup-name)
(message-header-setup-hook
- (copy-sequence message-header-setup-hook)))
+ (copy-sequence message-header-setup-hook))
+ (message-mode-hook (copy-sequence message-mode-hook)))
(add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc)
(add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc)
(add-hook 'message-mode-hook 'gnus-configure-posting-styles)
;; Stripping headers should be specified with mail-yank-ignored-headers.
(when yank
(gnus-summary-goto-subject (car yank)))
- (let ((gnus-article-reply t))
+ (let ((gnus-article-reply t)
+ (gnus-inhibit-posting-styles t))
(gnus-setup-message (if yank 'reply-yank 'reply)
(gnus-summary-select-article)
(set-buffer (gnus-copy-article-buffer))
;;; Posting styles.
+(defvar gnus-message-style-insertions nil)
+
(defun gnus-configure-posting-styles ()
"Configure posting styles according to `gnus-posting-styles'."
- (let ((styles gnus-posting-styles)
- (gnus-newsgroup-name (or gnus-newsgroup-name ""))
- style match variable attribute value value-value)
- ;; Go through all styles and look for matches.
- (while styles
- (setq style (pop styles)
- match (pop style))
- (when (cond ((stringp match)
- ;; Regexp string match on the group name.
- (string-match match gnus-newsgroup-name))
- ((or (symbolp match)
- (gnus-functionp match))
- (cond ((gnus-functionp match)
- ;; Function to be called.
- (funcall match))
- ((boundp match)
- ;; Variable to be checked.
- (symbol-value match))))
- ((listp match)
- ;; This is a form to be evaled.
- (eval match)))
- ;; We have a match, so we set the variables.
- (while style
- (setq attribute (pop style)
- value (cadr attribute)
- variable nil)
- ;; We find the variable that is to be modified.
- (if (and (not (stringp (car attribute)))
- (not (eq 'body (car attribute)))
- (not (setq variable (cdr (assq (car attribute)
- gnus-posting-style-alist)))))
- (message "Couldn't find attribute %s" (car attribute))
- ;; We get the value.
- (setq value-value
- (cond ((stringp value)
- value)
- ((or (symbolp value)
- (gnus-functionp value))
- (cond ((gnus-functionp value)
- (funcall value))
- ((boundp value)
- (symbol-value value))))
- ((listp value)
- (eval value))))
- (if variable
- ;; This is an ordinary variable.
- (set (make-local-variable variable) value-value)
- ;; This is either a body or a header to be inserted in the
- ;; message.
- (when value-value
- (let ((attr (car attribute)))
- (make-local-variable 'message-setup-hook)
- (if (eq 'body attr)
+ (unless gnus-inhibit-posting-styles
+ (let ((styles gnus-posting-styles)
+ (gnus-newsgroup-name (or gnus-newsgroup-name ""))
+ style match variable attribute value value-value)
+ (make-local-variable 'gnus-message-style-insertions)
+ ;; Go through all styles and look for matches.
+ (while styles
+ (setq style (pop styles)
+ match (pop style))
+ (when (cond ((stringp match)
+ ;; Regexp string match on the group name.
+ (string-match match gnus-newsgroup-name))
+ ((or (symbolp match)
+ (gnus-functionp match))
+ (cond ((gnus-functionp match)
+ ;; Function to be called.
+ (funcall match))
+ ((boundp match)
+ ;; Variable to be checked.
+ (symbol-value match))))
+ ((listp match)
+ ;; This is a form to be evaled.
+ (eval match)))
+ ;; We have a match, so we set the variables.
+ (while style
+ (setq attribute (pop style)
+ value (cadr attribute)
+ variable nil)
+ ;; We find the variable that is to be modified.
+ (if (and (not (stringp (car attribute)))
+ (not (eq 'body (car attribute)))
+ (not (setq variable
+ (cdr (assq (car attribute)
+ gnus-posting-style-alist)))))
+ (message "Couldn't find attribute %s" (car attribute))
+ ;; We get the value.
+ (setq value-value
+ (cond ((stringp value)
+ value)
+ ((or (symbolp value)
+ (gnus-functionp value))
+ (cond ((gnus-functionp value)
+ (funcall value))
+ ((boundp value)
+ (symbol-value value))))
+ ((listp value)
+ (eval value))))
+ (if variable
+ ;; This is an ordinary variable.
+ (set (make-local-variable variable) value-value)
+ ;; This is either a body or a header to be inserted in the
+ ;; message.
+ (when value-value
+ (let ((attr (car attribute)))
+ (make-local-variable 'message-setup-hook)
+ (if (eq 'body attr)
+ (add-hook 'message-setup-hook
+ `(lambda ()
+ (save-excursion
+ (message-goto-body)
+ (insert ,value-value))))
(add-hook 'message-setup-hook
- `(lambda ()
- (save-excursion
- (message-goto-body)
- (insert ,value-value))))
- (add-hook
- 'message-setup-hook
- `(lambda ()
- (save-excursion
- (message-goto-eoh)
- (insert ,(if (stringp attr) attr (symbol-name attr))
- ": " ,value-value "\n"))))))))))))))
+ 'gnus-message-insert-stylings)
+ (push (cons (if (stringp attr) attr
+ (symbol-name attr))
+ value-value)
+ gnus-message-style-insertions))))))))))))
+
+(defun gnus-message-insert-stylings ()
+ (let (val)
+ (save-excursion
+ (message-goto-eoh)
+ (while (setq val (pop gnus-message-style-insertions))
+ (when (cdr val)
+ (insert (car val) ": " (cdr val) "\n"))
+ (gnus-pull (car val) gnus-message-style-insertions)))))
;;; Allow redefinition of functions.
(function-item gnus-subscribe-zombies)
function))
-;; Suggested by a bug report by Hallvard B Furuseth.
-;; <h.b.furuseth@usit.uio.no>.
(defcustom gnus-subscribe-options-newsgroup-method
'gnus-subscribe-alphabetically
"*This function is called to subscribe newsgroups mentioned on \"options -n\" lines.
;; Go through both primary and secondary select methods and
;; request new newsgroups.
(while (setq method (gnus-server-get-method nil (pop methods)))
- (setq new-newsgroups nil)
- (setq gnus-override-subscribe-method method)
+ (setq new-newsgroups nil
+ gnus-override-subscribe-method method)
(when (and (gnus-check-server method)
(gnus-request-newgroups date method))
(save-excursion
- (setq got-new t)
- (setq hashtb (gnus-make-hashtable 100))
+ (setq got-new t
+ hashtb (gnus-make-hashtable 100))
(set-buffer nntp-server-buffer)
;; Enter all the new groups into a hashtable.
(gnus-active-to-gnus-format method hashtb 'ignore))
(gnus-group-change-level
(car groups) gnus-level-default-subscribed gnus-level-killed))
(setq groups (cdr groups)))
- (gnus-group-make-help-group)
+ (save-excursion
+ (set-buffer gnus-group-buffer)
+ (gnus-group-make-help-group))
(when gnus-novice-user
(gnus-message 7 "`A k' to list killed groups"))))))
(setq gnus-newsgroup-processable nil)
(gnus-update-read-articles group gnus-newsgroup-unreads)
- (unless (gnus-ephemeral-group-p gnus-newsgroup-name)
- (gnus-group-update-group group))
(if (setq articles select-articles)
(setq gnus-newsgroup-unselected
(delq article gnus-newsgroup-processable)))
(when (gnus-summary-goto-subject article)
(gnus-summary-show-thread)
+ (gnus-summary-goto-subject article)
(gnus-summary-update-secondary-mark article)))
(defun gnus-summary-remove-process-mark (article)
(setq gnus-newsgroup-processable (delq article gnus-newsgroup-processable))
(when (gnus-summary-goto-subject article)
(gnus-summary-show-thread)
+ (gnus-summary-goto-subject article)
(gnus-summary-update-secondary-mark article)))
(defun gnus-summary-set-saved-mark (article)
(parent (gnus-topic-parent-topic topic-name))
(all-entries entries)
(unread 0)
- old-unread entry)
+ old-unread entry new-unread)
(when (gnus-topic-goto-topic (car type))
;; Tally all the groups that belong in this topic.
(if reads
(car type) (gnus-topic-visible-p)
(not (eq (nth 2 type) 'hidden))
(gnus-group-topic-level) all-entries unread)
- (gnus-delete-line))
+ (gnus-delete-line)
+ (forward-line -1)
+ (setq new-unread (gnus-group-topic-unread)))
(when parent
(forward-line -1)
(gnus-topic-update-topic-line
parent
- (max 0 (- (or old-unread 0) (or (gnus-group-topic-unread) 0)))))
+ (- (or old-unread 0) (or new-unread 0))))
unread))
(defun gnus-topic-group-indentation ()
(gnus-topic-make-menu-bar))
(gnus-set-format 'topic t)
(gnus-add-minor-mode 'gnus-topic-mode " Topic" gnus-topic-mode-map)
- (add-hook 'gnus-summary-exit-hook 'gnus-topic-update-topic)
(add-hook 'gnus-group-catchup-group-hook 'gnus-topic-update-topic)
(set (make-local-variable 'gnus-group-prepare-function)
'gnus-group-prepare-topics)
(gnus-uu-reginize-string (gnus-summary-article-subject))))
list-of-subjects)
(save-excursion
- (if (not subject)
- ()
+ (when subject
;; Collect all subjects matching subject.
(let ((case-fold-search t)
(data gnus-newsgroup-data)
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "6.8.14"
+(defconst gnus-version-number "6.8.15"
"Version number for this version of gnus.")
(defconst gnus-version
- (format "Semi-gnus %s (based on Gnus 5.6.38; for SEMI 1.8, FLIM 1.8/1.9)"
+ (format "Semi-gnus %s (based on Gnus 5.6.39; for SEMI 1.8, FLIM 1.8/1.9)"
gnus-version-number)
"Version string for this version of gnus.")
(gnus-server-to-method method))
((equal method gnus-select-method)
gnus-select-method)
- ((and (stringp (car method)) group)
+ ((and (stringp (car method))
+ group)
(gnus-server-extend-method group method))
- ((and method (not group)
+ ((and method
+ (not group)
(equal (cadr method) ""))
method)
(t
If this variable is a directory (i. e., it's name ends with a \"/\"),
treat all files in that directory as incoming spool files."
:group 'nnmail-files
- :type 'file)
+ :type '(choice (file :tag "File")
+ (repeat :tag "Files" file)))
(defcustom nnmail-crash-box "~/.gnus-crash-box"
"File where Gnus will store mail while processing it."
"Where nnweb will save its files.")
(defvoo nnweb-type 'dejanews
- "What search engine type is being used.")
+ "What search engine type is being used.
+Valid types include `dejanews', `dejanewsold', `reference',
+and `altavista'.")
(defvoo nnweb-type-definition
'((dejanews
;; Yasuo Okabe
;; Author: Tatsuya Ichikawa <t-ichi@po.shiojiri.ne.jp>
;; Yasuo OKABE <okabe@kuis.kyoto-u.ac.jp>
-;; Version: 1.00
+;; Version: 1.10
;; Keywords: mail , gnus , pop3
;;
;; SPECIAL THANKS
;; (require 'pop3-fma)
;; (setq pop3-fma-spool-file-alist
;; '(
-;; "po:username0@mailhost0.your.domain0"
-;; "po:username1@mailhost1.your.domain1"
+;; ("po:username0@mailhost0.your.domain0" pass)
+;; ("po:username1@mailhost1.your.domain1" apop)
;; :
;; :
;; ))
;;
+;; pass means normal authentication USER/PASS.
+;; apop means authentication using APOP.
+;;
+;; When using apop , Please set pop3-fma-movemail-type 'lisp.
+;; movemail.exe does not work on APOP protocol.
+;;
;; Variables
;;
;; pop3-fma-spool-file-alist ... Spool file alist of POP3 protocol
:group 'mail
:group 'news)
-(defconst pop3-fma-version-number "1.00")
+(defconst pop3-fma-version-number "1.10")
(defconst pop3-fma-codename
;; "Feel the wind" ; 0.10
;; "My home town" ; 0.11
;; "Rock'n Roll city" ; 0.13
;; "Money" ; 0.20
;; "Still 19" ; 0.21
- "J boy" ; 1.00
-;; "Blood line" ; 0.xx
+;; "J boy" ; 1.00
+ "Blood line" ; 1.10
;; "Star ring" ; 0.xx
;; "Goodbye Game" ; 0.xx
)
"*Spool file to get mail using pop3 protocol.
You should specify this variable like
'(
- \"po:user1@mailhost1\"
- \"po:user2@mailhost2\"
- )"
+ (\"po:user1@mailhost1\" type)
+ (\"po:user2@mailhost2\" type)
+ )
+Type must be pass or apop."
:group 'pop3-fma
:type 'alist)
(defvar pop3-fma-password nil
"*POP3 password , user , mailhost information for Gnus.")
-(defvar pop3-fma-movemail-program "movemail"
+(defvar pop3-fma-movemail-program "movemail.exe"
"*External program name your movemail.
Please do not set this valiable non-nil if you do not use Meadow.")
(substring inbox (match-end (string-match "^po:" inbox))
(- (match-end (string-match "^.*@" inbox)) 1)))
(pop3-mailhost
- (substring inbox (match-end (string-match "^.*@" inbox)))))
- (let ((pop3-password
- (pop3-fma-read-passwd pop3-mailhost)))
- (message "Checking new mail user %s at %s..." pop3-maildrop pop3-mailhost)
- (if (and (eq system-type 'windows-nt)
- (eq pop3-fma-movemail-type 'exe))
- (progn
- (setenv "MAILHOST" pop3-mailhost)
- (if (and (not (memq pop3-password pop3-fma-movemail-arguments))
- (not (memq (concat "po:" pop3-maildrop) pop3-fma-movemail-arguments)))
- (progn
- (setq pop3-fma-movemail-arguments nil)
- (setq pop3-fma-movemail-arguments
- (append pop3-fma-movemail-options
- (list
- (concat "po:" pop3-maildrop)
- crashbox
- pop3-password)))))
- (apply 'call-process (concat
- exec-directory
- pop3-fma-movemail-program)
- nil nil nil
- pop3-fma-movemail-arguments))
- (pop3-movemail crashbox)))))
+ (substring inbox (match-end (string-match "^.*@" inbox))))
+ (pop3-password
+ (pop3-fma-read-passwd (substring inbox (match-end (string-match "^.*@" inbox)))))
+ (pop3-authentication-scheme
+ (nth 1 (assoc inbox pop3-fma-spool-file-alist)))
+ (pop3-fma-movemail-type (pop3-fma-get-movemail-type inbox)))
+ (if (eq pop3-authentication-scheme 'pass)
+ (message "Checking new mail user %s at %s using USER/PASS ..." pop3-maildrop pop3-mailhost)
+ (message "Checking new mail user %s at %s using APOP ..." pop3-maildrop pop3-mailhost))
+ (if (and (eq system-type 'windows-nt)
+ (eq pop3-fma-movemail-type 'exe))
+ (progn
+ (setenv "MAILHOST" pop3-mailhost)
+ (if (and (not (memq pop3-password pop3-fma-movemail-arguments))
+ (not (memq (concat "po:" pop3-maildrop) pop3-fma-movemail-arguments)))
+ (progn
+ (setq pop3-fma-movemail-arguments nil)
+ (setq pop3-fma-movemail-arguments
+ (append pop3-fma-movemail-options
+ (list
+ (concat "po:" pop3-maildrop)
+ crashbox
+ pop3-password)))))
+ (apply 'call-process (concat
+ exec-directory
+ pop3-fma-movemail-program)
+ nil nil nil
+ pop3-fma-movemail-arguments))
+ (pop3-movemail crashbox))))
(message "Checking new mail at %s ... " inbox)
(call-process (concat exec-directory pop3-fma-movemail-program)
nil
(mapcar
(lambda (x)
(let ((pop3-maildrop
- (substring x (match-end (string-match "^po:" x))
- (- (match-end (string-match "^.*@" x)) 1)))
+ (substring (car x) (match-end (string-match "^po:" (car x)))
+ (- (match-end (string-match "^.*@" (car x))) 1)))
(pop3-mailhost
- (substring x (match-end (string-match "^.*@" x)))))
+ (substring (car x) (match-end (string-match "^.*@" (car x))))))
(call-interactively 'pop3-fma-store-password)))
pop3-fma-spool-file-alist)
(setq nnmail-movemail-program 'pop3-fma-movemail)
;; (setq nnmail-spool-file pop3-fma-spool-file-alist))
(setq nnmail-spool-file (append
pop3-fma-local-spool-file-alist
- pop3-fma-spool-file-alist)))
+ (mapcar
+ (lambda (spool)
+ (car spool))
+ pop3-fma-spool-file-alist))))
;;
(defun pop3-fma-read-noecho (prompt &optional stars)
"Read a single line of text from user without echoing, and return it.
;;
;; Add your custom header.
-;;
(defun pop3-fma-add-custom-header (header string)
(let ((delimline
(progn (goto-char (point-min))
(setq hdr (concat str "\n"))
(insert-string hdr)))))
;;
+;;
+(defun pop3-fma-get-movemail-type (inbox)
+ (if (eq (nth 1 (assoc inbox pop3-fma-spool-file-alist)) 'apop)
+ lisp
+ pop3-fma-movemail-type))
+;;
(provide 'pop3-fma)
;;
;; pop3-fma.el ends here.
Andreas Jaeger,
Randell Jesup,
Fred Johansen,
+Gareth Jones,
Simon Josefsson,
Greg Klanderman,
Karl Kleinpaste,
Peter Skov Knudsen,
Shuhei Kobayashi, @c Kobayashi
+Koseki Yoshinori, @c Koseki
Thor Kristoffersen,
Jens Lautenbacher,
+Martin Larose,
Seokchan Lee, @c Lee
Carsten Leonhardt,
James LewisMoss,
Stephen Peters,
Jens-Ulrik Holger Petersen,
Ulrich Pfeifer,
+Matt Pharr,
John McClary Prevost,
+Bill Pringlemeir,
Mike Pullen,
Jim Radford,
Colin Rafferty,
Chuck Thompson,
Philippe Troin,
James Troup,
+Trung Tran-Duc,
Aaron M. Ucko,
Aki Vehtari,
Didier Verna,