*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 02:35:57 +0000 (02:35 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 02:35:57 +0000 (02:35 +0000)
lisp/ChangeLog
lisp/gnus-mh.el
lisp/gnus-msg.el
lisp/gnus-uu.el
lisp/gnus.el
lisp/nnfolder.el
texi/Makefile
texi/gnus.texi

index f20803b..cd07b3d 100644 (file)
@@ -1,8 +1,35 @@
+Wed Jun 28 16:24:38 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * nnfolder.el (nnfolder-directory): file-name-as-directory thing. 
+
+       * gnus-mh.el (gnus-mail-reply-using-mhe): Set gnus-mail-buffer to
+       the right buffer.
+
+       * gnus.el (gnus-article-mode-map): Copy all summary keystrokes. 
+       (gnus-summary-insert-pseudos): Don't view if you ask to save 
+       (gnus-summary-edit-article): Enable undo.
+
+Sun Jun 25 11:47:24 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * gnus.el (gnus-summary-next-group): Fixed possible bug on `n' on
+       last group. 
+       (gnus-remove-some-windows): Didn't delete all Gnus windows.
+       (gnus-group-unsubscribe-current-group): Use universal-argument as
+       expected. 
+       (gnus-summary-beginning-of-article): Didn't configure windows. 
+       (gnus-compress-newsrc-alist): Be more lenient in compressing.
+       (gnus-newsrc-parse-options): "-" was counted as a non-word
+       character for some reason.
+       (gnus-articles-to-read): Accept white space.
+       (gnus-truncate-string): Did the opposite of what it should. 
+
 Sat Jun 24 14:11:58 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
 
+       * gnus.el: 0.88 is released.
+
        * gnus.el (gnus-bug): Use gnus-mail-send-and-exit. 
        (gnus-summary-line-format-alist): Int instead of char with %e.
-       (gnus-format-max-width): Mule defefinition.
+       (gnus-format-max-width): Mule refefinition.
 
 Sat Jun 24 13:14:40 1995  Lars INGEBRIGTSEN UiO  <lingebri@sunsci4.cern.ch>
 
index 04342bf..d0262f1 100644 (file)
@@ -105,19 +105,20 @@ The command \\[mh-yank-cur-msg] yank the original message into current buffer."
        (setq to (or reply-to from))
        (setq to-userid (mail-strip-quoted-names orig-to))
        (if (or (string-match "," orig-to)
-               (not (string-match (substring to-userid 0 (string-match "@" to-userid))
+               (not (string-match (substring to-userid 0 
+                                             (string-match "@" to-userid))
                                   gnus-user-login-name)))
-           (setq cc (concat (if cc (concat cc ", ") "") orig-to))
-         )
+           (setq cc (concat (if cc (concat cc ", ") "") orig-to)))
         ;; mh-yank-cur-msg needs to have mh-show-buffer set in the 
         ;; *Article* buffer
-       (setq mh-show-buffer buffer)
-       )) ;; save excursion/restriction
+       (setq mh-show-buffer buffer)))
 
     (mh-find-path)
-    (mh-send-sub to (or cc "") (or subject "(None)") config) ;; Erik Selberg 1/23/94
+    (mh-send-sub to (or cc "") 
+                (or subject "(None)") config) ;; Erik Selberg 1/23/94
 
     (let ((draft (current-buffer))
+         (gnus-mail-buffer (current-buffer))
          mail-buf)
       (if (not yank)
          (gnus-configure-windows 'reply)
@@ -149,8 +150,7 @@ The command \\[mh-yank-cur-msg] yank the original message into current buffer."
   (if yank
       (let ((last (point)))
        (mh-yank-cur-msg)
-       (goto-char last)
-       )))
+       (goto-char last)))) 
 
 ;; gnus-mail-forward-using-mhe is contributed by Jun-ichiro Itoh
 ;; <itojun@ingram.mt.cs.keio.ac.jp>
@@ -167,9 +167,10 @@ The command \\[mh-yank-cur-msg] yank the original message into current buffer."
     (mh-find-path)
     (mh-send-sub to (or cc "") (or subject "(None)") config) ;; Erik Selberg 1/23/94
     (let ((draft (current-buffer))
+         (gnus-mail-buffer (current-buffer))
          mail-buf)
       (gnus-configure-windows 'reply-yank)
-      (setq mail-buf (cdr (assq 'mail gnus-window-to-buffer)))
+      (setq mail-buf (eval (cdr (assq 'mail gnus-window-to-buffer))))
       (pop-to-buffer mail-buf) ;; always in the display, so won't have window probs
       (switch-to-buffer draft)
       (kill-buffer mail-buf) ;; mh-e don't use it!
index 37c1574..451ffb2 100644 (file)
@@ -294,7 +294,7 @@ If prefix argument YANK is non-nil, original article is yanked automatically."
             (or (not (eq gnus-use-followup-to t))
                 (not (gnus-y-or-n-p 
                       "Do you want to ignore `Followup-To: poster'? "))))
-       ;; Mail to the poster.  Gnus is now RFC1036 compliant.
+       ;; Mail to the poster. 
        (gnus-summary-reply yank)
       (gnus-post-news nil gnus-newsgroup-name
                      headers gnus-article-buffer 
@@ -1596,6 +1596,79 @@ If YANK is non-nil, include the original article."
   (interactive)
   (gnus-article-mail 'yank))
 
+(defun gnus-bug ()
+  "Send a bug report to the Gnus maintainers."
+  (interactive)
+  (let ((winconf (current-window-configuration)))
+    (delete-other-windows)
+    (switch-to-buffer "*Gnus Bug Help*")
+    (erase-buffer)
+    (insert gnus-bug-message)
+    (goto-char (point-min))
+    (pop-to-buffer "*Gnus Bug*")
+    (erase-buffer)
+    (mail-mode)
+    (mail-setup gnus-maintainer nil nil nil nil nil)
+    (make-local-variable 'gnus-prev-winconf)
+    (setq gnus-prev-winconf winconf)
+    (use-local-map (copy-keymap mail-mode-map))
+    (local-set-key "\C-c\C-c" 'gnus-mail-send-and-exit)
+    (goto-char (point-min))
+    (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
+    (forward-line 1)
+    (insert (format "%s\n%s\n\n\n\n\n" (gnus-version) (emacs-version)))
+    (let ((b (point)))
+      (gnus-debug)
+      (goto-char (- b 3)))
+    (message "")))
+
+(defun gnus-debug ()
+  "Attemps to go through the Gnus source file and report what variables have been changed.
+The source file has to be in the Emacs load path."
+  (interactive)
+  (let ((files '("gnus.el" "gnus-msg.el" "gnus-score.el"))
+       file dirs expr olist)
+    (save-excursion
+      (set-buffer (get-buffer-create " *gnus bug info*"))
+      (buffer-disable-undo (current-buffer))
+      (message "Please wait while we snoop your variables...")
+      (sit-for 0)
+      (while files
+       (erase-buffer)
+       (setq dirs load-path)
+       (while dirs
+         (if (or (not (car dirs))
+                 (not (stringp (car dirs)))
+                 (not (file-exists-p 
+                       (setq file (concat (file-name-as-directory 
+                                           (car dirs)) (car files))))))
+             (setq dirs (cdr dirs))
+           (setq dirs nil)
+           (insert-file-contents file)
+           (goto-char (point-min))
+           (or (re-search-forward "^;;* Internal variables" nil t)
+               (error "Malformed sources in file %s" file))
+           (narrow-to-region (point-min) (point))
+           (goto-char (point-min))
+           (while (setq expr (condition-case () 
+                                 (read (current-buffer)) (error nil)))
+             (and (eq (car expr) 'defvar)
+                  (stringp (nth 3 expr))
+                  (or (not (boundp (nth 1 expr)))
+                      (not (equal (eval (nth 2 expr))
+                                  (symbol-value (nth 1 expr)))))
+                  (setq olist (cons (nth 1 expr) olist))))))
+       (setq files (cdr files)))
+      (kill-buffer (current-buffer)))
+    (insert "------------------- Environment follows -------------------\n\n")
+    (while olist
+      (if (boundp (car olist))
+         (insert "(setq " (symbol-name (car olist)) " '" 
+                 (prin1-to-string (symbol-value (car olist))) ")\n")
+       (insert ";; (makeunbound '" (symbol-name (car olist)) ")\n"))
+      (setq olist (cdr olist)))
+    (insert "\n\n")))
+
 (provide 'gnus-msg)
 
 ;;; gnus-msg.el ends here
index 6b54f7f..a86ced6 100644 (file)
@@ -592,7 +592,7 @@ The headers will be included in the sequence they are matched.")
     (setq files (gnus-uu-unpack-files files))
     (gnus-uu-add-file (mapcar (lambda (file) (cdr (assq 'name file))) files))
     (setq files (nreverse (gnus-uu-get-actions files)))
-    (or not-insert (gnus-summary-insert-pseudos files))))
+    (or not-insert (gnus-summary-insert-pseudos files save))))
 
 ;; Return a list of files in dir.
 (defun gnus-uu-scan-directory (dir)
index 65e5d2b..3763bdd 100644 (file)
@@ -1291,7 +1291,7 @@ variable (string, integer, character, etc).")
 (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls & Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "(ding) Gnus v0.88"
+(defconst gnus-version "(ding) Gnus v0.89"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -1661,6 +1661,7 @@ Thank you for your help in stamping out bugs.
   (autoload 'gnus-mail-other-window-using-mail "gnus-msg")
   (autoload 'gnus-article-mail-with-original "gnus-msg")
   (autoload 'gnus-article-mail "gnus-msg")
+  (autoload 'gnus-bug "gnus-msg")
 
   ;; gnus-vm
   (autoload 'gnus-summary-save-in-vm "gnus-vm" nil t)
@@ -1711,7 +1712,7 @@ Thank you for your help in stamping out bugs.
 ;;   character.
 
 (defun gnus-truncate-string (str width)
-  (substring str width))
+  (substring str width))
 
 (defsubst gnus-simplify-subject-re (subject)
   "Remove \"Re:\" from subject lines."
@@ -2471,22 +2472,31 @@ If optional argument RE-ONLY is non-nil, strip `Re:' only."
   (let ((buffers gnus-window-to-buffer)
        (first t)
        buf)
-    (while buffers
-      (setq buf (cdr (car buffers)))
-      (if (symbolp buf)
-         (setq buf (and (boundp buf) (symbol-value buf))))
-      (and buf 
-          (get-buffer-window buf)
-          (progn
-            (set-buffer buf)
-            (if first
-                (progn
-                  (switch-to-buffer nntp-server-buffer)
-                  (setq first nil))
-              (delete-window (get-buffer-window buf)))))
-      (setq buffers (cdr buffers)))
-    (set-buffer nntp-server-buffer)))
-
+    (save-excursion
+      ;; Remove windows on all known Gnus buffers.
+      (while buffers
+       (setq buf (cdr (car buffers)))
+       (if (symbolp buf)
+           (setq buf (and (boundp buf) (symbol-value buf))))
+       (and buf 
+            (get-buffer-window buf)
+            (progn
+              (if first
+                  (progn
+                    (pop-to-buffer buf)
+                    (switch-to-buffer nntp-server-buffer)
+                    (setq first nil))
+                (delete-window (get-buffer-window buf)))))
+       (setq buffers (cdr buffers)))
+      ;; Remove windows on *all* summary buffers.
+      (let ((buffers (buffer-list)))
+       (while buffers
+         (if (and (string-match 
+                   "^\\*Summary" (or (buffer-name (car buffers)) ""))
+                  (get-buffer-window (car buffers)))
+             (delete-window (get-buffer-window (car buffers))))
+         (setq buffers (cdr buffers)))))))
+                         
 (defun gnus-version ()
   "Version numbers of this version of Gnus."
   (interactive)
@@ -2513,79 +2523,6 @@ If optional argument RE-ONLY is non-nil, strip `Re:' only."
     (gnus-configure-windows 'info)
     (Info-goto-node (car (cdr (assq mode gnus-info-nodes))))))
 
-(defun gnus-bug ()
-  "Send a bug report to the Gnus maintainers."
-  (interactive)
-  (let ((winconf (current-window-configuration)))
-    (delete-other-windows)
-    (switch-to-buffer "*Gnus Bug Help*")
-    (erase-buffer)
-    (insert gnus-bug-message)
-    (goto-char (point-min))
-    (pop-to-buffer "*Gnus Bug*")
-    (erase-buffer)
-    (mail-mode)
-    (mail-setup gnus-maintainer nil nil nil nil nil)
-    (make-local-variable 'gnus-prev-winconf)
-    (setq gnus-prev-winconf winconf)
-    (use-local-map (copy-keymap mail-mode-map))
-    (local-set-key "\C-c\C-c" 'gnus-mail-send-and-exit)
-    (goto-char (point-min))
-    (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
-    (forward-line 1)
-    (insert (format "%s\n%s\n\n\n\n\n" (gnus-version) (emacs-version)))
-    (let ((b (point)))
-      (gnus-debug)
-      (goto-char (- b 3)))
-    (message "")))
-
-(defun gnus-debug ()
-  "Attemps to go through the Gnus source file and report what variables have been changed.
-The source file has to be in the Emacs load path."
-  (interactive)
-  (let ((files '("gnus.el" "gnus-msg.el" "gnus-score.el"))
-       file dirs expr olist)
-    (save-excursion
-      (set-buffer (get-buffer-create " *gnus bug info*"))
-      (buffer-disable-undo (current-buffer))
-      (message "Please wait while we snoop your variables...")
-      (sit-for 0)
-      (while files
-       (erase-buffer)
-       (setq dirs load-path)
-       (while dirs
-         (if (or (not (car dirs))
-                 (not (stringp (car dirs)))
-                 (not (file-exists-p 
-                       (setq file (concat (file-name-as-directory 
-                                           (car dirs)) (car files))))))
-             (setq dirs (cdr dirs))
-           (setq dirs nil)
-           (insert-file-contents file)
-           (goto-char (point-min))
-           (or (re-search-forward "^;;* Internal variables" nil t)
-               (error "Malformed sources in file %s" file))
-           (narrow-to-region (point-min) (point))
-           (goto-char (point-min))
-           (while (setq expr (condition-case () 
-                                 (read (current-buffer)) (error nil)))
-             (and (eq (car expr) 'defvar)
-                  (stringp (nth 3 expr))
-                  (or (not (boundp (nth 1 expr)))
-                      (not (equal (eval (nth 2 expr))
-                                  (symbol-value (nth 1 expr)))))
-                  (setq olist (cons (nth 1 expr) olist))))))
-       (setq files (cdr files)))
-      (kill-buffer (current-buffer)))
-    (insert "------------------- Environment follows -------------------\n\n")
-    (while olist
-      (if (boundp (car olist))
-         (insert "(setq " (symbol-name (car olist)) " '" 
-                 (prin1-to-string (symbol-value (car olist))) ")\n")
-       (insert ";; (makeunbound '" (symbol-name (car olist)) ")\n"))
-      (setq olist (cdr olist)))
-    (insert "\n\n")))
-
 (defun gnus-overload-functions (&optional overloads)
   "Overload functions specified by optional argument OVERLOADS.
 If nothing is specified, use the variable gnus-overload-functions."
@@ -4293,15 +4230,21 @@ or nil if no action could be taken."
       (gnus-group-update-group-line)))
   (gnus-group-position-cursor))
 
-(defun gnus-group-unsubscribe-current-group (arg)
-  "Toggle subscribe from/to unsubscribe current group."
+(defun gnus-group-unsubscribe-current-group (n)
+  "Toggle subscription of the current group.
+If given numerical prefix, toggle the N next groups."
   (interactive "P")
-  (let ((group (gnus-group-group-name)))
-    (or group (error "No newsgroup on current line"))
-    (or arg (setq arg (if (<= (gnus-group-group-level) gnus-level-subscribed)
-                         gnus-level-default-unsubscribed
-                       gnus-level-default-subscribed)))
-    (gnus-group-unsubscribe-group group arg)
+  (let ((groups (gnus-group-process-prefix n))
+       group)
+    (while groups
+      (setq group (car groups)
+           groups (cdr groups))
+      (gnus-group-remove-mark group)
+      (gnus-group-unsubscribe-group
+       group (if (<= (gnus-group-group-level) gnus-level-subscribed)
+                gnus-level-default-unsubscribed
+              gnus-level-default-subscribed))
+      (gnus-group-update-group-line))
     (gnus-group-next-group 1)))
 
 (defun gnus-group-unsubscribe-group (group &optional level)
@@ -6298,7 +6241,7 @@ If READ-ALL is non-nil, all articles in the group are selected."
                                "%s %s (%d scored, %d total): "
                                "How many articles from"
                                group scored number))))
-                        (if (string-equal input "")
+                        (if (string-match "^[ \t]*$" input)
                             number input)))
                      (t number))
              (quit nil)))))
@@ -7433,8 +7376,7 @@ If BACKWARD, go to previous group instead."
          (setq group nil))
       (gnus-group-jump-to-group ingroup))
     (gnus-summary-search-group backward)
-    (let ((group (or group (gnus-summary-search-group backward)))
-         (buf gnus-summary-buffer))
+    (let ((group (or group (gnus-summary-search-group backward))))
       (set-buffer sumbuf)
       (gnus-summary-exit t)            ;Update all information.
       (if (null group)
@@ -7446,14 +7388,14 @@ If BACKWARD, go to previous group instead."
        (gnus-group-jump-to-group group)
        (if (not (eq gnus-auto-select-next 'quietly))
            (progn
-             (gnus-summary-read-group group nil no-article buf)
+             (gnus-summary-read-group group nil no-article sumbuf)
              (and (string= gnus-newsgroup-name ingroup)
                   (bufferp sumbuf) (buffer-name sumbuf)
                   (progn
                     (set-buffer (setq gnus-summary-buffer sumbuf))
                     (gnus-summary-exit-no-update t))))
          (let ((prevgroup group))
-           (gnus-summary-read-group group nil no-article buf)
+           (gnus-summary-read-group group nil no-article sumbuf)
            (while (and (string= gnus-newsgroup-name ingroup)
                        (bufferp sumbuf) 
                        (buffer-name sumbuf)
@@ -7461,7 +7403,7 @@ If BACKWARD, go to previous group instead."
              (set-buffer gnus-group-buffer)
              (gnus-summary-read-group 
               (setq prevgroup (gnus-group-group-name)) 
-              nil no-article buf))
+              nil no-article sumbuf))
            (and (string= prevgroup (gnus-group-group-name))
                 ;; We have reached the final group in the group
                 ;; buffer.
@@ -8115,6 +8057,7 @@ article. If BACKWARD (the prefix) is non-nil, search backward instead."
   (interactive)
   (gnus-set-global-variables)
   (gnus-summary-select-article)
+  (gnus-configure-windows 'article)
   (gnus-eval-in-buffer-window
    gnus-article-buffer
    (widen)
@@ -8126,6 +8069,7 @@ article. If BACKWARD (the prefix) is non-nil, search backward instead."
   (interactive)
   (gnus-set-global-variables)
   (gnus-summary-select-article)
+  (gnus-configure-windows 'article)
   (gnus-eval-in-buffer-window 
    gnus-article-buffer
    (widen)
@@ -8527,6 +8471,7 @@ This will have permanent effect only in mail groups."
   (text-mode)
   (use-local-map (copy-keymap (current-local-map)))
   (local-set-key "\C-c\C-c" 'gnus-summary-edit-article-done)
+  (buffer-enable-undo)
   (goto-char (point-min))
   (search-forward "\n\n" nil t))
 
@@ -8540,6 +8485,7 @@ This will have permanent effect only in mail groups."
     (gnus-article-mode)
     (use-local-map gnus-article-mode-map)
     (setq buffer-read-only t)
+    (buffer-disable-undo)
     (pop-to-buffer gnus-summary-buffer)))      
 
 (defun gnus-summary-fancy-query ()
@@ -9789,7 +9735,7 @@ is initialized from the SAVEDIR environment variable."
 
 ;; Summary extract commands
 
-(defun gnus-summary-insert-pseudos (pslist)
+(defun gnus-summary-insert-pseudos (pslist &optional not-view)
   (let ((buffer-read-only nil)
        (article (gnus-summary-article-number))
        b)
@@ -9824,7 +9770,7 @@ is initialized from the SAVEDIR environment variable."
                                  action 
                                  (mapconcat (lambda (f) f) files " ")))))
          (setq ps (cdr ps)))))
-    (if gnus-view-pseudos
+    (if (and gnus-view-pseudos (not not-view))
        (while pslist
          (and (assq 'execute (car pslist))
               (gnus-execute-command (cdr (assq 'execute (car pslist)))
@@ -9928,20 +9874,39 @@ is initialized from the SAVEDIR environment variable."
   
   ;; Duplicate almost all summary keystrokes in the article mode map.
   (let ((commands 
-        (list "#" "\M-#" "\C-c\M-#" "n" "p"
-              "N" "P" "\M-\C-n" "\M-\C-p" "." "\M-s" "\M-r"
-              "<" ">" "l" "j" "^" "\M-^" "-" "u" "U" "d" "D"
-              "\M-u" "\M-U" "k" "\C-k" "\M-\C-k""x" "X" 
-              "\M-\C-x" "\M-\177" "b" "B" "$" "w" "\C-c\C-r"
-              "t" "\M-t" "C" "S"
-              "m" "o" "\C-o" "|" "\M-m" "\M-\C-m" "\M-k" "M"
-              "V" "\C-c\C-d")))
+        (list 
+         " " "\177" "\r" "n" "p" "N" "P" "\M-\C-n" "\M-\C-p"
+         "\M-n" "\M-p" "." "," "\M-s" "\M-r" "<" ">" "j" "^" "\M-^"
+         "u" "!" "U" "d" "D" "E" "\M-u" "\M-U" "k" "\C-k" "\M-\C-k"
+         "\M-\C-l" "e" "#" "\M-#" "\M-\C-t" "\M-\C-s" "\M-\C-h"
+         "\M-\C-f" "\M-\C-b" "\M-\C-u" "\M-\C-d" "&" "\C-w"
+         "\C-t" "?" "\C-c\M-\C-s" "\C-c\C-s\C-n" "\C-c\C-s\C-a"
+         "\C-c\C-s\C-s" "\C-c\C-s\C-d" "\C-c\C-s\C-i" "\C-x\C-s"
+         "\M-g" "w" "\C-c\C-r" "\M-t" "C"
+         "o" "\C-o" "|" "\M-k" "\M-K" "V" "\C-c\C-d"
+         "\C-c\C-i" "x" "X" "s" "t" "g" "?" "l"
+         "\C-c\C-v\C-v" "\C-d" "v" "\C-c\C-b" 
+;;       "Mt" "M!" "Md" "Mr"
+;;       "Mc" "M " "Me" "Mx" "M?" "Mb" "MB" "M#" "M\M-#" "M\M-r"
+;;       "M\M-\C-r" "MD" "M\M-D" "MS" "MC" "MH" "M\C-c" "Mk" "MK"
+;;       "Ms" "Mc" "Mu" "Mm" "Mk" "Gn" "Gp" "GN" "GP" "G\C-n" "G\C-p"
+;;       "G\M-n" "G\M-p" "Gf" "Gb" "Gg" "Gl" "Gp" "Tk" "Tl" "Ti" "TT"
+;;       "Ts" "TS" "Th" "TH" "Tn" "Tp" "Tu" "Td" "T#" "A " "An" "A\177" "Ap"
+;;       "A\r" "A<" "A>" "Ab" "Ae" "A^" "Ar" "Aw" "Ac" "Ag" "At" "Am"
+;;       "As" "Wh" "Ws" "Wc" "Wo" "Ww" "Wd" "Wq" "Wf" "Wt" "W\C-t"
+;;       "WT" "WA" "Wa" "WH" "WC" "WS" "Wb" "Hv" "Hf" "Hd" "Hh" "Hi"
+;;       "Be" "B\177" "Bm" "Br" "Bw" "Bc" "Bq" "Bi" "Oo" "Om" "Or"
+;;       "Of" "Oh" "Ov" "Op" "Vu" "V\C-s" "V\C-r" "Vr" "V&" "VT" "Ve"
+;;       "VD" "Vk" "VK" "Vsn" "Vsa" "Vss" "Vsd" "Vsi"
+         )))
     (while commands
       (define-key gnus-article-mode-map (car commands) 
        'gnus-article-summary-command)
       (setq commands (cdr commands))))
 
-  (let ((commands (list "q" "Q"  "c" "r" "R" "\C-c\C-f" "m"  "a" "f" "F")))
+  (let ((commands (list "q" "Q"  "c" "r" "R" "\C-c\C-f" "m"  "a" "f" "F"
+;;                     "Zc" "ZC" "ZE" "ZQ" "ZZ" "Zn" "ZR" "ZG" "ZN" "ZP" 
+                        "=")))
     (while commands
       (define-key gnus-article-mode-map (car commands) 
        'gnus-article-summary-command-nosave)
@@ -9990,6 +9955,8 @@ The following commands are available:
   (if (get-buffer gnus-article-buffer)
       (save-excursion
        (set-buffer gnus-article-buffer)
+       (buffer-disable-undo)
+       (setq buffer-read-only t)
        (gnus-add-current-to-buffer-list)
        (or (eq major-mode 'gnus-article-mode)
            (gnus-article-mode)))
@@ -10321,7 +10288,7 @@ Provided for backwards compatability."
       (goto-char (point-min))
       (search-forward "\n\n" nil t)
       (end-of-line 1)
-      (let ((paragraph-start "^\\W")
+      (let ((paragraph-start "^[>|#:<;* ]*[ \t]*$")
            (adaptive-fill-regexp "[ \t]*\\([|#:<;>*]+ *\\)?")
            (adaptive-fill-mode t))
        (while (not (eobp))
@@ -12378,7 +12345,10 @@ If FORCE is non-nil, the .newsrc file is read."
              (eq 'bookmark (car (car marked)))
              (eq 'killed (car (car marked)))
              (setcdr (car marked) 
-                     (gnus-compress-sequence (sort (cdr (car marked)) '<) t)))
+                     (condition-case ()
+                         (gnus-compress-sequence 
+                          (sort (cdr (car marked)) '<) t)
+                       (error (cdr (car marked))))))
          (setq marked (cdr marked))))
       (setq newsrc (cdr newsrc)))))
 
@@ -12603,7 +12573,7 @@ If FORCE is non-nil, the .newsrc file is read."
                         (- (point) 2)))
                  (gnus-point-at-eol)))
        ;; Search for all "words"...
-       (while (re-search-forward "[^ \t,\n-]+" eol t)
+       (while (re-search-forward "[^ \t,\n]+" eol t)
          (if (= (char-after (match-beginning 0)) ?!)
              ;; If the word begins with a bang (!), this is a "not"
              ;; spec. We put this spec (minus the bang) and the
index 3ce4a83..5d17da8 100644 (file)
@@ -38,7 +38,8 @@
 (defvar nnfolder-directory (expand-file-name "~/Mail/")
   "The name of the mail box file in the users home directory.")
 
-(defvar nnfolder-active-file (concat nnfolder-directory "active")
+(defvar nnfolder-active-file 
+  (concat (file-name-as-directory nnfolder-directory) "active")
   "The name of the active file.")
 
 ;; I renamed this variable to somehting more in keeping with the general GNU
@@ -60,7 +61,8 @@ attempt to keep the buffers around (saving the nnfolder's buffer upon group
 close, but not killing it), speeding some things up tremendously, especially
 such things as moving mail.  All buffers always get killed upon server close.")
 
-(defvar nnfolder-newsgroups-file (concat nnfolder-directory "newsgroups")
+(defvar nnfolder-newsgroups-file 
+  (concat (file-name-as-directory  nnfolder-directory) "newsgroups")
   "Mail newsgroups description file.")
 
 (defvar nnfolder-get-new-mail t
@@ -432,7 +434,8 @@ such things as moving mail.  All buffers always get killed upon server close.")
       (make-directory (directory-file-name nnfolder-directory)))
   (nnfolder-possibly-activate-groups nil)
   (or (assoc group nnfolder-group-alist)
-      (not (file-exists-p (concat nnfolder-directory group)))
+      (not (file-exists-p (concat (file-name-as-directory nnfolder-directory)
+                                 group)))
       (progn
        (setq nnfolder-group-alist 
              (cons (list group (cons 1 0)) nnfolder-group-alist))
@@ -469,7 +472,8 @@ such things as moving mail.  All buffers always get killed upon server close.")
       (if inf
          ()
        (save-excursion
-         (setq file (concat nnfolder-directory group))
+         (setq file (concat (file-name-as-directory nnfolder-directory)
+                            group))
          (if (file-directory-p (file-truename file))
              ()
            (if (not (file-exists-p file))
@@ -648,7 +652,9 @@ such things as moving mail.  All buffers always get killed upon server close.")
                (message "nnfolder: Reading incoming mail..."))
           (setq incoming 
                 (nnmail-move-inbox 
-                 (car spools) (concat nnfolder-directory "Incoming")))
+                 (car spools) 
+                 (concat (file-name-as-directory nnfolder-directory)
+                         "Incoming")))
           (setq incomings (cons incoming incomings))
           (setq group (nnmail-get-split-group (car spools) group-in))
           (nnmail-split-incoming incoming 'nnfolder-save-mail nil group)))
index 69ec4fb..54e4bbf 100644 (file)
@@ -1,10 +1,9 @@
-MAKEINFO=makeinfo
 TEXI2DVI=texi2dvi
 
 all: gnus
 
 gnus: gnus.texi
-       $(MAKEINFO) -o gnus gnus.texi
+       emacs -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-format-buffer -f save-buffer
 
 dvi: gnus.texi
        $(TEXI2DVI) gnus.texi
index 96cb4a5..03e39c9 100644 (file)
@@ -908,6 +908,11 @@ argument.  The function should return a string, which will be inserted
 into the buffer just like information from any other specifier.
 @end table
 
+@cindex *
+All the "number-of" specs will be filled with an asterisk (@samp{*}) if
+no info is available - for instance, if it is a non-activated foreign
+group, or a bogus (or semi-bogus) native group.
+
 @vindex gnus-group-mode-line-format
 The mode line can be changed by setting
 (@code{gnus-group-mode-line-format}).  It doesn't understand that many
@@ -3633,6 +3638,7 @@ Just remember, kids: There is no 'c' in 'supersede'.
 @section Ticking and Marking
 @cindex article marking
 @cindex article ticking
+@cindex marks
 
 There are several marks you can set on an article.