Importing gnus-5.6.37
authorshuhei-k <shuhei-k>
Mon, 17 Aug 1998 03:43:23 +0000 (03:43 +0000)
committershuhei-k <shuhei-k>
Mon, 17 Aug 1998 03:43:23 +0000 (03:43 +0000)
14 files changed:
lisp/ChangeLog
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-group.el
lisp/gnus-msg.el
lisp/gnus-score.el
lisp/gnus-sum.el
lisp/gnus.el
lisp/nndoc.el
lisp/nntp.el
make.bat
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index 5435e3d..18236cd 100644 (file)
@@ -1,3 +1,44 @@
+Sun Aug 16 18:59:41 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.37 is released.
+
+1998-08-16 14:52:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.el: Autoload gnus-summary-wide-reply.
+
+       * gnus-sum.el (gnus-get-newsgroup-headers): Return the value of
+       In-Reply-To. 
+
+       * gnus-msg.el (gnus-setup-message): Posting styles have to be
+       configured in message-mode-hook.
+
+       * nntp.el (nntp-connection-timeout): Restored.
+       (nntp-open-connection): Use it.
+
+1998-08-15 22:46:49  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-group.el (gnus-group-make-useful-group): Doc fix.
+
+       * gnus-art.el (gnus-article-push-button): Place point where you
+       click.
+
+1998-08-15  Mike McEwan  <mike@lotusland.demon.co.uk>
+
+       * gnus-agent.el (gnus-agent-save-group-info): Update "groups" file 
+       if `nntp-server-list-active-group' is nil.
+
+1998-08-15 00:35:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-score.el (gnus-summary-increase-score): Swap t and r.
+
+       * gnus-sum.el (gnus-remove-thread): Didn't work with sparse
+       threads. 
+
+1998-08-14  François Pinard  <pinard@iro.umontreal.ca>
+
+       * nndoc.el (nndoc-generate-mime-parts-head): Use original Subject,
+       Message-ID, and References in fully blown articles.
+
 Fri Aug 14 23:03:51 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.6.36 is released.
index a67b708..4fc231f 100644 (file)
@@ -532,16 +532,24 @@ the actual number of articles toggled is returned."
 (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")))
+          (file (if nntp-server-list-active-group
+                    (gnus-agent-lib-file "active")
+                  (gnus-agent-lib-file "groups"))))
       (gnus-make-directory (file-name-directory file))
       (nnheader-temp-write file
        (when (file-exists-p file)
          (insert-file-contents file))
        (goto-char (point-min))
-       (when (re-search-forward (concat "^" (regexp-quote group) " ") nil t)
-         (gnus-delete-line))
-       (insert group " " (number-to-string (cdr active)) " "
-               (number-to-string (car active)) "\n")))))
+       (if nntp-server-list-active-group
+           (progn
+             (when (re-search-forward
+                    (concat "^" (regexp-quote group) " ") nil t)
+               (gnus-delete-line))
+             (insert group " " (number-to-string (cdr active)) " "
+                     (number-to-string (car active)) "\n"))
+         (when (re-search-forward (concat (regexp-quote group) " ") nil t)
+           (gnus-delete-line))
+         (insert-buffer-substring nntp-server-buffer))))))
 
 (defun gnus-agent-group-path (group)
   "Translate GROUP into a path."
index 6ac7752..49c3228 100644 (file)
@@ -2807,6 +2807,7 @@ call it with the value of the `gnus-data' text property."
   (let* ((pos (posn-point (event-start event)))
          (data (get-text-property pos 'gnus-data))
         (fun (get-text-property pos 'gnus-callback)))
+    (goto-char pos)
     (when fun
       (funcall fun data))))
 
index 10a9bd9..029a2a0 100644 (file)
@@ -1980,6 +1980,7 @@ and NEW-NAME will be prompted for."
     (gnus-group-position-point)))
 
 (defun gnus-group-make-useful-group (group method)
+  "Create one of the groups described in `gnus-useful-groups'."
   (interactive
    (let ((entry (assoc (completing-read "Create group: " gnus-useful-groups
                                        nil t)
index 236a6a7..bf00d4a 100644 (file)
@@ -188,7 +188,7 @@ Thank you for your help in stamping out bugs.
            (copy-sequence message-header-setup-hook)))
        (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc)
        (add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc)
-       (add-hook 'message-setup-hook 'gnus-configure-posting-styles)
+       (add-hook 'message-mode-hook 'gnus-configure-posting-styles)
        (unwind-protect
           (progn
             ,@forms)
index 4bdbcb6..8cff072 100644 (file)
@@ -500,12 +500,12 @@ used as score."
            (?b "body" "" nil body-string)
            (?h "head" "" nil body-string)
            (?i "message-id" nil t string)
-           (?t "references" "message-id" nil string)
+           (?r "references" "message-id" nil string)
            (?x "xref" nil nil string)
            (?l "lines" nil nil number)
            (?d "date" nil nil date)
            (?f "followup" nil nil string)
-           (?r "thread" nil nil string)))
+           (?t "thread" nil nil string)))
         (char-to-type
          '((?s s "substring" string)
            (?e e "exact string" string)
index d75fa0c..d01d28b 100644 (file)
@@ -3337,9 +3337,8 @@ If LINE, insert the rebuilt thread starting on line LINE."
   "Remove the thread that has ID in it."
   (let (headers thread last-id)
     ;; First go up in this thread until we find the root.
-    (setq last-id (gnus-root-id id))
-    (setq headers (list (car (gnus-id-to-thread last-id))
-                       (caadr (gnus-id-to-thread last-id))))
+    (setq last-id (gnus-root-id id)
+         headers (message-flatten-list (gnus-id-to-thread last-id)))
     ;; We have now found the real root of this thread. It might have
     ;; been gathered into some loose thread, so we have to search
     ;; through the threads to find the thread we wanted.
@@ -4465,7 +4464,8 @@ The resulting hash table is returned, or nil if no Xrefs were found."
                        (setq ref2 (substring in-reply-to (match-beginning 0)
                                              (match-end 0)))
                        (when (> (length ref2) (length ref))
-                         (setq ref ref2))))
+                         (setq ref ref2)))
+                     ref)
                  (setq ref nil))))
            ;; Chars.
            (progn
index aca2c82..b95f441 100644 (file)
@@ -250,7 +250,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.6.36"
+(defconst gnus-version-number "5.6.37"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
@@ -1661,6 +1661,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
       gnus-post-news gnus-summary-reply gnus-summary-reply-with-original
       gnus-summary-mail-forward gnus-summary-mail-other-window
       gnus-summary-resend-message gnus-summary-resend-bounced-mail
+      gnus-summary-wide-reply
       gnus-bug)
      ("gnus-picon" :interactive t gnus-article-display-picons
       gnus-group-display-picons gnus-picons-article-display-x-face
index 79ad7ad..0da245a 100644 (file)
@@ -473,17 +473,15 @@ from the document.")
     (goto-char (point-min))
     (nndoc-generate-mime-parts-head article t)))
 
-(defun nndoc-generate-mime-parts-head (article &optional full-subject)
-  (let ((entry (cdr (assq article nndoc-dissection-alist))))
-    (let ((subject (concat "<" (nth 5 entry) ">"))
+(defun nndoc-generate-mime-parts-head (article &optional body-present)
+  (let ((entry (cdr (assq (if body-present 1 article) nndoc-dissection-alist))))
+    (let ((subject (if body-present
+                      nndoc-mime-subject
+                    (concat "<" (nth 5 entry) ">")))
          (message-id (nth 6 entry))
          (references (nth 7 entry)))
-      (insert nndoc-mime-header
-             "Subject: "
-             (cond ((not full-subject) subject)
-                   (nndoc-mime-subject (concat nndoc-mime-subject " " subject))
-                   (t subject))
-             "\n")
+      (insert nndoc-mime-header)
+      (and subject (insert "Subject: " subject "\n"))
       (and message-id (insert "Message-ID: " message-id "\n"))
       (and references (insert "References: " references "\n")))))
 
index 3528e33..a2b8009 100644 (file)
@@ -179,6 +179,10 @@ server there that you can connect to.  See also
 
 \f
 
+(defvoo nntp-connection-timeout nil
+  "*Number of seconds to wait before an nntp connection times out.
+If this variable is nil, which is the default, no timers are set.")
+
 ;;; Internal variables.
 
 (defvar nntp-record-commands nil
@@ -684,6 +688,10 @@ server there that you can connect to.  See also
        (ignore-errors
          (nntp-send-string process "QUIT")
          (unless (eq nntp-open-connection-function 'nntp-open-network-stream)
+           ;; Ok, this is evil, but when using telnet and stuff
+           ;; as the connection method, it's important that the
+           ;; QUIT command actually is sent out before we kill
+           ;; the process.  
            (sleep-for 1))))
       (when (buffer-name (process-buffer process))
        (kill-buffer (process-buffer process)))
@@ -830,6 +838,13 @@ password contained in '~/.nntp-authinfo'."
   "Open a connection to PORT on ADDRESS delivering output to BUFFER."
   (run-hooks 'nntp-prepare-server-hook)
   (let* ((pbuffer (nntp-make-process-buffer buffer))
+        (timer 
+         (and nntp-connection-timeout 
+              (nnheader-run-at-time
+               nntp-connection-timeout nil
+               `(lambda ()
+                  (when (buffer-name ,pbuffer)
+                    (kill-buffer ,pbuffer))))))
         (process
          (condition-case ()
              (let ((coding-system-for-read nntp-coding-system-for-read)
@@ -837,7 +852,10 @@ password contained in '~/.nntp-authinfo'."
                (funcall nntp-open-connection-function pbuffer))
            (error nil)
            (quit nil))))
-    (when process
+    (when timer 
+      (nnheader-cancel-timer timer))
+    (when (and (buffer-name pbuffer)
+              process)
       (process-kill-without-query process)
       (nntp-wait-for process "^.*\n" buffer nil t)
       (if (memq (process-status process) '(open run))
index d183af9..4a6b8a0 100755 (executable)
--- a/make.bat
+++ b/make.bat
@@ -1,57 +1,57 @@
-@echo off
-
-rem Written by David Charlap <shamino@writeme.com>
-
-rem There are two catches, however.  The emacs.bat batch file may not exist
-rem in all distributions.  It is part of the Voelker build of Emacs 19.34
-rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html).  If the user
-rem installs Gnus with some other build, he may have to replace calls to
-rem %1\emacs.bat with something else.
-rem 
-rem Also, the emacs.bat file that Voelker ships does not accept more than 9
-rem parameters, so the attempts to compile the .texi files will fail.  To
-rem fix that (at least on NT.  I don't know about Win95), the following
-rem change should be made to emacs.bat:
-rem 
-rem     %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
-rem 
-rem should become
-rem 
-rem     %emacs_dir%\bin\emacs.exe %*
-rem 
-rem which will allow the batch file to accept an unlimited number of
-rem parameters.
-
-if "%1" == "" goto usage
-
-cd lisp
-call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile
-if not "%2" == "copy" goto info
-copy *.el* %1\lisp
-
-:info
-cd ..\texi
-call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
-call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
-if not "%2" == "copy" goto done
-copy gnus %1\info
-copy gnus-?? %1\info
-copy message %1\info
-
-:etc
-cd ..\etc
-copy gnus-tut.txt %1\etc
-
-:done
-cd ..
-goto end
-
-:usage
-echo Usage: make ^<emacs-dir^> [copy]
-echo.
-echo where: ^<emacs-dir^> is the directory you installed emacs in
-echo                    eg. d:\emacs\19.34
-echo        copy indicates that the compiled files should be copied to your
-echo             emacs lisp, info, and etc directories
-
-:end
+@echo off\r
+\r
+rem Written by David Charlap <shamino@writeme.com>\r
+\r
+rem There are two catches, however.  The emacs.bat batch file may not exist\r
+rem in all distributions.  It is part of the Voelker build of Emacs 19.34\r
+rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html).  If the user\r
+rem installs Gnus with some other build, he may have to replace calls to\r
+rem %1\emacs.bat with something else.\r
+rem \r
+rem Also, the emacs.bat file that Voelker ships does not accept more than 9\r
+rem parameters, so the attempts to compile the .texi files will fail.  To\r
+rem fix that (at least on NT.  I don't know about Win95), the following\r
+rem change should be made to emacs.bat:\r
+rem \r
+rem     %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9\r
+rem \r
+rem should become\r
+rem \r
+rem     %emacs_dir%\bin\emacs.exe %*\r
+rem \r
+rem which will allow the batch file to accept an unlimited number of\r
+rem parameters.\r
+\r
+if "%1" == "" goto usage\r
+\r
+cd lisp\r
+call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile\r
+if not "%2" == "copy" goto info\r
+copy *.el* %1\lisp\r
+\r
+:info\r
+cd ..\texi\r
+call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer\r
+call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer\r
+if not "%2" == "copy" goto done\r
+copy gnus %1\info\r
+copy gnus-?? %1\info\r
+copy message %1\info\r
+\r
+:etc\r
+cd ..\etc\r
+copy gnus-tut.txt %1\etc\r
+\r
+:done\r
+cd ..\r
+goto end\r
+\r
+:usage\r
+echo Usage: make ^<emacs-dir^> [copy]\r
+echo.\r
+echo where: ^<emacs-dir^> is the directory you installed emacs in\r
+echo                    eg. d:\emacs\19.34\r
+echo        copy indicates that the compiled files should be copied to your\r
+echo             emacs lisp, info, and etc directories\r
+\r
+:end\r
index 99e2d27..1310f27 100644 (file)
@@ -1,3 +1,12 @@
+1998-08-16 14:53:45  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (NNTP): Reinstated.
+       (Asynchronous Fetching): No header prefetch.
+
+1998-08-15 13:01:41  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Summary Score Commands): Change.
+
 1998-08-14 01:31:36  Simon Josefsson  <jas@pdc.kth.se>
 
        * gnus.texi (Posting Styles): New 'body style.
index ffcd6f6..1cafc50 100644 (file)
@@ -6,7 +6,7 @@
 @synindex vr cp
 @synindex pg cp
 @c @direntry
-@c * Gnus: (gnus).         The news reader Gnus.
+@c * Gnus: (gnus).         The newsreader Gnus.
 @c @end direntry
 @iftex
 @finalout
@@ -1901,6 +1901,13 @@ Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
 this command without a prefix, Gnus will guess at the file type.
 @xref{Document Groups}.
 
+@item G u
+@kindex G u (Group)
+@vindex gnus-useful-groups
+@findex gnus-group-make-useful-group
+Create one of the groups mentioned in @code{gnus-useful-groups}
+(@code{gnus-group-make-useful-group}).
+
 @item G w
 @kindex G w (Group)
 @findex gnus-group-make-web-group
@@ -5238,9 +5245,9 @@ Remove articles when exiting the group.
 
 The default value is @code{(read exit)}.
 
-@vindex gnus-use-header-prefetch
-If @code{gnus-use-header-prefetch} is non-@code{nil}, prefetch articles
-from the next group.
+@c @vindex gnus-use-header-prefetch
+@c If @code{gnus-use-header-prefetch} is non-@code{nil}, prefetch articles
+@c from the next group.
 
 
 @node Article Caching
@@ -9061,17 +9068,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.
 
-@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 
+@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-command-timeout
 @c @vindex nntp-command-timeout
 @c @cindex PPP connections
@@ -12038,8 +12045,8 @@ Score on the subject line.
 @item x
 Score on the Xref line---i.e., the cross-posting line.
 
-@item t
-Score on thread---the References line.
+@item r
+Score on the References line.
 
 @item d
 Score on the date.
@@ -12058,6 +12065,10 @@ Score on the body.
 
 @item h
 Score on the head.
+
+@item t
+Score on thead.
+
 @end table
 
 @item
index 1fb2dfe..4888e42 100644 (file)
@@ -285,6 +285,13 @@ subject.
 Subject of article with @samp{Fwd:} prepended to it.
 @end table
 
+@item message-wash-forwarded-subjects
+@vindex message-wash-forwarded-subjects
+If this variable is @code{t}, the subjects of forwarded messages have
+the evidence of previous forwards (such as @samp{Fwd:}, @samp{Re:}, 
+@samp{(fwd)}) removed before the new subject is
+constructed.  The default value is @code{nil}.
+
 @end table