From 3c2efd56d6602bc7c0804951a35ee5010730e647 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 16 Apr 2001 00:54:43 +0000 Subject: [PATCH] Synch with Oort Gnus v0.02. --- ChangeLog | 4 +++ README.T-gnus | 2 +- lisp/ChangeLog | 24 +++++++++++++ lisp/gnus-agent.el | 25 ++++++-------- lisp/gnus-sum.el | 95 ++++++++++++++++++++++++++++++++++------------------ lisp/gnus-vers.el | 4 +-- lisp/mm-util.el | 3 +- 7 files changed, 104 insertions(+), 53 deletions(-) diff --git a/ChangeLog b/ChangeLog index c34f648..7788d14 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 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 diff --git a/README.T-gnus b/README.T-gnus index d59d2c0..5555dd6 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.1 (based on Oort Gnus 0.01). It + The latest T-gnus is T-gnus 6.15.2 (based on Oort Gnus 0.02). It requires SEMI/WEMI (1.13.5 or later), FLIM (1.13.1 or later), and APEL (10.0 or later). diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8f9d512..af6700b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,27 @@ +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_(Bjohann * nnmail.el (nnmail-split-fancy-with-parent): Add docstring. 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 52f10c2..70de7f7 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -40,10 +40,10 @@ ;; Product information of this gnus. (product-provide 'gnus-vers (product-define "T-gnus" nil - (list 6 15 1 + (list 6 15 2 (string-to-number gnus-revision-number)))) -(defconst gnus-original-version-number "0.01" +(defconst gnus-original-version-number "0.02" "Version number for this version of Gnus.") (provide 'running-pterodactyl-gnus-0_73-or-later) 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 -- 1.7.10.4