From 65155f3aecdca751672ed0e2822cbbcb545dc30a Mon Sep 17 00:00:00 2001 From: shuhei-k Date: Wed, 1 Jul 1998 22:54:20 +0000 Subject: [PATCH] Sync up to Gnus 5.6.23. --- lisp/ChangeLog | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-agent.el | 6 +++--- lisp/gnus-salt.el | 3 +-- lisp/gnus-spec.el | 3 +-- lisp/gnus-sum.el | 21 +++++++++++++-------- lisp/gnus-topic.el | 5 +++-- lisp/gnus-util.el | 2 +- lisp/gnus.el | 4 ++-- lisp/nndoc.el | 1 + lisp/nnmail.el | 3 +-- lisp/nntp.el | 40 +++++++++++++++++++++++++--------------- texi/ChangeLog | 13 +++++++++++++ texi/gnus.texi | 47 +++++++++++++++++++++++++++++++++++------------ texi/message.texi | 6 +++--- 14 files changed, 152 insertions(+), 52 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8db48c8..d3d0183 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,53 @@ +Wed Jul 1 13:33:26 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.23 is released. + +Wed Jul 1 12:52:32 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-record-command): Give more precise time info. + (nntp-next-result-arrived-p): Look for the end of error lines. + +Wed Jul 1 12:24:06 1998 François Pinard + + * gnus-util.el (gnus-delete-if): Would do the opposite. + +Wed Jul 1 01:53:31 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-build-sparse-threads): Didn't work at all. + +Tue Jun 30 15:56:54 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-send-authinfo): Store the user name. + (nntp-authinfo-user): New variable. + + * gnus-sum.el (gnus-summary-limit-mark-excluded-as-read): Would + mark some articles as unread. + + * gnus-agent.el (gnus-agent-expire): Don't sort lines. + +Tue Jun 30 15:56:31 1998 Mike McEwan + + * gnus-agent.el (gnus-agent-expire): Use a fresh hash table. + +Mon Jun 29 22:49:49 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.22 is released. + +Mon Jun 29 21:22:46 1998 Lars Magne Ingebrigtsen + + * gnus-salt.el (gnus-pick-mode-map): Remove gnus-mouse. + + * gnus-sum.el (gnus-dependencies-add-header): `debug' left in. + Eh. Eh. + + * gnus-salt.el (gnus-summary-pick-line-format): Missing %.- + + * gnus-topic.el (gnus-topic-rename): Fix error message. + +Sun Jun 28 14:32:08 1998 Lars Magne Ingebrigtsen + + * gnus-spec.el (gnus-face-face-function): Double quoting removed. + Sun Jun 28 09:54:52 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.21 is released. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 7d40b82..2a01d85 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -1265,13 +1265,13 @@ The following commands are available: (interactive) (let ((methods gnus-agent-covered-methods) (day (- (gnus-time-to-day (current-time)) gnus-agent-expire-days)) - (expiry-hashtb (gnus-make-hashtable 1023)) gnus-command-method sym group articles history overview file histories elem art nov-file low info unreads marked article) (save-excursion (setq overview (get-buffer-create " *expire overview*")) (while (setq gnus-command-method (pop methods)) + (let ((expiry-hashtb (gnus-make-hashtable 1023))) (gnus-agent-open-history) (set-buffer (setq gnus-agent-current-history @@ -1330,7 +1330,7 @@ The following commands are available: (< art article))) (if (file-exists-p (gnus-agent-article-name - (number-to-string article) group)) + (number-to-string art) group)) (forward-line 1) ;; Remove old NOV lines that have no articles. (gnus-delete-line))) @@ -1373,7 +1373,7 @@ The following commands are available: (gnus-delete-line)) (gnus-agent-save-history) (gnus-agent-close-history)) - (gnus-message 4 "Expiry...done"))))) + (gnus-message 4 "Expiry...done")))))) ;;;###autoload (defun gnus-agent-batch () diff --git a/lisp/gnus-salt.el b/lisp/gnus-salt.el index 0dbf148..c8280b2 100644 --- a/lisp/gnus-salt.el +++ b/lisp/gnus-salt.el @@ -58,7 +58,7 @@ :group 'gnus-summary-pick) (defcustom gnus-summary-pick-line-format - "-5P %U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n" + "%-5P %U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n" "*The format specification of the lines in pick buffers. It accepts the same format specs that `gnus-summary-line-format' does." :type 'string @@ -87,7 +87,6 @@ It accepts the same format specs that `gnus-summary-line-format' does." "E" gnus-uu-mark-by-regexp "b" gnus-uu-mark-buffer "B" gnus-uu-unmark-buffer - gnus-mouse-2 gnus-pick-mouse-pick "X" gnus-pick-start-reading )) diff --git a/lisp/gnus-spec.el b/lisp/gnus-spec.el index 9163180..23215fb 100644 --- a/lisp/gnus-spec.el +++ b/lisp/gnus-spec.el @@ -239,8 +239,7 @@ (defun gnus-face-face-function (form type) `(gnus-add-text-properties (point) (progn ,@form (point)) - '(gnus-face t - face ',(symbol-value (intern (format "gnus-face-%d" type)))))) + '(gnus-face t face ,(symbol-value (intern (format "gnus-face-%d" type)))))) (defun gnus-tilde-max-form (el max-width) "Return a form that limits EL to MAX-WIDTH." diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 8c48ea8..cd14b36 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -34,6 +34,7 @@ (require 'gnus-range) (require 'gnus-int) (require 'gnus-undo) +(require 'gnus-util) (require 'mime-view) (autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t) @@ -2934,7 +2935,6 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise." ;; Yuk! This is a reference loop. Make the article be a ;; root article. (progn - (debug) (mail-header-set-references (car (symbol-value id-dep)) "none") (setq ref nil)) (setq ref (gnus-parent-id (mail-header-references ref-header))))) @@ -2949,6 +2949,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise." (defun gnus-build-sparse-threads () (let ((headers gnus-newsgroup-headers) + (gnus-summary-ignore-duplicates t) header references generation relations cthread subject child end pthread relation new-child date) ;; First we create an alist of generations/relations, where @@ -2967,12 +2968,14 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise." generation 0) (while (search-backward ">" nil t) (setq end (1+ (point))) - (if (search-backward "<" nil t) - (push (list (incf generation) - child (setq child new-child) - subject date) - relations))) - (push (list (1+ generation) child nil subject) relations) + (when (search-backward "<" nil t) + (setq new-child (buffer-substring (point) end)) + (push (list (incf generation) + child (setq child new-child) + subject date) + relations))) + (when child + (push (list (1+ generation) child nil subject) relations)) (erase-buffer))) (kill-buffer (current-buffer))) ;; Sort over trustworthiness. @@ -6085,7 +6088,9 @@ If ALL, mark even excluded ticked and dormants as read." '<) (sort gnus-newsgroup-limit '<))) article) - (setq gnus-newsgroup-unreads gnus-newsgroup-limit) + (setq gnus-newsgroup-unreads + (delete-duplicates (append gnus-newsgroup-unreads + gnus-newsgroup-limit))) (if all (setq gnus-newsgroup-dormant nil gnus-newsgroup-marked nil diff --git a/lisp/gnus-topic.el b/lisp/gnus-topic.el index 1f404ba..6880f63 100644 --- a/lisp/gnus-topic.el +++ b/lisp/gnus-topic.el @@ -1267,7 +1267,7 @@ If COPYP, copy the groups instead." (read-string (format "Rename %s to: " topic))))) ;; Check whether the new name exists. (when (gnus-topic-find-topology new-name) - (error "Topic '%s' already exists")) + (error "Topic '%s' already exists" new-name)) ;; "nil" is an invalid name, for reasons I'd rather not go ;; into here. Trust me. (when (equal new-name "nil") @@ -1281,7 +1281,8 @@ If COPYP, copy the groups instead." (setcar entry new-name)) (forward-line -1) (gnus-dribble-touch) - (gnus-group-list-groups))) + (gnus-group-list-groups) + (forward-line 1))) (defun gnus-topic-indent (&optional unindent) "Indent a topic -- make it a sub-topic of the previous topic. diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 82e7f94..09dc5c9 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -949,7 +949,7 @@ ARG is passed to the first function." "Delete elements from LIST that satisfy PREDICATE." (let (out) (while list - (when (funcall predicate (car list)) + (unless (funcall predicate (car list)) (push (car list) out)) (pop list)) (nreverse out))) diff --git a/lisp/gnus.el b/lisp/gnus.el index b77d839..f995e5a 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -250,11 +250,11 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "6.7.7" +(defconst gnus-version-number "6.7.9" "Version number for this version of gnus.") (defconst gnus-version - (format "Semi-gnus %s (based on Gnus 5.6.20; for SEMI 1.8)" + (format "Semi-gnus %s (based on Gnus 5.6.23; for SEMI 1.8)" gnus-version-number) "Version string for this version of gnus.") diff --git a/lisp/nndoc.el b/lisp/nndoc.el index 0092ac0..c32f50f 100644 --- a/lisp/nndoc.el +++ b/lisp/nndoc.el @@ -30,6 +30,7 @@ (require 'message) (require 'nnmail) (require 'nnoo) +(require 'gnus-util) (eval-when-compile (require 'cl)) (nnoo-declare nndoc) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index e761868..f44cb70 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1755,8 +1755,7 @@ If ARGS, PROMPT is used as an argument to `format'." (defun nnmail-purge-split-history (group) "Remove all instances of GROUP from `nnmail-split-history'." - (let ((history nnmail-split-history) - prev) + (let ((history nnmail-split-history)) (while history (setcar history (gnus-delete-if (lambda (e) (string= (car e) group)) (car history))) diff --git a/lisp/nntp.el b/lisp/nntp.el index 67eafb7..763c614 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -197,6 +197,7 @@ server there that you can connect to. See also (defvoo nntp-last-command-time nil) (defvoo nntp-last-command nil) (defvoo nntp-authinfo-password nil) +(defvoo nntp-authinfo-user nil) (defvar nntp-connection-list nil) @@ -234,8 +235,10 @@ server there that you can connect to. See also (save-excursion (set-buffer (get-buffer-create "*nntp-log*")) (goto-char (point-max)) - (insert (format-time-string "%Y%m%dT%H%M%S" (current-time)) - " " nntp-address " " string "\n"))) + (let ((time (current-time))) + (insert (format-time-string "%Y%m%dT%H%M%S" time) + "." (format "%03d" (/ (nth 2 time) 1000)) + " " nntp-address " " string "\n")))) (defsubst nntp-wait-for (process wait-for buffer &optional decode discard) "Wait for WAIT-FOR to arrive from PROCESS." @@ -392,18 +395,22 @@ server there that you can connect to. See also (nnoo-define-basics nntp) (defsubst nntp-next-result-arrived-p () - (let ((point (point))) - (cond - ((eq (following-char) ?2) - (if (re-search-forward "\n\\.\r?\n" nil t) - t - (goto-char point) - nil)) - ((looking-at "[34]") - (forward-line 1) - t) - (t - nil)))) + (cond + ;; A result that starts with a 2xx code is terminated by + ;; a line with only a "." on it. + ((eq (following-char) ?2) + (if (re-search-forward "\n\\.\r?\n" nil t) + t + nil)) + ;; A result that startx with a 3xx or 4xx code is terminated + ;; by a newline. + ((looking-at "[34]") + (if (search-forward "\n" nil t) + t + nil)) + ;; No result here. + (t + nil))) (deffoo nntp-retrieve-headers (articles &optional group server fetch-old) "Retrieve the headers of ARTICLES." @@ -752,7 +759,10 @@ and a password." force) (nntp-send-command "^3.*\r?\n" "AUTHINFO USER" - (or user (read-string (format "NNTP (%s) user name: " nntp-address)))) + (or user + nntp-authinfo-user + (setq nntp-authinfo-user + (read-string (format "NNTP (%s) user name: " nntp-address))))) (nntp-send-command "^2.*\r?\n" "AUTHINFO PASS" (or passwd diff --git a/texi/ChangeLog b/texi/ChangeLog index 30092c9..8738e9d 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,6 +1,19 @@ +Tue Jun 30 16:11:27 1998 Lars Magne Ingebrigtsen + + * gnus.texi (Topic Commands): Addition. + +Mon Jun 29 21:46:13 1998 Lars Magne Ingebrigtsen + + * gnus.texi (Article Keymap): Typo. + +Sun Jun 28 17:41:10 1998 Lars Magne Ingebrigtsen + + * gnus.texi (Formatting Fonts): Typo fix. + Sat Jun 27 04:37:14 1998 Lars Magne Ingebrigtsen * gnus.texi (Mail-To-News Gateways): Addition. + (Mail-To-News Gateways): Typo. Fri Jun 26 13:33:00 1998 Yoshiki Hayashi diff --git a/texi/gnus.texi b/texi/gnus.texi index 7321a49..2d14cce 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.7.5 Manual +@settitle Semi-gnus 6.7.9 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -316,7 +316,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Semi-gnus 6.7.5 Manual +@title Semi-gnus 6.7.9 Manual @author by Lars Magne Ingebrigtsen @page @@ -359,7 +359,7 @@ internationalization/localization and multiscript features based on MULE API. So Semi-gnus does not discriminate various language communities. Oh, if you are a Klingon, please wait Unicode Next Generation. -This manual corresponds to Semi-gnus 6.7.5. +This manual corresponds to Semi-gnus 6.7.9. @end ifinfo @@ -2661,6 +2661,13 @@ convention (@pxref{Process/Prefix}). @kindex T D (Topic) @findex gnus-topic-remove-group Remove a group from the current topic (@code{gnus-topic-remove-group}). +This command is mainly useful if you have the same group in several +topics and wish to remove it from one of the topics. You may also +remove a group from all topics, but in that case, Gnus will add it to +the root topic the next time you start Gnus. In fact, all new groups +(which, naturally, don't belong to any topic) will show up in the root +topic. + This command uses the process/prefix convention (@pxref{Process/Prefix}). @@ -7915,7 +7922,7 @@ Scroll backwards one page (@code{gnus-article-prev-page}). @kindex C-c ^ (Article) @findex gnus-article-refer-article If point is in the neighborhood of a @code{Message-ID} and you press -@kbd{r}, gnus will try to get that article from the server +@kbd{C-c ^}, gnus will try to get that article from the server (@code{gnus-article-refer-article}). @item C-c C-m @@ -9622,7 +9629,9 @@ the five possible split syntaxes: @enumerate @item -@samp{group}: If the split is a string, that will be taken as a group name. +@samp{group}: If the split is a string, that will be taken as a group +name. Normal regexp match expansion will be done. See below for +examples. @item @var{(FIELD VALUE SPLIT)}: If the split is a list, the first element of @@ -9676,6 +9685,12 @@ substitutions in the group names), you can say things like: (any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1") @end example +If the string contains the element @samp{\&}, then the previously +matched string will be substituted. Similarly, the elements @samp{\1} +up to @samp{\9} will be substituted with the text matched by the +groupings 1 through 9. + + @node Mail and Procmail @subsection Mail and Procmail @cindex procmail @@ -11078,7 +11093,7 @@ Here's an example: @lisp (setq gnus-post-method - '(nngateway "mail2news@replay.com" + '(nngateway "mail2news@@replay.com" (nngateway-header-transformation nngateway-mail2news-header-transformation))) @end lisp @@ -13107,7 +13122,7 @@ by hand. The kill to score conversion package isn't included in Gnus by default. You can fetch it from -@file{http://www.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}. +@file{http://www.stud.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}. If your old kill files are very complex---if they contain more non-@code{gnus-kill} forms than not, you'll have to convert them by @@ -13851,9 +13866,9 @@ the special @code{mouse-face} property set, which means that it will be highlighted (with @code{gnus-mouse-face}) when you put the mouse pointer over it. -Text inside the @samp{%[} and @samp{%]} specifiers will have their +Text inside the @samp{%@{} and @samp{%@}} specifiers will have their normal faces set using @code{gnus-face-0}, which is @code{bold} by -default. If you say @samp{%1[}, you'll get @code{gnus-face-1} instead, +default. If you say @samp{%1@{}, you'll get @code{gnus-face-1} instead, and so on. Create as many faces as you wish. The same goes for the @code{mouse-face} specs---you can say @samp{%3(hello%)} to have @samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}. @@ -15342,7 +15357,7 @@ but at the common table.@* If you want to investigate the person responsible for this outrage, you can point your (feh!) web browser to -@file{http://www.ifi.uio.no/~larsi/}. This is also the primary +@file{http://www.stud.ifi.uio.no/~larsi/}. This is also the primary distribution point for the new and spiffy versions of Gnus, and is known as The Site That Destroys Newsrcs And Drives People Mad. @@ -15842,7 +15857,7 @@ actually are people who are using Gnus. Who'd'a thunk it! * ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus. * September Gnus:: The Thing Formally Known As Gnus 5.3/5.3. * Red Gnus:: Third time best---Gnus 5.4/5.5. -* Quassia Gnus:: Two times two is four, or Gnus 5.6.20. +* Quassia Gnus:: Two times two is four, or Gnus 5.6.23. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16377,7 +16392,7 @@ Emphasized text can be properly fontisized: @node Quassia Gnus @subsubsection Quassia Gnus -New features in Gnus 5.6.20: +New features in Gnus 5.6.23: @itemize @bullet @@ -17682,6 +17697,14 @@ in any other dummy thread will make gnus highlight the dummy root instead of the first article. @item +Propagate all group properties (marks, article numbers, etc) up to the +topics for displaying. + +@item +`n' in the group buffer with topics should go to the next group +with unread articles, even if that group is hidden in a topic. + +@item Solve the halting problem. @c TODO diff --git a/texi/message.texi b/texi/message.texi index 1c808dd..78168ac 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 5.6.20 Manual +@settitle Message 5.6.23 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Message 5.6.20 Manual +@title Message 5.6.23 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Message 5.6.20. Message is distributed with +This manual corresponds to Message 5.6.23. Message is distributed with the Gnus distribution bearing the same version number as this manual has. -- 1.7.10.4