+2001-04-16 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/gnus-vers.el: T-gnus 6.15.3 revision 00.
+
+2001-04-16 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/gnus-vers.el: T-gnus 6.15.2 revision 00.
+
+2001-04-16 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/gnus-vers.el: T-gnus 6.15.1 revision 00.
+
2001-04-13 Katsumi Yamaoka <yamaoka@jpl.org>
* lisp/lpath.el: Fbind `xml-parse-region' for XEmacsen and old FSF
+++ /dev/null
-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
-<URL:http://www.gnus.org/dist/etc.tar.gz>. 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').
* 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).
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
: ------------<---------------+ 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
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
README.branch.ja --- branch \e$B$H\e(B tag \e$B$N@bL@\e(B (\e$BAp9F\e(B)
========================================================================
-Semi-gnus revision tree (2000-12-21)
+Semi-gnus revision tree (2001-04-16)
vendor personal main trunk public
branch branches branches
: ------------<---------------+ 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 :
: | \
: | \
(\e$B85$N\e(B Gnus \e$B$H$N\e(B Sync \e$B$O2?EY\e(B | ---> for SEMI 1.6
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
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
t-gnus-6_15-quimby \e$B:G?7$N\e(B T-gnus \e$B$K3d$jEv$F$i$l!"3+H/$H\e(B Oort Gnus
\e$B$H$NF14|$r9T$J$$$^$9!#\e(B
+ t-gnus-6_15 \e$B:G?7$N\e(B T-gnus \e$B$K3d$jEv$F$i$l!"3+H/$H%j%j!<%9$5\e(B
+ \e$B$l$?\e(B Oort Gnus \e$B$H$NF14|$r9T$J$$$^$9!#\e(B
+
pgnus-ichikawa T-gnus \e$B$N44$G$9!#\e(B
semi-gnus \e$B:G?7$N0BDjHG$K3d$jEv$F$i$l$^$9!#Hs>o$KJ]<iE*$G\e(B
+2001-04-12 Jason Merrill <jason_merrill@redhat.com>
+ Committed by Simon Josefsson <simon@josefsson.org>
+
+ * imap.el (imap-shell-open): Erase the buffer *after* copying it into
+ the log.
+
+2001-04-14 01:14:42 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+ *gnus.el: Oort Gnus v0.02 is released.
+
+2001-04-14 00:48:42 Lars Magne Ingebrigtsen <larsi@quimby.gnus.org>
+
+ * gnus.el: Oort Gnus v0.01 is released.
+
+2001-04-13 22:01:46 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+ * nnmail.el (nnmail-split-fancy-with-parent): Add docstring.
+
2001-04-12 19:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
From Jason Merrill <jason_merrill@redhat.com>
(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."
((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)
(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 ()
(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.
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)
(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)
(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)
(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)
(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
(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
;; 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)