Sync up with Gnus 5.6.5.
authorshuhei-k <shuhei-k>
Sun, 26 Apr 1998 14:30:14 +0000 (14:30 +0000)
committershuhei-k <shuhei-k>
Sun, 26 Apr 1998 14:30:14 +0000 (14:30 +0000)
lisp/ChangeLog
lisp/gnus-agent.el
lisp/gnus-msg.el
lisp/gnus-sum.el
lisp/gnus.el
lisp/message.el
lisp/nnkiboze.el
texi/Makefile.in
texi/gnus.texi

index 97b7710..feb5648 100644 (file)
@@ -1,3 +1,56 @@
+Fri Apr 24 21:32:14 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.5 is released.
+
+Fri Apr 24 21:19:21 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-msg.el (gnus-post-method): Doc fix.
+       (gnus-post-method): Reversed semantics.
+
+1998-04-01  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * 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  <larsi@ifi.uio.no>
+
+       * nnmbox.el (nnmbox-request-create-group): New function.
+
+Sun Apr 12 07:55:16 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-agent.el (gnus-agent-save-group-info): Only do those that
+       are covered.
+
+Tue Apr  7 11:26:31 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nntp.el (nntp-authinfo-file): Doc fix.
+
+1998-03-31  Ken Raeburn  <raeburn@cygnus.com>
+
+       * 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  <larsi@ifi.uio.no>
+
+       * message.el (message-supersede): Check Sender.
+       (message-cancel-news): Fix Sender check.
+
+Sun Mar 29 11:54:33 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * 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  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.6.4 is released.
index d616263..f27161a 100644 (file)
@@ -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
index ad7f8dd..a1bb4c5 100644 (file)
 (require 'message)
 (require 'gnus-art)
 
-;; Added by Sudish Joseph <joseph@cis.ohio-state.edu>.
-(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.
index 44d0ac8..9262d65 100644 (file)
@@ -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))
index 3b317bd..27f2de1 100644 (file)
@@ -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
index 10d6028..010d852 100644 (file)
@@ -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))
index 77fabca..028d9e4 100644 (file)
       (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)))
index be10a0d..e3740e2 100644 (file)
@@ -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; \
index 9016ef6..1f3ca7c 100644 (file)
@@ -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