From 074b112f1aa3334c0ec4f44bdab9d59a2f9c1881 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 16 Apr 2001 02:01:38 +0000 Subject: [PATCH] Synch with Oort Gnus. --- ChangeLog | 12 +++++++ README | 59 -------------------------------- README.T-gnus | 2 +- README.branch | 22 ++++++------ README.branch.ja | 22 ++++++------ README.semi | 4 +++ README.semi.ja | 3 ++ lisp/ChangeLog | 34 +++++++++++++++++++ lisp/gnus-agent.el | 25 ++++++-------- lisp/gnus-sum.el | 95 ++++++++++++++++++++++++++++++++++------------------ lisp/gnus-vers.el | 6 ++-- lisp/imap.el | 2 +- lisp/mm-util.el | 3 +- lisp/nnmail.el | 9 +++++ 14 files changed, 164 insertions(+), 134 deletions(-) delete mode 100644 README diff --git a/ChangeLog b/ChangeLog index 1f2db9d..510b872 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2001-04-16 Katsumi Yamaoka + + * lisp/gnus-vers.el: T-gnus 6.15.3 revision 00. + +2001-04-16 Katsumi Yamaoka + + * lisp/gnus-vers.el: T-gnus 6.15.2 revision 00. + +2001-04-16 Katsumi Yamaoka + + * lisp/gnus-vers.el: T-gnus 6.15.1 revision 00. + 2001-04-13 Katsumi Yamaoka * lisp/lpath.el: Fbind `xml-parse-region' for XEmacsen and old FSF diff --git a/README b/README deleted file mode 100644 index b5cefcd..0000000 --- a/README +++ /dev/null @@ -1,59 +0,0 @@ -This package contains a beta version of Gnus. The lisp directory -contains the source lisp files, and the texi directory contains a -draft of the Gnus info pages. - -To use Gnus you first have to unpack the files, which you've obviously -done, because you are reading this. - -You should definitely byte-compile the source files. To do that, you -can simply say "./configure && make" in this directory. If you are -using XEmacs, you *must* say "make EMACS=xemacs". In that case you -may also want to pull down the package of nice glyphs from -. It should be installed -into the "gnus-5.6.53/etc" directory. - -Then you have to tell Emacs where Gnus is. You might put something -like - - (setq load-path (cons (expand-file-name "~/gnus-5.6.53/lisp") load-path)) - -in your .emacs file, or wherever you keep such things. - -To enable reading the Gnus manual, you could say something like: - - (setq Info-default-directory-list - (cons "~/gnus-5.6.53/texi" Info-default-directory-list)) - -Note that Gnus and GNUS can't coexist in a single Emacs. They both use -the same function and variable names. If you have been running GNUS -in your Emacs, you should probably exit that Emacs and start a new one -to fire up Gnus. - -Gnus does absolutely not work with anything older than Emacs 20.3 or -XEmacs 21.1.1. So you definitely need a new Emacs. However, T-gnus -does support `Mule 2.3 based on Emacs 19.34' (it is commonly called -"Mule 2.3@19.34"). See the file `Mule23@1934.{en,ja}' for details. -Furthermore, you might be able to use the versions of XEmacs prior to -21.1.1, e.g. 20.4, with a little work. For that, copy the file -`timer.el' in the `contrib' directory to the `site-lisp' directory and -do a `M-x byte-compile-file'. This file is imported from one of the -XEmacs package `fsf-compat-1.07-pkg.tar.gz'. - -Then you do a `M-x gnus', and everything should... uhm... it should -work, but it might not. Set `debug-on-error' to t, and mail me the -backtraces, or, better yet, find out why Gnus does something wrong, -fix it, and send me the diffs. :-) - -There are four main things I want your help and input on: - -1) Startup. Does everything go smoothly, and why not? - -2) Any errors while you read news normally? - -3) Any errors if you do anything abnormal? - -4) Features you do not like, or do like, but would like to tweak a - bit, and features you would like to see. - -Send any comments and all your bug fixes/complaints to -`semi-gnus-ja@meadowy.org' (or `bugs@gnus.org'). diff --git a/README.T-gnus b/README.T-gnus index cbc2215..717b602 100644 --- a/README.T-gnus +++ b/README.T-gnus @@ -33,6 +33,6 @@ NEWS: * T-gnus 6.15 - this is based on Oort Gnus. - The latest T-gnus is T-gnus 6.15.0 (based on Oort Gnus 0.01). It + The latest T-gnus is T-gnus 6.15.3 (based on Oort Gnus 0.03). It requires SEMI/WEMI (1.13.5 or later), FLIM (1.13.1 or later), and APEL (10.0 or later). diff --git a/README.branch b/README.branch index 4b7700d..c97790c 100644 --- a/README.branch +++ b/README.branch @@ -1,7 +1,7 @@ README.branch --- description of branches and tags. (DRAFT) ======================================================================== -Semi-gnus revision tree (2000-12-21) +Semi-gnus revision tree (2001-04-16) vendor personal main trunk public branch branches branches @@ -36,16 +36,17 @@ qGnus 0.?? ------> Semi-gnus 6.0.0 : ------------<---------------+ t-gnus-6_14 : Oort Gnus / : | (for FLIM 1.13, : | | : : develop) - : V V : | + : V V : : | : t-gnus-6_15-quimby<---<-----(t-gnus-6_14-quimby)<-----+ - : | : | - : : : : - : : - : akr <-- 6.2.3 - : shuhei-k <-- 6.3.1 -Gnus 5.6.11 ------> 6.3.3 - : 6.4.0 (for SEMI 1.5) - : (6.4.?)------> for SEMI 1.5 + : | : : | + : : : | feedback | + : : +<--------------+ + : : | | + : akr <-- 6.2.3 : t-gnus-6_15 + : shuhei-k <-- 6.3.1 (for FLIM 1.13, +Gnus 5.6.11 ------> 6.3.3 develop) + : 6.4.0 (for SEMI 1.5) | + : (6.4.?)------> for SEMI 1.5 : : | \ : | \ (Synch with original Gnus | ---> for SEMI 1.6 @@ -133,6 +134,7 @@ Public Branches t-gnus-6_12 T-gnus for SEMI 1.12/1.13, FLIM 1.12 API (stable) t-gnus-6_13 T-gnus for SEMI 1.13, FLIM 1.13 API (develop) t-gnus-6_14 T-gnus for SEMI 1.13, FLIM 1.13 API (develop) + t-gnus-6_15 T-gnus for SEMI 1.13, FLIM 1.13 API (develop) t-gnus-6_15-quimby T-gnus for SEMI 1.13, FLIM 1.13 API (develop) Personal Branches diff --git a/README.branch.ja b/README.branch.ja index 3b69df8..3e54c4c 100644 --- a/README.branch.ja +++ b/README.branch.ja @@ -1,7 +1,7 @@ README.branch.ja --- branch と tag の説明 (草稿) ======================================================================== -Semi-gnus revision tree (2000-12-21) +Semi-gnus revision tree (2001-04-16) vendor personal main trunk public branch branches branches @@ -36,16 +36,17 @@ qGnus 0.?? ------> Semi-gnus 6.0.0 : ------------<---------------+ t-gnus-6_14 : Oort Gnus / : | (for FLIM 1.13, : | | : : develop) - : V V : | + : V V : : | : t-gnus-6_15-quimby<---<-----(t-gnus-6_14-quimby)<-----+ - : | : | - : : : : - : : - : akr <-- 6.2.3 - : shuhei-k <-- 6.3.1 -Gnus 5.6.11 ------> 6.3.3 - : 6.4.0 (for SEMI 1.5) - : (6.4.?)------> for SEMI 1.5 + : | : : | + : : : | feedback | + : : +<--------------+ + : : | | + : akr <-- 6.2.3 : t-gnus-6_15 + : shuhei-k <-- 6.3.1 (for FLIM 1.13, +Gnus 5.6.11 ------> 6.3.3 develop) + : 6.4.0 (for SEMI 1.5) | + : (6.4.?)------> for SEMI 1.5 : : | \ : | \ (元の Gnus との Sync は何度 | ---> for SEMI 1.6 @@ -133,6 +134,7 @@ Public Branches t-gnus-6_12 T-gnus for SEMI 1.12/1.13, FLIM 1.12 API (stable) t-gnus-6_13 T-gnus for SEMI 1.13, FLIM 1.13 API (develop) t-gnus-6_14 T-gnus for SEMI 1.13, FLIM 1.13 API (develop) + t-gnus-6_15 T-gnus for SEMI 1.13, FLIM 1.13 API (develop) t-gnus-6_15-quimby T-gnus for SEMI 1.13, FLIM 1.13 API (develop) Personal Branches diff --git a/README.semi b/README.semi index 400ef23..30b1c06 100644 --- a/README.semi +++ b/README.semi @@ -48,6 +48,10 @@ Major tags are following: t-gnus-6_15-quimby Assigned to the latest version of T-gnus for developing and synchronizing with Oort Gnus. + t-gnus-6_15 Assigned to the latest version of T-gnus for + developing and synchronizing with the released + version of Oort Gnus. + pgnus-ichikawa The main trunk of T-gnus. semi-gnus Assigned to the latest stable version. It is diff --git a/README.semi.ja b/README.semi.ja index 76f9acd..8ef0de8 100644 --- a/README.semi.ja +++ b/README.semi.ja @@ -50,6 +50,9 @@ ftp://ftp.m17n.org/pub/mule/semi/semi-1.13-for-flim-1.13/ t-gnus-6_15-quimby 最新の T-gnus に割り当てられ、開発と Oort Gnus との同期を行ないます。 + t-gnus-6_15 最新の T-gnus に割り当てられ、開発とリリースさ + れた Oort Gnus との同期を行ないます。 + pgnus-ichikawa T-gnus の幹です。 semi-gnus 最新の安定版に割り当てられます。非常に保守的で diff --git a/lisp/ChangeLog b/lisp/ChangeLog index eb50c14..38c2175 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,37 @@ +2001-04-12 Jason Merrill + Committed by Simon Josefsson + + * imap.el (imap-shell-open): Erase the buffer *after* copying it into + the log. + +2001-04-14 01:14:42 Lars Magne Ingebrigtsen + + *gnus.el: Oort Gnus v0.02 is released. + +2001-04-14 00:48:42 Lars Magne Ingebrigtsen + + * gnus.el: Oort Gnus v0.01 is released. + +2001-04-13 22:01:46 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-highlight): Highlight read + undownloaded articles as read articles. + + * gnus-agent.el (gnus-agent-get-undownloaded-list): Clean up. + (gnus-agent-get-undownloaded-list): Mark all undownloaded + articles, even read ones, as such. + + * gnus-sum.el (gnus-summary-find-matching): Clean up. + (gnus-find-matching-articles): New function. + (gnus-summary-limit-include-matching-articles): New command. + (gnus-summary-limit-include-thread): Include articles that have + matching subjects. + (gnus-offer-save-summaries): Clean up. + +2001-04-13 Kai Gro,A_johann + + * nnmail.el (nnmail-split-fancy-with-parent): Add docstring. + 2001-04-12 19:00:00 ShengHuo ZHU From Jason Merrill diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 7eb4fe9..e9d3f53 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -655,23 +655,18 @@ the actual number of articles toggled is returned." (gnus-agent-method-p gnus-command-method)) (gnus-agent-load-alist gnus-newsgroup-name) ;; First mark all undownloaded articles as undownloaded. - (let ((articles (append gnus-newsgroup-unreads - gnus-newsgroup-marked - gnus-newsgroup-dormant)) - article) - (while (setq article (pop articles)) - (unless (or (cdr (assq article gnus-agent-article-alist)) - (memq article gnus-newsgroup-downloadable) - (memq article gnus-newsgroup-cached)) - (push article gnus-newsgroup-undownloaded)))) + (dolist (article (mapcar (lambda (header) (mail-header-number header)) + gnus-newsgroup-headers)) + (unless (or (cdr (assq article gnus-agent-article-alist)) + (memq article gnus-newsgroup-downloadable) + (memq article gnus-newsgroup-cached)) + (push article gnus-newsgroup-undownloaded))) ;; Then mark downloaded downloadable as not-downloadable, ;; if you get my drift. - (let ((articles gnus-newsgroup-downloadable) - article) - (while (setq article (pop articles)) - (when (cdr (assq article gnus-agent-article-alist)) - (setq gnus-newsgroup-downloadable - (delq article gnus-newsgroup-downloadable)))))))) + (dolist (article gnus-newsgroup-downloadable) + (when (cdr (assq article gnus-agent-article-alist)) + (setq gnus-newsgroup-downloadable + (delq article gnus-newsgroup-downloadable))))))) (defun gnus-agent-catchup () "Mark all undownloaded articles as read." diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index b136875..d2be9e7 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -852,8 +852,11 @@ automatically when it is selected." ((and (< score default) (memq mark (list gnus-downloadable-mark gnus-undownloaded-mark))) . gnus-summary-low-unread-face) - ((memq mark (list gnus-downloadable-mark gnus-undownloaded-mark)) + ((and (memq mark (list gnus-downloadable-mark gnus-undownloaded-mark)) + (memq article gnus-newsgroup-unreads)) . gnus-summary-normal-unread-face) + ((memq mark (list gnus-downloadable-mark gnus-undownloaded-mark)) + . gnus-summary-normal-read-face) ((> score default) . gnus-summary-high-read-face) ((< score default) @@ -6768,12 +6771,27 @@ Returns how many articles were removed." (gnus-summary-position-point)))) (defun gnus-summary-limit-include-thread (id) - "Display all the hidden articles that in the current thread." + "Display all the hidden articles that is in the thread with ID in it. +When called interactively, ID is the Message-ID of the current +article." (interactive (list (mail-header-id (gnus-summary-article-header)))) (let ((articles (gnus-articles-in-thread (gnus-id-to-thread (gnus-root-id id))))) (prog1 (gnus-summary-limit (nconc articles gnus-newsgroup-limit)) + (gnus-summary-limit-include-matching-articles + "subject" + (regexp-quote (gnus-simplify-subject-re + (mail-header-subject (gnus-id-to-header id))))) + (gnus-summary-position-point)))) + +(defun gnus-summary-limit-include-matching-articles (header regexp) + "Display all the hidden articles that have HEADERs that match REGEXP." + (interactive (list (read-string "Match on header: ") + (read-string "Regexp: "))) + (let ((articles (gnus-find-matching-articles header regexp))) + (prog1 + (gnus-summary-limit (nconc articles gnus-newsgroup-limit)) (gnus-summary-position-point)))) (defun gnus-summary-limit-include-dormant () @@ -7550,6 +7568,18 @@ Optional argument BACKWARD means do search for backward. (gnus-summary-position-point) t))) +(defun gnus-find-matching-articles (header regexp) + "Return a list of all articles that match REGEXP on HEADER. +This search includes all articles in the current group that Gnus has +fetched headers for, whether they are displayed or not." + (let ((articles nil) + (func `(lambda (h) (,(intern (concat "mail-header-" header)) h))) + (case-fold-search t)) + (dolist (header gnus-newsgroup-headers) + (when (string-match regexp (funcall func header)) + (push (mail-header-number header) articles))) + (nreverse articles))) + (defun gnus-summary-find-matching (header regexp &optional backward unread not-case-fold) "Return a list of all articles that match REGEXP on HEADER. @@ -7558,10 +7588,7 @@ BACKWARD is non-nil. If BACKWARD is `all', do all articles. If UNREAD is non-nil, only unread articles will be taken into consideration. If NOT-CASE-FOLD, case won't be folded in the comparisons." - (let ((data (if (eq backward 'all) gnus-newsgroup-data - (gnus-data-find-list - (gnus-summary-article-number) (gnus-data-list backward)))) - (case-fold-search (not not-case-fold)) + (let ((case-fold-search (not not-case-fold)) articles d func) (if (consp header) (if (eq (car header) 'extra) @@ -7573,14 +7600,17 @@ in the comparisons." (unless (fboundp (intern (concat "mail-header-" header))) (error "%s is not a valid header" header)) (setq func `(lambda (h) (,(intern (concat "mail-header-" header)) h)))) - (while data - (setq d (car data)) - (and (or (not unread) ; We want all articles... - (gnus-data-unread-p d)) ; Or just unreads. - (vectorp (gnus-data-header d)) ; It's not a pseudo. - (string-match regexp (funcall func (gnus-data-header d))) ; Match. - (push (gnus-data-number d) articles)) ; Success! - (setq data (cdr data))) + (dolist (d (if (eq backward 'all) + gnus-newsgroup-data + (gnus-data-find-list + (gnus-summary-article-number) + (gnus-data-list backward)))) + (when (and (or (not unread) ; We want all articles... + (gnus-data-unread-p d)) ; Or just unreads. + (vectorp (gnus-data-header d)) ; It's not a pseudo. + (string-match regexp + (funcall func (gnus-data-header d)))) ; Match. + (push (gnus-data-number d) articles))) ; Success! (nreverse articles))) (defun gnus-summary-execute-command (header regexp command &optional backward) @@ -10129,25 +10159,24 @@ If REVERSE, save parts that do not match TYPE." (defun gnus-offer-save-summaries () "Offer to save all active summary buffers." - (save-excursion - (let ((buflist (buffer-list)) - buffers bufname) - ;; Go through all buffers and find all summaries. - (while buflist - (and (setq bufname (buffer-name (car buflist))) - (string-match "Summary" bufname) - (save-excursion - (set-buffer bufname) - ;; We check that this is, indeed, a summary buffer. - (and (eq major-mode 'gnus-summary-mode) - ;; Also make sure this isn't bogus. - gnus-newsgroup-prepared - ;; Also make sure that this isn't a dead summary buffer. - (not gnus-dead-summary-mode))) - (push bufname buffers)) - (setq buflist (cdr buflist))) - ;; Go through all these summary buffers and offer to save them. - (when buffers + (let (buffers) + ;; Go through all buffers and find all summaries. + (dolist (buffer (buffer-list)) + (when (and (setq buffer (buffer-name buffer)) + (string-match "Summary" buffer) + (save-excursion + (set-buffer buffer) + ;; We check that this is, indeed, a summary buffer. + (and (eq major-mode 'gnus-summary-mode) + ;; Also make sure this isn't bogus. + gnus-newsgroup-prepared + ;; Also make sure that this isn't a + ;; dead summary buffer. + (not gnus-dead-summary-mode)))) + (push buffer buffers))) + ;; Go through all these summary buffers and offer to save them. + (when buffers + (save-excursion (map-y-or-n-p "Update summary buffer %s? " (lambda (buf) diff --git a/lisp/gnus-vers.el b/lisp/gnus-vers.el index fc2187d..3fd3e96 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -34,16 +34,16 @@ (require 'product) (provide 'gnus-vers) -(defconst gnus-revision-number "10" +(defconst gnus-revision-number "00" "Revision number for this version of gnus.") ;; Product information of this gnus. (product-provide 'gnus-vers (product-define "T-gnus" nil - (list 6 15 0 + (list 6 15 3 (string-to-number gnus-revision-number)))) -(defconst gnus-original-version-number "0.01" +(defconst gnus-original-version-number "0.03" "Version number for this version of Gnus.") (provide 'running-pterodactyl-gnus-0_73-or-later) diff --git a/lisp/imap.el b/lisp/imap.el index ec2585b..110760a 100644 --- a/lisp/imap.el +++ b/lisp/imap.el @@ -644,12 +644,12 @@ If ARGS, PROMPT is used as an argument to `format'." (not (imap-parse-greeting))) (accept-process-output process 1) (sit-for 1)) - (erase-buffer) (and imap-log (with-current-buffer (get-buffer-create imap-log) (buffer-disable-undo) (goto-char (point-max)) (insert-buffer-substring buffer))) + (erase-buffer) (when (memq (process-status process) '(open run)) (setq done process))))) (if done diff --git a/lisp/mm-util.el b/lisp/mm-util.el index e9cd0d2..1f124e7 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -131,8 +131,7 @@ (setq idx (1+ idx))) string))) (string-as-unibyte . identity) - (multibyte-string-p . ignore) - ))) + (multibyte-string-p . ignore)))) (eval-and-compile (defalias 'mm-char-or-char-int-p diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 05e9022..912a232 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1445,6 +1445,15 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." ;; Function for nnmail-split-fancy: look up all references in the ;; cache and if a match is found, return that group. (defun nnmail-split-fancy-with-parent () + "Split this message into the same group as its parent. +This function can be used as an entry in `nnmail-split-fancy', for +example like this: (: nnmail-split-fancy) +For a message to be split, it looks for the parent message in the +References or In-Reply-To header and then looks in the message id +cache file (given by the variable `nnmail-message-id-cache-file') to +see which group that message was put in. This group is returned. + +See the Info node `(gnus)Fancy Mail Splitting' for more details." (let* ((refstr (or (message-fetch-field "references") (message-fetch-field "in-reply-to"))) (references nil) -- 1.7.10.4