From 950b892059153943901c6069f53aaa7feefcfe75 Mon Sep 17 00:00:00 2001 From: shuhei-k Date: Sun, 26 Apr 1998 14:30:14 +0000 Subject: [PATCH] Sync up with Gnus 5.6.5. --- lisp/ChangeLog | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-agent.el | 13 +++++++++++++ lisp/gnus-msg.el | 41 ++++++++++++++++++++++++++-------------- lisp/gnus-sum.el | 2 +- lisp/gnus.el | 4 ++-- lisp/message.el | 17 +++++++++++------ lisp/nnkiboze.el | 24 +++++++++++++++++------- texi/Makefile.in | 4 ++-- texi/gnus.texi | 52 +++++++++++++++++++++++++++++++++++---------------- 9 files changed, 162 insertions(+), 48 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 97b7710..feb5648 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,56 @@ +Fri Apr 24 21:32:14 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.5 is released. + +Fri Apr 24 21:19:21 1998 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-post-method): Doc fix. + (gnus-post-method): Reversed semantics. + +1998-04-01 Jan Vroonhof + + * gnus-msg.el (gnus-post-method): Customized. Added 'native + option. In the function, added support for new value. + +Fri Apr 24 20:04:15 1998 Lars Magne Ingebrigtsen + + * nnmbox.el (nnmbox-request-create-group): New function. + +Sun Apr 12 07:55:16 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-save-group-info): Only do those that + are covered. + +Tue Apr 7 11:26:31 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-authinfo-file): Doc fix. + +1998-03-31 Ken Raeburn + + * nnml.el (nnml-request-expire-articles): Sort active-articles, + then only expire the intersection of that set with the requested + articles. + +Wed Apr 1 16:01:44 1998 Lars Magne Ingebrigtsen + + * message.el (message-supersede): Check Sender. + (message-cancel-news): Fix Sender check. + +Sun Mar 29 11:54:33 1998 Lars Magne Ingebrigtsen + + * nnkiboze.el (nnkiboze-generate-group): Would mess up newsrs + hashtb. + (nnkiboze-enter-nov): Created bogus Xrefs headers. + + * gnus-agent.el (gnus-agent-save-group-info): New function. + + * gnus-start.el (gnus-get-unread-articles): Use it. + + * message.el (message-expand-group): Allow completion from in the + middle of strings. + (message-font-lock-keywords): Work when mail-header-separator is + "". + Sun Mar 29 09:56:00 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.4 is released. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index d616263..f27161a 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -512,6 +512,19 @@ the actual number of articles toggled is returned." (when (file-exists-p (gnus-agent-lib-file "active")) (delete-file (gnus-agent-lib-file "active")))) +(defun gnus-agent-save-group-info (method group active) + (when (gnus-agent-method-p method) + (let* ((gnus-command-method method) + (file (gnus-agent-lib-file "active"))) + (gnus-make-directory (file-name-directory file)) + (nnheader-temp-write file + (insert-file-contents file) + (goto-char (point-min)) + (when (re-search-forward "^" (regexp-quote group) " " nil t) + (gnus-delete-line)) + (insert group " " (number-to-string (cdr active)) " " + (number-to-string (car active)) "\n"))))) + (defun gnus-agent-group-path (group) "Translate GROUP into a path." (if nnmail-use-long-file-names diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index ad7f8dd..a1bb4c5 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -34,18 +34,24 @@ (require 'message) (require 'gnus-art) -;; Added by Sudish Joseph . -(defvar gnus-post-method nil +(defcustom gnus-post-method nil "*Preferred method for posting USENET news. -If this variable is nil, Gnus will use the current method to decide -which method to use when posting. If it is non-nil, it will override -the current method. This method will not be used in mail groups and -the like, only in \"real\" newsgroups. -The value must be a valid method as discussed in the documentation of -`gnus-select-method'. It can also be a list of methods. If that is -the case, the user will be queried for what select method to use when -posting.") +If this variable is `current', Gnus will use the \"current\" select +method when posting. If it is nil (which is the default), Gnus will +use the native posting method of the server. + +This method will not be used in mail groups and the like, only in +\"real\" newsgroups. + +If not nil nor `native', the value must be a valid method as discussed +in the documentation of `gnus-select-method'. It can also be a list of +methods. If that is the case, the user will be queried for what select +method to use when posting." + :group 'gnus-group-foreign + :type `(choice (const nil) + (const native) + (sexp :tag "Methods" ,gnus-select-method))) (defvar gnus-outgoing-message-group nil "*All outgoing messages will be put in this group. @@ -431,18 +437,23 @@ If SILENT, don't prompt the user." ;; If the group-method is nil (which shouldn't happen) we use ;; the default method. ((null group-method) - (or gnus-post-method gnus-select-method message-post-method)) - ;; We want this group's method. + (or (and (null (eq gnus-post-method 'active)) gnus-post-method) + gnus-select-method message-post-method)) + ;; We want the inverse of the default ((and arg (not (eq arg 0))) - group-method) + (if (eq gnus-post-method 'active) + gnus-select-method + group-method)) ;; We query the user for a post method. ((or arg (and gnus-post-method + (not (eq gnus-post-method 'current)) (listp (car gnus-post-method)))) (let* ((methods ;; Collect all methods we know about. (append - (when gnus-post-method + (when (and gnus-post-method + (not (eq gnus-post-method 'current))) (if (listp (car gnus-post-method)) gnus-post-method (list gnus-post-method))) @@ -475,6 +486,8 @@ If SILENT, don't prompt the user." (cons (or gnus-last-posting-server "") 0)))) method-alist)))) ;; Override normal method. + ((eq gnus-post-method 'current) + group-method) (gnus-post-method gnus-post-method) ;; Use the normal select method. diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 44d0ac8..9262d65 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -7201,7 +7201,7 @@ latter case, they will be copied into the relevant groups." (gnus-summary-copy-article n nil method))) (defun gnus-summary-import-article (file) - "Import a random file into a mail newsgroup." + "Import an arbitrary file into a mail newsgroup." (interactive "fImport file: ") (let ((group gnus-newsgroup-name) (now (current-time)) diff --git a/lisp/gnus.el b/lisp/gnus.el index 3b317bd..27f2de1 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -246,7 +246,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "6.2.1" +(defconst gnus-version-number "6.2.2" "Version number for this version of gnus.") (defconst gnus-version @@ -1677,7 +1677,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") ("gnus-agent" gnus-open-agent gnus-agent-get-function gnus-agent-save-groups gnus-agent-save-active gnus-agent-method-p gnus-agent-get-undownloaded-list gnus-agent-fetch-session - gnus-summary-set-agent-mark) + gnus-summary-set-agent-mark gnus-agent-save-group-info) ("gnus-agent" :interactive t gnus-unplugged gnus-agentize gnus-agent-batch) ("gnus-vm" :interactive t gnus-summary-save-in-vm diff --git a/lisp/message.el b/lisp/message.el index 10d6028..010d852 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -785,8 +785,11 @@ Defaults to `text-mode-abbrev-table'.") (,(concat "^\\(X-[A-Za-z0-9-]+\\|In-Reply-To\\):" content) (1 'message-header-name-face) (2 'message-header-name-face)) - (,(concat "^\\(" (regexp-quote mail-header-separator) "\\)$") - 1 'message-separator-face) + ,@(if (and mail-header-separator + (not (equal mail-header-separator ""))) + `((,(concat "^\\(" (regexp-quote mail-header-separator) "\\)$") + 1 'message-separator-face)) + nil) (,(concat "^[ \t]*" "\\([" cite-prefix "]+[" cite-suffix "]*\\)?" "[:>|}].*") @@ -3621,9 +3624,10 @@ header line with the old Message-ID." (let ((cur (current-buffer))) ;; Check whether the user owns the article that is to be superseded. (unless (string-equal - (downcase (cadr (mail-extract-address-components - (message-fetch-field "from")))) - (downcase (message-make-address))) + (downcase (or (message-fetch-field "sender") + (cadr (mail-extract-address-components + (message-fetch-field "from"))))) + (downcase (message-make-sender))) (error "This article is not yours")) ;; Get a normal message buffer. (message-pop-to-buffer (message-buffer-name "supersede")) @@ -3924,7 +3928,8 @@ Do a `tab-to-tab-stop' if not in those headers." (point)) (skip-chars-backward "^, \t\n") (point)))) (completion-ignore-case t) - (string (buffer-substring b (point))) + (string (buffer-substring b (progn (skip-chars-forward "^,\t\n ") + (point)))) (hashtb (and (boundp 'gnus-active-hashtb) gnus-active-hashtb)) (completions (all-completions string hashtb)) (cur (current-buffer)) diff --git a/lisp/nnkiboze.el b/lisp/nnkiboze.el index 77fabca..028d9e4 100644 --- a/lisp/nnkiboze.el +++ b/lisp/nnkiboze.el @@ -115,6 +115,8 @@ (save-excursion (set-buffer nntp-server-buffer) (erase-buffer) + (unless (file-exists-p nov-file) + (nnkiboze-request-scan group)) (if (not (file-exists-p nov-file)) (nnheader-report 'nnkiboze "Can't select group %s" group) (nnheader-insert-file-contents nov-file) @@ -224,7 +226,7 @@ Finds out what articles are to be part of the nnkiboze groups." (gnus-verbose (min gnus-verbose 3)) gnus-select-group-hook gnus-summary-prepare-hook gnus-thread-sort-functions gnus-show-threads - gnus-visual gnus-suppress-duplicates) + gnus-visual gnus-suppress-duplicates num-unread) (unless info (error "No such group: %s" group)) ;; Load the kiboze newsrc file for this group. @@ -267,7 +269,9 @@ Finds out what articles are to be part of the nnkiboze groups." (gnus-group-jump-to-group (caar newsrc)) (gnus-message 3 "nnkiboze: Checking %s..." (caar newsrc)) (setq ginfo (gnus-get-info (gnus-group-group-name)) - orig-info (gnus-copy-sequence ginfo)) + orig-info (gnus-copy-sequence ginfo) + num-unread (car (gnus-gethash (caar newsrc) + gnus-newsrc-hashtb))) (unwind-protect (progn ;; We set all list of article marks to nil. Since we operate @@ -305,10 +309,13 @@ Finds out what articles are to be part of the nnkiboze groups." gnus-newsgroup-name)) (setq gnus-newsgroup-scored (cdr gnus-newsgroup-scored))) ;; That's it. We exit this group. - (gnus-summary-exit-no-update))) + (when (eq major-mode 'gnus-summary-mode) + (kill-buffer (current-buffer))))) ;; Restore the proper info. (when ginfo - (setcdr ginfo (cdr orig-info))))) + (setcdr ginfo (cdr orig-info))) + (setcar (gnus-gethash (caar newsrc) gnus-newsrc-hashtb) + num-unread))) (setcdr (car newsrc) (car active)) (gnus-message 3 "nnkiboze: Checking %s...done" (caar newsrc)) (setq newsrc (cdr newsrc)))) @@ -316,8 +323,11 @@ Finds out what articles are to be part of the nnkiboze groups." (nnheader-temp-write newsrc-file (insert "(setq nnkiboze-newsrc '") (gnus-prin1 nnkiboze-newsrc) - (insert ")\n")) - t)) + (insert ")\n"))) + (save-excursion + (set-buffer gnus-group-buffer) + (gnus-group-list-groups)) + t) (defun nnkiboze-enter-nov (buffer header group) (save-excursion @@ -342,7 +352,7 @@ Finds out what articles are to be part of the nnkiboze groups." ;; The first Xref has to be the group this article ;; really came for - this is the article nnkiboze ;; will request when it is asked for the article. - (insert group ":" + (insert " " group ":" (int-to-string (mail-header-number header)) " ") (while (re-search-forward " [^ ]+:[0-9]+" nil t) (goto-char (1+ (match-beginning 0))) diff --git a/texi/Makefile.in b/texi/Makefile.in index be10a0d..e3740e2 100644 --- a/texi/Makefile.in +++ b/texi/Makefile.in @@ -115,9 +115,9 @@ distclean: install: $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir) @for file in gnus message; do \ - for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ + for ifile in `echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ if test -f $$ifile; then \ - echo " $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile"; \ + echo " $(INSTALL_DATA) $$ifile $(infodir)/$$ifile"; \ $(INSTALL_DATA) $$ifile $(infodir)/$$ifile; \ else : ; fi; \ done; \ diff --git a/texi/gnus.texi b/texi/gnus.texi index 9016ef6..1f3ca7c 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1912,6 +1912,10 @@ search engine type and the search string. Valid search engine types include @code{dejanews}, @code{altavista} and @code{reference}. @xref{Web Searches}. +If you use the @code{dejanews} search engine, you can limit the search +to a particular group by using a match string like +@samp{~g alt.sysadmin.recovery shaving}. + @item G DEL @kindex G DEL (Group) @findex gnus-group-delete-group @@ -3265,8 +3269,12 @@ One space for each thread level. Twenty minus thread level spaces. @item U Unread. + @item R -Replied. +This misleadingly named specifier is the @dfn{secondary mark}. This +mark will say whether the article has been replied to, has been cached, +or has been saved. + @item i Score as a number (@pxref{Scoring}). @item z @@ -4017,7 +4025,7 @@ followups, you can use the @kbd{/ D} command (@pxref{Limiting}). @item SPACE @vindex gnus-unread-mark -Markes as unread (@code{gnus-unread-mark}). +Marked as unread (@code{gnus-unread-mark}). @dfn{Unread articles} are articles that haven't been read at all yet. @end table @@ -4340,7 +4348,8 @@ Invert the list of process marked articles @item M P R @kindex M P R (Summary) @findex gnus-uu-mark-by-regexp -Mark articles by a regular expression (@code{gnus-uu-mark-by-regexp}). +Mark articles that have a @code{Subject} header that matches a regular +expression (@code{gnus-uu-mark-by-regexp}). @item M P r @kindex M P r (Summary) @@ -8101,6 +8110,11 @@ You can also set @code{gnus-post-method} to a list of select methods. If that's the case, Gnus will always prompt you for what method to use for posting. +Finally, if you want to always post using the same select method as +you're reading from (which might be convenient if you're reading lots of +groups from different private servers), you can set this variable to +@code{current}. + @node Mail and Post @section Mail and Post @@ -8975,17 +8989,17 @@ waiting for reply, and then reads all the replies. This is controlled by the @code{nntp-maximum-request} variable, and is 400 by default. If your network is buggy, you should set this to 1. -@item nntp-connection-timeout -@vindex nntp-connection-timeout -If you have lots of foreign @code{nntp} groups that you connect to -regularly, you're sure to have problems with @sc{nntp} servers not -responding properly, or being too loaded to reply within reasonable -time. This is can lead to awkward problems, which can be helped -somewhat by setting @code{nntp-connection-timeout}. This is an integer -that says how many seconds the @code{nntp} backend should wait for a -connection before giving up. If it is @code{nil}, which is the default, -no timeouts are done. - +@c @item nntp-connection-timeout +@c @vindex nntp-connection-timeout +@c If you have lots of foreign @code{nntp} groups that you connect to +@c regularly, you're sure to have problems with @sc{nntp} servers not +@c responding properly, or being too loaded to reply within reasonable +@c time. This is can lead to awkward problems, which can be helped +@c somewhat by setting @code{nntp-connection-timeout}. This is an integer +@c that says how many seconds the @code{nntp} backend should wait for a +@c connection before giving up. If it is @code{nil}, which is the default, +@c no timeouts are done. +@c @c @item nntp-command-timeout @c @vindex nntp-command-timeout @c @cindex PPP connections @@ -15696,7 +15710,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 Semi-gnus 6.1.2. +* Quassia Gnus:: Two times two is four, or Gnus 5.6.5. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16231,7 +16245,7 @@ Emphasized text can be properly fontisized: @node Quassia Gnus @subsubsection Quassia Gnus -New features in Semi-gnus 6.1.2: +New features in Gnus 5.6.5: @itemize @bullet @@ -17521,6 +17535,12 @@ A Date scoring type that will match if the article is less than a certain number of days old. @item +New spec: %~(tab 56) to put point on column 56 + +@item +Allow Gnus Agent scoring to use normal score files. + +@item Solve the halting problem. @c TODO -- 1.7.10.4