This commit was generated by cvs2svn to compensate for changes in r263,
authorshuhei-k <shuhei-k>
Sun, 8 Mar 1998 17:51:26 +0000 (17:51 +0000)
committershuhei-k <shuhei-k>
Sun, 8 Mar 1998 17:51:26 +0000 (17:51 +0000)
which included commits to RCS files with non-trunk default branches.

lisp/gnus-group.el
lisp/gnus-int.el
lisp/gnus-picon.el
lisp/gnus-win.el
lisp/nndoc.el
lisp/nnml.el
lisp/nntp.el
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index d85c820..49a6cd2 100644 (file)
@@ -776,7 +776,7 @@ The following commands are available:
 
 (defun gnus-update-group-mark-positions ()
   (save-excursion
-    (let ((gnus-process-mark 128)
+    (let ((gnus-process-mark ?\200)
          (gnus-group-marked '("dummy.group"))
          (gnus-active-hashtb (make-vector 10 0))
          (topic ""))
index 58f93a7..78a943a 100644 (file)
@@ -134,17 +134,24 @@ If it is down, start it up (again)."
     (error "Attempted use of a nil select method"))
   (when (stringp method)
     (setq method (gnus-server-to-method method)))
-  (let ((func (intern (format "%s-%s" (if gnus-agent
-                                         (gnus-agent-get-function method)
-                                       (car method))
-                             function))))
-    ;; If the functions isn't bound, we require the backend in
-    ;; question.
+  ;; Check cache of constructed names.
+  (let* ((method-sym (if gnus-agent
+                        (gnus-agent-get-function method)
+                      (car method)))
+        (method-fns (get method-sym 'gnus-method-functions))
+        (func (let ((method-fnlist-elt (assq function method-fns)))
+                (unless method-fnlist-elt
+                  (setq method-fnlist-elt
+                        (cons function
+                              (intern (format "%s-%s" method-sym function))))
+                  (put method-sym 'gnus-method-functions
+                       (cons method-fnlist-elt method-fns)))
+                (cdr method-fnlist-elt))))
+    ;; Maybe complain if there is no function.
     (unless (fboundp func)
       (require (car method))
       (when (and (not (fboundp func))
                 (not noerror))
-       ;; This backend doesn't implement this function.
        (error "No such function: %s" func)))
     func))
 
index 7f04650..02a5ad0 100644 (file)
@@ -184,17 +184,38 @@ arguments necessary for the job.")
 
 (defun gnus-get-buffer-name (variable)
   "Returns the buffer name associated with the contents of a variable."
-  (cond ((symbolp variable) (let ((newvar (cdr (assq variable
-                                                    gnus-window-to-buffer))))
-                             (cond ((symbolp newvar)
-                                    (symbol-value newvar))
-                                   ((stringp newvar) newvar))))
-        ((stringp variable) variable)))
+  (buffer-name (get-buffer (gnus-window-to-buffer-helper variable))))
+
+(defun gnus-picons-buffer-name ()
+  (cond ((or (stringp gnus-picons-display-where)
+            (bufferp gnus-picons-display-where))
+        gnus-picons-display-where)
+       ((eq gnus-picons-display-where 'picons)
+        (if gnus-single-article-buffer
+            "*Picons*"
+          (concat "*Picons " gnus-newsgroup-name "*")))
+       (t
+        (gnus-get-buffer-name gnus-picons-display-where))))
+
+(defun gnus-picons-kill-buffer ()
+  (let ((buf (get-buffer (gnus-picons-buffer-name))))
+    (if (buffer-live-p buf)
+       (kill-buffer buf))))
+
+(defun gnus-picons-setup-buffer ()
+  (let ((name (gnus-picons-buffer-name)))
+    (save-excursion
+      (if (get-buffer name)
+         (set-buffer name)
+       (set-buffer (get-buffer-create name))
+       (buffer-disable-undo)
+       (setq buffer-read-only t)
+       (gnus-add-current-to-buffer-list)
+       (add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
+      (current-buffer))))
 
 (defun gnus-picons-set-buffer ()
-  (set-buffer
-   (get-buffer-create (gnus-get-buffer-name gnus-picons-display-where)))
-  (gnus-add-current-to-buffer-list)
+  (set-buffer (gnus-picons-setup-buffer))
   (goto-char (point-min))
   (if (and (eq gnus-picons-display-where 'article)
           gnus-picons-display-article-move-p)
@@ -233,7 +254,8 @@ arguments necessary for the job.")
     (gnus-picons-set-buffer)
     (gnus-picons-make-annotation (make-glyph gnus-picons-x-face-file-name)
                                 nil 'text)
-    (delete-file gnus-picons-x-face-file-name)))
+    (when (file-exists-p gnus-picons-x-face-file-name)
+      (delete-file gnus-picons-x-face-file-name))))
 
 (defun gnus-picons-display-x-face (beg end)
   "Function to display the x-face header in the picons window.
@@ -242,11 +264,16 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
   (if (featurep 'xface)
       ;; Use builtin support
       (save-excursion
-       (gnus-picons-set-buffer)
-       (gnus-picons-make-annotation
-        (vector 'xface
-                :data (concat "X-Face: " (buffer-substring beg end)))
-        nil 'text))
+       ;; Don't remove this binding, it is really needed: when
+       ;; `gnus-picons-set-buffer' changes buffer (like when it is
+       ;; set to display picons outside of the article buffer), BEG
+       ;; and END still refer the buffer current now !
+       (let ((buf (current-buffer)))
+         (gnus-picons-set-buffer)
+         (gnus-picons-make-annotation
+          (vector 'xface
+                  :data (concat "X-Face: " (buffer-substring beg end buf)))
+          nil 'text nil nil nil t)))
     ;; convert the x-face header to a .xbm file
     (let* ((process-connection-type nil)
           (process (start-process-shell-command "gnus-x-face" nil 
index e6a2037..6c29c5b 100644 (file)
@@ -182,7 +182,7 @@ See the Gnus manual for an explanation of the syntax used.")
     (mail . gnus-message-buffer)
     (post-news . gnus-message-buffer)
     (faq . gnus-faq-buffer)
-    (picons . "*Picons*")
+    (picons . gnus-picons-buffer-name)
     (tree . gnus-tree-buffer)
     (score-trace . "*Score Trace*")
     (info . gnus-info-buffer)
@@ -267,6 +267,13 @@ See the Gnus manual for an explanation of the syntax used.")
 
 (defvar gnus-frame-list nil)
 
+(defun gnus-window-to-buffer-helper (obj)
+  (if (symbolp obj)
+      (if (boundp obj)
+         (symbol-value obj)
+       (funcall obj))
+    obj))
+
 (defun gnus-configure-frame (split &optional window)
   "Split WINDOW according to SPLIT."
   (unless window
@@ -300,15 +307,11 @@ See the Gnus manual for an explanation of the syntax used.")
      ;; This is a buffer to be selected.
      ((not (memq type '(frame horizontal vertical)))
       (let ((buffer (cond ((stringp type) type)
-                         (t (cdr (assq type gnus-window-to-buffer)))))
-           buf)
+                         (t (cdr (assq type gnus-window-to-buffer))))))
        (unless buffer
          (error "Illegal buffer type: %s" type))
-       (unless (setq buf (get-buffer (if (symbolp buffer)
-                                         (symbol-value buffer) buffer)))
-         (setq buf (get-buffer-create (if (symbolp buffer)
-                                          (symbol-value buffer) buffer))))
-       (switch-to-buffer buf)
+       (switch-to-buffer (get-buffer-create
+                          (gnus-window-to-buffer-helper buffer)))
        ;; We return the window if it has the `point' spec.
        (and (memq 'point split) window)))
      ;; This is a frame split.
@@ -439,12 +442,7 @@ See the Gnus manual for an explanation of the syntax used.")
   (let ((buffers
         (mapcar
          (lambda (elem)
-           (if (symbolp (cdr elem))
-               (when (and (boundp (cdr elem))
-                          (symbol-value (cdr elem)))
-                 (get-buffer (symbol-value (cdr elem))))
-             (when (cdr elem)
-               (get-buffer (cdr elem)))))
+           (get-buffer (gnus-window-to-buffer-helper (cdr elem))))
          gnus-window-to-buffer)))
     (mapcar
      (lambda (frame)
@@ -493,12 +491,9 @@ should have point."
                           (t (cdr (assq type gnus-window-to-buffer)))))
        (unless buffer
          (error "Illegal buffer type: %s" type))
-       (when (setq buf (get-buffer (if (symbolp buffer)
-                                       (symbol-value buffer)
-                                     buffer)))
-         (setq win (get-buffer-window buf t)))
-       (if win
-           (when (memq 'point split)
+       (if (and (setq buf (get-buffer (gnus-window-to-buffer-helper buffer)))
+                (setq win (get-buffer-window buf t)))
+           (if (memq 'point split)
              (setq all-visible win))
          (setq all-visible nil)))
        (t
@@ -517,10 +512,7 @@ should have point."
     (save-excursion
       ;; Remove windows on all known Gnus buffers.
       (while buffers
-       (setq buf (cdar buffers))
-       (when (symbolp buf)
-         (setq buf (and (boundp buf) (symbol-value buf))))
-       (and buf
+       (and (setq buf (gnus-window-to-buffer-helper (cdar buffers)))
             (get-buffer-window buf)
             (progn
               (push buf bufs)
index 067b2a8..9c4b235 100644 (file)
@@ -87,8 +87,8 @@ from the document.")
      (file-end . "")
      (subtype digest guess))
     (standard-digest
-     (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+"))
-     (article-begin . ,(concat "^\n" (make-string 30 ?-) "\n\n+"))
+     (first-article . ,(concat "^" (make-string 70 ?-) "\n *\n+"))
+     (article-begin . ,(concat "^\n" (make-string 30 ?-) "\n *\n+"))
      (prepare-body-function . nndoc-unquote-dashes)
      (body-end-function . nndoc-digest-body-end)
      (head-end . "^ *$")
index 68dcc5f..c037c73 100644 (file)
@@ -480,8 +480,8 @@ all.  This may very well take some time.")
       ;; Just to make sure nothing went wrong when reading over NFS --
       ;; check once more.
       (when (file-exists-p
-            (setq file (concat nnml-current-directory "/"
-                               (number-to-string article))))
+            (setq file (expand-file-name (number-to-string article)
+                                         nnml-current-directory)))
        (nnml-update-file-alist t)
        file))))
 
index 560dae1..8394547 100644 (file)
@@ -166,7 +166,7 @@ server there that you can connect to.  See also
 (defvoo nntp-coding-system-for-write 'binary
   "*Coding system to write to NNTP.")
 
-(defcustom nntp-authinforc-file "~/.authinforc"
+(defcustom nntp-authinfo-file "~/.authinfo"
   "Docstring."
   :type
   '(choice file
@@ -187,6 +187,9 @@ server there that you can connect to.  See also
 
 ;;; Internal variables.
 
+(defvar nntp-record-commands nil
+  "*If non-nil, nntp will record all commands in the \"*nntp-log*\" buffer.")
+
 (defvar nntp-have-messaged nil)
 
 (defvar nntp-process-wait-for nil)
@@ -220,10 +223,22 @@ server there that you can connect to.  See also
 
 (defsubst nntp-send-string (process string)
   "Send STRING to PROCESS."
+  ;; We need to store the time to provide timeouts, and
+  ;; to store the command so the we can replay the command
+  ;; if the server gives us an AUTHINFO challenge.
   (setq nntp-last-command-time (current-time)
        nntp-last-command string)
+  (when nntp-record-commands
+    (nntp-record-command string))
   (process-send-string process (concat string nntp-end-of-line)))
 
+(defun nntp-record-command (string)
+  "Record the command STRING."
+  (save-excursion
+    (set-buffer (get-buffer-create "*nntp-log*"))
+    (insert (format-time-string "%Y%m%dT%H%M%S" (current-time))
+           " " nntp-address " " string "\n")))
+
 (defsubst nntp-wait-for (process wait-for buffer &optional decode discard)
   "Wait for WAIT-FOR to arrive from PROCESS."
   (save-excursion
@@ -236,10 +251,14 @@ server there that you can connect to.  See also
       (nntp-accept-process-output process)
       (goto-char (point-min)))
     (prog1
-       (if (looking-at "[45]")
-           (progn
-             (nntp-snarf-error-message)
-             nil)
+       (cond
+        ((looking-at "[45]")
+         (progn
+           (nntp-snarf-error-message)
+           nil))
+        ((memq (process-status process) '(open run))
+         (nnheader-report 'nntp "Server closed connection"))
+        (t
          (goto-char (point-max))
          (let ((limit (point-min)))
            (while (not (re-search-backward wait-for limit t))
@@ -258,7 +277,7 @@ server there that you can connect to.  See also
              (when nntp-have-messaged
                (setq nntp-have-messaged nil)
                (message ""))
-             t)))
+             t))))
       (unless discard
        (erase-buffer)))))
 
@@ -658,7 +677,6 @@ server there that you can connect to.  See also
   (let (process)
     (while (setq process (car (pop nntp-connection-alist)))
       (when (memq (process-status process) '(open run))
-       (set-process-sentinel process nil)
        (ignore-errors
          (nntp-send-string process "QUIT")
          (unless (eq nntp-open-connection-function 'nntp-open-network-stream)
@@ -671,7 +689,6 @@ server there that you can connect to.  See also
   (let (process)
     (while (setq process (pop nntp-connection-list))
       (when (memq (process-status process) '(open run))
-       (set-process-sentinel process nil)
        (ignore-errors
          (nntp-send-string process "QUIT")
          (unless (eq nntp-open-connection-function 'nntp-open-network-stream)
@@ -729,10 +746,10 @@ reading."
 (defun nntp-send-authinfo ()
   "Send the AUTHINFO to the nntp server.
 This function is supposed to be called from `nntp-server-opened-hook'.
-It will look in the \"~/.authinforc\" file for matching entries.  If
+It will look in the \"~/.authinfo\" file for matching entries.  If
 nothing suitable is found there, it will prompt for a user name
 and a password."
-  (let* ((list (gnus-parse-netrc nntp-authinforc-file))
+  (let* ((list (gnus-parse-netrc nntp-authinfo-file))
         (alist (gnus-netrc-machine list nntp-address))
         (user (gnus-netrc-get alist "login"))
         (passwd (gnus-netrc-get alist "password")))
index a3b0c50..a492ff1 100644 (file)
@@ -1,3 +1,28 @@
+Sat Mar  7 17:09:49 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi: Took direntries out again, since makeinfo doesn't
+       understand them.
+
+Sat Mar  7 16:14:10 1998  Dan Christensen  <jdc@chow.mat.jhu.edu>
+
+       * gnus.texi (Group Parameters): Mention add-to-list.
+
+Sat Feb 28 14:21:12 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (NNTP): Addition.
+
+1998-03-01  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
+
+       * gnus.texi (Easy Picons): Removed references to
+       `gnus-group-display-picons'.
+       (Hard Picons): Ditto.
+
+1998-03-01  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
+
+       * gnus.texi (Easy Picons): Removed references to
+       `gnus-group-display-picons'.
+       (Hard Picons): Ditto.
+
 Mon Feb 23 18:05:09 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus.texi: Direntry not handled by Emacs 19.34.
index 3d28d62..e3b9575 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Quassia Gnus 0.34 Manual
+@settitle Quassia Gnus 0.35 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 Quassia Gnus 0.34 Manual
+@title Quassia Gnus 0.35 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -352,7 +352,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Quassia Gnus 0.34.
+This manual corresponds to Quassia Gnus 0.35.
 
 @end ifinfo
 
@@ -1981,6 +1981,12 @@ doing a @kbd{a} in that group.  It is totally ignored when doing a
 followup---except that if it is present in a news group, you'll get mail
 group semantics when doing @kbd{f}.
 
+If you do an @kbd{a} command in a mail group and you have neither a
+@code{to-list} group parameter nor a @code{to-address} group paramater,
+then a @code{to-list} group parameter will be added automatically upon
+sending the message if @code{gnus-add-to-list} is set to @code{t}.
+@vindex gnus-add-to-list
+
 If you do an @kbd{a} command in a mail group and you don't have a
 @code{to-list} group parameter, one will be added automatically upon
 sending the message.
@@ -2096,15 +2102,15 @@ group.  @code{dummy-variable} will be set to the result of the
 
 @end table
 
-Use the @kbd{G p} command to edit group parameters of a group.
-
-@pxref{Topic Parameters}.
+Use the @kbd{G p} command to edit group parameters of a group.  You
+might also be interested in reading about topic parameters (@pxref{Topic
+Parameters}).
 
 Here's an example group parameter list:
 
 @example
 ((to-address . "ding@@gnus.org")
- (auto-expiry . t))
+ (auto-expire . t))
 @end example
 
 
@@ -8860,13 +8866,13 @@ present in this hook.
 @item nntp-authinfo-function 
 @vindex nntp-authinfo-function 
 @findex nntp-send-authinfo
-@vindex nntp-authinforc-file
+@vindex nntp-authinfo-file
 This function will be used to send @samp{AUTHINFO} to the @sc{nntp}
 server.  The default function is @code{nntp-send-authinfo}, which looks
-through your @file{~/.authinforc} (or whatever you've set the
-@code{nntp-authinforc-file} variable to) for applicable entries.  If
+through your @file{~/.authinfo} (or whatever you've set the
+@code{nntp-authinfo-file} variable to) for applicable entries.  If
 none are found, it will prompt you for a login name and a password.  The
-format of the @file{~/.authinforc} file is the same as the @code{ftp}
+format of the @file{~/.authinfo} file is the same as the @code{ftp}
 @file{~/.netrc} file, which is defined in the @code{ftp} manual page,
 but here are the salient facts:
 
@@ -8894,7 +8900,7 @@ In this example, both login name and password have been supplied for the
 former server, while the latter has only the login name listed, and the
 user will be prompted for the password.
 
-Remember to not leave the @file{~/.authinforc} file world-readable.
+Remember to not leave the @file{~/.authinfo} file world-readable.
 
 @item nntp-server-action-alist 
 @vindex nntp-server-action-alist 
@@ -9094,6 +9100,13 @@ A hook run before attempting to connect to an @sc{nntp} server.
 If this variable is non-@code{nil}, some noise will be made when a
 server closes connection.
 
+@item nntp-record-commands
+@vindex nntp-record-commands
+If non-@code{nil}, @code{nntp} will log all commands it sends to the
+@sc{nntp} server (along with a timestep) in the @samp{*nntp-log*}
+buffer.  This is useful if you are debugging a Gnus/@sc{nntp} connection
+that doesn't seem to work.
+
 @end table
 
 
@@ -14554,7 +14567,6 @@ To enable displaying picons, simply put the following line in your
 @lisp
 (setq gnus-use-picons t)
 (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t)
-(add-hook 'gnus-summary-prepare-hook 'gnus-group-display-picons t)
 (add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face)
 @end lisp
 
@@ -14634,13 +14646,6 @@ Looks up and displays the picons for the author and the author's domain
 in the @code{gnus-picons-display-where} buffer.  Should be added to the
 @code{gnus-article-display-hook}.
 
-@item gnus-group-display-picons
-@findex gnus-article-display-picons
-Displays picons representing the current group.  This function should
-be added to the @code{gnus-summary-prepare-hook} or to the
-@code{gnus-article-display-hook} if @code{gnus-picons-display-where}
-is set to @code{article}.
-
 @item gnus-picons-article-display-x-face
 @findex gnus-article-display-picons
 Decodes and displays the X-Face header if present.  This function
@@ -18866,7 +18871,7 @@ second is a more complex one:
 ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55))
                 ((tick (15 . 19)) (replied 3 6 (19 . 3)))
                 (nnml "")
-                (auto-expire (to-address "ding@@gnus.org")))
+                ((auto-expire . t) (to-address "ding@@gnus.org")))
 @end example
 
 The first element is the @dfn{group name}---as Gnus knows the group,
index f9142e4..be4b42f 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 0.34 Manual
+@settitle Message 0.35 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 0.34 Manual
+@title Message 0.35 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 0.34.  Message is distributed with
+This manual corresponds to Message 0.35.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has.