*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 09:45:39 +0000 (09:45 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 09:45:39 +0000 (09:45 +0000)
12 files changed:
lisp/ChangeLog
lisp/gnus-cus.el
lisp/gnus-gl.el
lisp/gnus-picon.el
lisp/gnus-score.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/message-xmas.el
lisp/message.el
lisp/nnfolder.el
texi/ChangeLog
texi/gnus.texi

index 54975c6..605cbd2 100644 (file)
@@ -1,5 +1,44 @@
+Wed May 22 21:56:56 1996  Lars Magne Ingebrigtsen  <larsi@hler.ifi.uio.no>
+
+       * gnus.el (gnus-setup-news): Slave Gnusii should clear the dribble
+       buffer.
+
+Wed May 22 22:32:21 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-score.el (gnus-summary-set-score): Moved here.
+       (gnus-summary-raise-score): Would bug out on nil arguments.
+
+       * message-xmas.el (message-toolbar): Changed.
+
+       * gnus-xmas.el (gnus-summary-mail-toolbar): New toolbar.
+       (gnus-xmas-setup-summary-toolbar): Use it.
+
+Wed May 22 19:24:04 1996  Lars Magne Ingebrigtsen  <larsi@hler.ifi.uio.no>
+
+       * gnus.el (gnus-message-archive-method): Buggy definition.
+       (gnus-summary-prepare-threads): Don't mark ancient as low-scored. 
+       (gnus-summary-prepare-unthreaded): Ditto.
+
+Wed May 22 02:14:42 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.el (gnus-save-hidden-threads): New macro.
+       (gnus-hidden-threads-configuration): New function.
+       (gnus-restore-hidden-threads-configuration): New function.
+       (gnus-summary-search-article): Use it.
+
+       * gnus-picon.el (gnus-picons-reverse-domain-path): New definition.
+
+       * message.el: Required wrong file under XEmacs.
+
+       * gnus-gl.el (bbb-get-predictions): Return nil on errors.
+
+       * nnfolder.el (nnfolder-close-group): Make sure the buffer is
+       alive before killing it.
+
 Tue May 21 20:08:33 1996  Lars Magne Ingebrigtsen  <larsi@trym.ifi.uio.no>
 
+       * gnus.el: September Gnus v0.90 is released.
+
        * gnus.el (gnus-dribble-read-file): Don't do modes unless they are
        available. 
 
index 3eba2cc..a08bf4e 100644 (file)
     (doc . "\
 The coffee-brewing, all singing, all dancing, kitchen sink newsreader.")
     (type . group)
-    (data ((tag . "Visual")
-          (doc . "\
+    (data
+     ((tag . "Visual")
+      (doc . "\
 GNUS can be made colorful and fun or grey and dull as you wish.")
-          (type . group)
-          (data ((tag . "Visual")
-                 (doc . "Enable visual features.
+      (type . group)
+      (data
+       ((tag . "Visual")
+       (doc . "Enable visual features.
 If `visual' is disabled, there will be no menus and few faces.  Most of
 the visual customization options below will be ignored.  GNUS will use
 less space and be faster as a result.")
-                 (default . 
-                   (summary-highlight group-highlight
-                    article-highlight 
-                    summary-menu group-menu article-menu
-                    tree-highlight menu highlight
-                    browse-menu server-menu
-                    page-marker tree-menu binary-menu pick-menu
-                    grouplens-menu))
-                 (name . gnus-visual)
-                 (type . toggle))
-                ((tag . "WWW Browser")
-                 (doc . "\
+       (default . 
+         (summary-highlight group-highlight
+                            article-highlight 
+                            summary-menu group-menu article-menu
+                            tree-highlight menu highlight
+                            browse-menu server-menu
+                            page-marker tree-menu binary-menu pick-menu
+                            grouplens-menu))
+       (name . gnus-visual)
+       (type . toggle))
+       ((tag . "WWW Browser")
+       (doc . "\
 WWW Browser to call when clicking on an URL button in the article buffer.
 
 You can choose between one of the predefined browsers, or `Other'.")
-                 (name . browse-url-browser-function)
-                 (calculate . (cond ((boundp 'browse-url-browser-function)
-                                     browse-url-browser-function)
-                                    ((fboundp 'w3-fetch) 
-                                     'w3-fetch)
-                                    ((eq window-system 'x) 
-                                     'gnus-netscape-open-url)))
-                 (type . choice)
-                 (data ((tag . "W3")
-                        (type . const)
-                        (default . w3-fetch))
-                       ((tag . "Netscape")
-                        (type . const)
-                        (default . browse-url-netscape))
-                       ((prompt . "Other")
-                        (doc . "\
+       (name . browse-url-browser-function)
+       (calculate . (cond ((boundp 'browse-url-browser-function)
+                           browse-url-browser-function)
+                          ((fboundp 'w3-fetch) 
+                           'w3-fetch)
+                          ((eq window-system 'x) 
+                           'gnus-netscape-open-url)))
+       (type . choice)
+       (data
+        ((tag . "W3")
+         (type . const)
+         (default . w3-fetch))
+        ((tag . "Netscape")
+         (type . const)
+         (default . browse-url-netscape))
+        ((prompt . "Other")
+         (doc . "\
 You must specify the name of a Lisp function here.  The lisp function
 should open a WWW browser when called with an URL (a string).
 ")
-                        (default . __uninitialized__)
-                        (type . symbol))))
-                ((tag . "Mouse Face")
-                 (doc . "\
+         (default . __uninitialized__)
+         (type . symbol))))
+       ((tag . "Mouse Face")
+       (doc . "\
 Face used for group or summary buffer mouse highlighting.
 The line beneath the mouse pointer will be highlighted with this
 face.")
-                 (name . gnus-mouse-face)
-                 (calculate . (if (boundp 'gnus-mouse-face)
-                                   gnus-mouse-face
-                                 'highlight))
-                 (type . face))
-                ((tag . "Article Display")
-                 (doc . "Controls how the article buffer will look.
+       (name . gnus-mouse-face)
+       (calculate . (if (boundp 'gnus-mouse-face)
+                        gnus-mouse-face
+                      'highlight))
+       (type . face))
+       ((tag . "Article Display")
+       (doc . "Controls how the article buffer will look.
 
 If you leave the list empty, the article will appear exactly as it is
 stored on the disk.  The list entries will hide or highlight various
 parts of the article, making it easier to find the information you
 want.")
-                 (name . gnus-article-display-hook)
-                 (type . list)
-                 (default . (gnus-article-hide-headers-if-wanted
-                             gnus-article-hide-boring-headers
-                             gnus-article-treat-overstrike
-                             gnus-article-maybe-highlight))
-                 (data ((type . repeat)
-                        (header . nil)
-                        (data (tag . "Filter")
-                              (type . choice)
-                              (data ((tag . "Treat Overstrike")
-                                     (doc . "\
+       (name . gnus-article-display-hook)
+       (type . list)
+       (default . (gnus-article-hide-headers-if-wanted
+                   gnus-article-hide-boring-headers
+                   gnus-article-treat-overstrike
+                   gnus-article-maybe-highlight))
+       (data 
+        ((type . repeat)
+         (header . nil)
+         (data
+          (tag . "Filter")
+          (type . choice)
+          (data
+           ((tag . "Treat Overstrike")
+            (doc . "\
 Convert use of overstrike into bold and underline.
 
 Two identical letters separated by a backspace are displayed as a
@@ -137,178 +143,178 @@ technique was developed for old line printers (think about it), and is
 still in use on some newsgroups, in particular the ClariNet
 hierarchy.
 ")
-                                     (type . const)
-                                     (default . 
-                                       gnus-article-treat-overstrike))
-                                    ((tag . "Word Wrap")
-                                     (doc . "\
+            (type . const)
+            (default . 
+              gnus-article-treat-overstrike))
+           ((tag . "Word Wrap")
+            (doc . "\
 Format too long lines.
 ")
-                                     (type . const)
-                                     (default . gnus-article-word-wrap))
-                                    ((tag . "Remove CR")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-word-wrap))
+           ((tag . "Remove CR")
+            (doc . "\
 Remove carriage returns from an article.
 ")
-                                     (type . const)
-                                     (default . gnus-article-remove-cr))
-                                    ((tag . "Display X-Face")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-remove-cr))
+           ((tag . "Display X-Face")
+            (doc . "\
 Look for an X-Face header and display it if present.
 
 See also `X Face Command' for a definition of the external command
 used for decoding and displaying the face.
 ")
-                                     (type . const)
-                                     (default . gnus-article-display-x-face))
-                                    ((tag . "Unquote Printable")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-display-x-face))
+           ((tag . "Unquote Printable")
+            (doc . "\
 Transform MIME quoted printable into 8-bit characters.
 
 Quoted printable is often seen by strings like `=EF' where you would
 expect a non-English letter.
 ")
-                                     (type . const)
-                                     (default .
-                                       gnus-article-de-quoted-unreadable))
-                                    ((tag . "Universal Time")
-                                     (doc . "\
+            (type . const)
+            (default .
+              gnus-article-de-quoted-unreadable))
+           ((tag . "Universal Time")
+            (doc . "\
 Convert date header to universal time.
 ")
-                                     (type . const)
-                                     (default . gnus-article-date-ut))
-                                    ((tag . "Local Time")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-date-ut))
+           ((tag . "Local Time")
+            (doc . "\
 Convert date header to local timezone.
 ")
-                                     (type . const)
-                                     (default . gnus-article-date-local))
-                                    ((tag . "Lapsed Time")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-date-local))
+           ((tag . "Lapsed Time")
+            (doc . "\
 Replace date header with a header showing the articles age.
 ")
-                                     (type . const)
-                                     (default . gnus-article-date-lapsed))
-                                    ((tag . "Highlight")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-date-lapsed))
+           ((tag . "Highlight")
+            (doc . "\
 Highlight headers, citations, signature, and buttons.
 ")
-                                     (type . const)
-                                     (default . gnus-article-highlight))
-                                    ((tag . "Maybe Highlight")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-highlight))
+           ((tag . "Maybe Highlight")
+            (doc . "\
 Highlight headers, signature, and buttons if `Visual' is turned on.
 ")
-                                     (type . const)
-                                     (default . 
-                                       gnus-article-maybe-highlight))
-                                    ((tag . "Highlight Some")
-                                     (doc . "\
+            (type . const)
+            (default . 
+              gnus-article-maybe-highlight))
+           ((tag . "Highlight Some")
+            (doc . "\
 Highlight headers, signature, and buttons.
 ")
-                                     (type . const)
-                                     (default . gnus-article-highlight-some))
-                                    ((tag . "Highlight Headers")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-highlight-some))
+           ((tag . "Highlight Headers")
+            (doc . "\
 Highlight headers as specified by `Article Header Highlighting'.
 ")
-                                     (type . const)
-                                     (default .
-                                       gnus-article-highlight-headers))
-                                    ((tag . "Highlight Signature")
-                                     (doc . "\
+            (type . const)
+            (default .
+              gnus-article-highlight-headers))
+           ((tag . "Highlight Signature")
+            (doc . "\
 Highlight the signature as specified by `Article Signature Face'.
 ")
-                                     (type . const)
-                                     (default .
-                                       gnus-article-highlight-signature))
-                                    ((tag . "Citation")
-                                     (doc . "\
+            (type . const)
+            (default .
+              gnus-article-highlight-signature))
+           ((tag . "Citation")
+            (doc . "\
 Highlight the citations as specified by `Citation Faces'.
 ")
-                                     (type . const)
-                                     (default . 
-                                       gnus-article-highlight-citation))
-                                    ((tag . "Hide")
-                                     (doc . "\
+            (type . const)
+            (default . 
+              gnus-article-highlight-citation))
+           ((tag . "Hide")
+            (doc . "\
 Hide unwanted headers, excess citation, and the signature.
 ")
-                                     (type . const)
-                                     (default . gnus-article-hide))
-                                    ((tag . "Hide Headers If Wanted")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-hide))
+           ((tag . "Hide Headers If Wanted")
+            (doc . "\
 Hide headers, but allow user to display them with `t' or `v'.
 ")
-                                     (type . const)
-                                     (default . 
-                                       gnus-article-hide-headers-if-wanted))
-                                    ((tag . "Hide Headers")
-                                     (doc . "\
+            (type . const)
+            (default . 
+              gnus-article-hide-headers-if-wanted))
+           ((tag . "Hide Headers")
+            (doc . "\
 Hide unwanted headers and possibly sort them as well.
 Most likely you want to use `Hide Headers If Wanted' instead.
 ")
-                                     (type . const)
-                                     (default . gnus-article-hide-headers))
-                                    ((tag . "Hide Signature")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-hide-headers))
+           ((tag . "Hide Signature")
+            (doc . "\
 Hide the signature.
 ")
-                                     (type . const)
-                                     (default . gnus-article-hide-signature))
-                                    ((tag . "Hide Excess Citations")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-hide-signature))
+           ((tag . "Hide Excess Citations")
+            (doc . "\
 Hide excess citation.
 
 Excess is defined by `Citation Hide Percentage' and `Citation Hide Absolute'.
 ")
-                                     (type . const)
-                                     (default . 
-                                       gnus-article-hide-citation-maybe))
-                                    ((tag . "Hide Citations")
-                                     (doc . "\
+            (type . const)
+            (default . 
+              gnus-article-hide-citation-maybe))
+           ((tag . "Hide Citations")
+            (doc . "\
 Hide all cited text.
 ")
-                                     (type . const)
-                                     (default . gnus-article-hide-citation))
-                                    ((tag . "Add Buttons")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-hide-citation))
+           ((tag . "Add Buttons")
+            (doc . "\
 Make URL's into clickable buttons.
 ")
-                                     (type . const)
-                                     (default . gnus-article-add-buttons))
-                                    ((prompt . "Other")
-                                     (doc . "\
+            (type . const)
+            (default . gnus-article-add-buttons))
+           ((prompt . "Other")
+            (doc . "\
 Name of Lisp function to call.
 
 Push the `Filter' button to select one of the predefined filters.
 ")
-                                     (type . symbol)))))))
-                ((tag . "Article Button Face")
-                 (doc . "\
+            (type . symbol)))))))
+       ((tag . "Article Button Face")
+       (doc . "\
 Face used for highlighting buttons in the article buffer.
 
 An article button is a piece of text that you can activate by pressing
 `RET' or `mouse-2' above it.")
-                 (name . gnus-article-button-face)
-                 (default . bold)
-                 (type . face))
-                ((tag . "Article Mouse Face")
-                 (doc . "\
+       (name . gnus-article-button-face)
+       (default . bold)
+       (type . face))
+       ((tag . "Article Mouse Face")
+       (doc . "\
 Face used for mouse highlighting in the article buffer.
 
 Article buttons will be displayed in this face when the cursor is
 above them.")
-                 (name . gnus-article-mouse-face)
-                 (default . highlight)
-                 (type . face))
-                ((tag . "Article Signature Face")
-                 (doc . "\
+       (name . gnus-article-mouse-face)
+       (default . highlight)
+       (type . face))
+       ((tag . "Article Signature Face")
+       (doc . "\
 Face used for highlighting a signature in the article buffer.")
-                 (name . gnus-signature-face)
-                 (default . italic)
-                 (type . face))
-                ((tag . "Article Header Highlighting")
-                 (doc . "\
+       (name . gnus-signature-face)
+       (default . italic)
+       (type . face))
+       ((tag . "Article Header Highlighting")
+       (doc . "\
 Controls highlighting of article header.
 
 Below is a list of article header names, and the faces used for
@@ -330,109 +336,103 @@ If you only want to change the display of the name part for a specific
 header, specify `None' in the `Content' field.  Similarly, specify
 `None' in the `Name' field if you only want to leave the name part
 alone.")
-                 (name . gnus-header-face-alist)
-                 (type . list)
-                 (calculate . (cond ((not (eq gnus-display-type 'color))
-                                     '(("" bold italic)))
-                                    ((eq gnus-background-mode 'dark)
-                                     (list (list "From" nil 
-                                                 (custom-face-lookup 
-                                                  "light blue" nil nil t t nil))
-                                           (list "Subject" nil 
-                                                 (custom-face-lookup
-                                                  "pink" nil nil t t nil))
-                                           (list "Newsgroups:.*," nil
-                                                 (custom-face-lookup
-                                                  "yellow" nil nil t t nil))
-                                           (list "" 
-                                                 (custom-face-lookup
-                                                  "cyan" nil nil t nil nil)
-                                                 (custom-face-lookup
-                                                  "forestgreen"
-                                                  nil nil nil t nil))))
-                                    (t
-                                     (list (list "From" nil 
-                                                 (custom-face-lookup
-                                                  "RoyalBlue"
-                                                  nil nil t t nil))
-                                           (list "Subject" nil 
-                                                 (custom-face-lookup
-                                                  "firebrick"
-                                                  nil nil t t nil))
-                                           (list "Newsgroups:.*," nil
-                                                 (custom-face-lookup
-                                                  "indianred" nil nil t t nil))
-                                           (list ""
-                                                 (custom-face-lookup
-                                                  "DarkGreen"
-                                                  nil nil t nil nil)
-                                                 (custom-face-lookup
-                                                  "DarkGreen"
-                                                  nil nil nil t nil))))))
-                 (data ((type . repeat)
-                        (header . nil)
-                        (data (type . list)
-                              (compact . t)
-                              (data ((type . string)
-                                     (prompt . "Header")
-                                     (tag . "Header "))
-                                    "\n            "
-                                    ((type . face)
-                                     (prompt . "Name")
-                                     (tag . "Name   "))
-                                    "\n            "
-                                    ((type . face)
-                                     (tag . "Content"))
-                                    "\n")))))
-                ((tag . "Attribution Face")
-                 (doc . "\
+       (name . gnus-header-face-alist)
+       (type . list)
+       (calculate
+        . (cond 
+           ((not (eq gnus-display-type 'color))
+            '(("" bold italic)))
+           ((eq gnus-background-mode 'dark)
+            (list 
+             (list "From" nil 
+                   (custom-face-lookup "light blue" nil nil t t nil))
+             (list "Subject" nil 
+                   (custom-face-lookup "pink" nil nil t t nil))
+             (list "Newsgroups:.*," nil
+                   (custom-face-lookup "yellow" nil nil t t nil))
+             (list 
+              "" 
+              (custom-face-lookup "cyan" nil nil t nil nil)
+              (custom-face-lookup "forestgreen" nil nil nil t nil))))
+           (t
+            (list
+             (list "From" nil
+                   (custom-face-lookup "RoyalBlue" nil nil t t nil))
+             (list "Subject" nil 
+                   (custom-face-lookup "firebrick" nil nil t t nil))
+             (list "Newsgroups:.*," nil
+                   (custom-face-lookup "indianred" nil nil t t nil))
+             (list ""
+                   (custom-face-lookup "DarkGreen" nil nil t nil nil)
+                   (custom-face-lookup "DarkGreen" nil nil nil t nil))))))
+       (data
+        ((type . repeat)
+         (header . nil)
+         (data 
+          (type . list)
+          (compact . t)
+          (data
+           ((type . string)
+            (prompt . "Header")
+            (tag . "Header "))
+           "\n            "
+           ((type . face)
+            (prompt . "Name")
+            (tag . "Name   "))
+           "\n            "
+           ((type . face)
+            (tag . "Content"))
+           "\n")))))
+       ((tag . "Attribution Face")
+       (doc . "\
 Face used for attribution lines.
 It is merged with the face for the cited text belonging to the attribution.")
-                 (name . gnus-cite-attribution-face)
-                 (default . underline)
-                 (type . face))
-                ((tag . "Citation Faces")
-                 (doc . "\
+       (name . gnus-cite-attribution-face)
+       (default . underline)
+       (type . face))
+       ((tag . "Citation Faces")
+       (doc . "\
 List of faces used for highlighting citations. 
 
 When there are citations from multiple articles in the same message,
 Gnus will try to give each citation from each article its own face.
 This should make it easier to see who wrote what.")
-                 (name . gnus-cite-face-list)
-                 (import . gnus-custom-import-cite-face-list)
-                 (type . list)
-                 (calculate . (cond ((not (eq gnus-display-type 'color))
-                                     '(italic))
-                                    ((eq gnus-background-mode 'dark)
-                                     (mapcar 'gnus-make-face 
-                                             gnus-face-light-name-list))
-                                    (t 
-                                     (mapcar 'gnus-make-face 
-                                             gnus-face-dark-name-list))))
-                 (data ((type . repeat)
-                        (header . nil)
-                        (data (type . face)
-                              (tag . "Face")))))
-                ((tag . "Citation Hide Percentage")
-                 (doc . "\
+       (name . gnus-cite-face-list)
+       (import . gnus-custom-import-cite-face-list)
+       (type . list)
+       (calculate . (cond ((not (eq gnus-display-type 'color))
+                           '(italic))
+                          ((eq gnus-background-mode 'dark)
+                           (mapcar 'gnus-make-face 
+                                   gnus-face-light-name-list))
+                          (t 
+                           (mapcar 'gnus-make-face 
+                                   gnus-face-dark-name-list))))
+       (data
+        ((type . repeat)
+         (header . nil)
+         (data (type . face)
+               (tag . "Face")))))
+       ((tag . "Citation Hide Percentage")
+       (doc . "\
 Only hide excess citation if above this percentage of the body.")
-                 (name . gnus-cite-hide-percentage)
-                 (default . 50)
-                 (type . integer))
-                ((tag . "Citation Hide Absolute")
-                 (doc . "\
+       (name . gnus-cite-hide-percentage)
+       (default . 50)
+       (type . integer))
+       ((tag . "Citation Hide Absolute")
+       (doc . "\
 Only hide excess citation if above this number of lines in the body.")
-                 (name . gnus-cite-hide-absolute)
-                 (default . 10)
-                 (type . integer))
-                ((tag . "Summary Selected Face")
-                 (doc . "\
+       (name . gnus-cite-hide-absolute)
+       (default . 10)
+       (type . integer))
+       ((tag . "Summary Selected Face")
+       (doc . "\
 Face used for highlighting the current article in the summary buffer.")
-                 (name . gnus-summary-selected-face)
-                 (default . underline)
-                 (type . face))
-                ((tag . "Summary Line Highlighting")
-                 (doc . "\
+       (name . gnus-summary-selected-face)
+       (default . underline)
+       (type . face))
+       ((tag . "Summary Line Highlighting")
+       (doc . "\
 Controls the highlighting of summary buffer lines. 
 
 Below is a list of `Form'/`Face' pairs.  When deciding how a a
@@ -450,88 +450,97 @@ score:   The article's score
 default: The default article score.
 below:   The score below which articles are automatically marked as read. 
 mark:    The article's mark.")
-                 (name . gnus-summary-highlight)
-                 (type . list)
-                 (calculate . (cond ((not (eq gnus-display-type 'color))
-                                     '(((> score default) . bold)
-                                       ((< score default) . italic)))
-                                    ((eq gnus-background-mode 'dark)
-                                     (list (cons '(= mark gnus-canceled-mark)
-                                                 (custom-face-lookup "yellow" "black" nil nil nil nil))
-                                           (cons '(and (> score default) 
-                                                       (or (= mark gnus-dormant-mark)
-                                                           (= mark gnus-ticked-mark)))
-                                                 (custom-face-lookup "pink" nil nil t nil nil))
-                                           (cons '(and (< score default) 
-                                                       (or (= mark gnus-dormant-mark)
-                                                           (= mark gnus-ticked-mark)))
-                                                 (custom-face-lookup "pink" nil nil nil t nil))
-                                           (cons '(or (= mark gnus-dormant-mark)
-                                                      (= mark gnus-ticked-mark))
-                                                 (custom-face-lookup "pink" nil nil nil nil nil))
-
-                                           (cons '(and (> score default) (= mark gnus-ancient-mark))
-                                                 (custom-face-lookup "dark blue" nil nil t nil nil))
-                                           (cons '(and (< score default) (= mark gnus-ancient-mark))
-                                                 (custom-face-lookup "SkyBlue" nil nil nil t nil))
-                                           (cons '(= mark gnus-ancient-mark)
-                                                 (custom-face-lookup "SkyBlue" nil nil nil nil nil))
-
-                                           (cons '(and (> score default) (= mark gnus-unread-mark))
-                                                 (custom-face-lookup "white" nil nil t nil nil))
-                                           (cons '(and (< score default) (= mark gnus-unread-mark))
-                                                 (custom-face-lookup "white" nil nil nil t nil))
-                                           (cons '(= mark gnus-unread-mark)
-                                                 (custom-face-lookup "white" nil nil nil nil nil))
-
-                                           (cons '(> score default) 'bold)
-                                           (cons '(< score default) 'italic)))
-                                    (t
-                                     (list (cons '(= mark gnus-canceled-mark)
-                                                 (custom-face-lookup "yellow" "black" nil nil nil nil))
-                                           (cons '(and (> score default) 
-                                                       (or (= mark gnus-dormant-mark)
-                                                           (= mark gnus-ticked-mark)))
-                                                 (custom-face-lookup "firebrick" nil nil t nil nil))
-                                           (cons '(and (< score default) 
-                                                       (or (= mark gnus-dormant-mark)
-                                                           (= mark gnus-ticked-mark)))
-                                                 (custom-face-lookup "firebrick" nil nil nil t nil))
-                                           (cons '(or (= mark gnus-dormant-mark)
-                                                      (= mark gnus-ticked-mark))
-                                                 (custom-face-lookup "firebrick" nil nil nil nil nil))
-
-                                           (cons '(and (> score default) (= mark gnus-ancient-mark))
-                                                 (custom-face-lookup "RoyalBlue" nil nil t nil nil))
-                                           (cons '(and (< score default) (= mark gnus-ancient-mark))
-                                                 (custom-face-lookup "RoyalBlue" nil nil nil t nil))
-                                           (cons '(= mark gnus-ancient-mark)
-                                                 (custom-face-lookup "RoyalBlue" nil nil nil nil nil))
-
-                                           (cons '(and (> score default) (/= mark gnus-unread-mark))
-                                                 (custom-face-lookup "DarkGreen" nil nil t nil nil))
-                                           (cons '(and (< score default) (/= mark gnus-unread-mark))
-                                                 (custom-face-lookup "DarkGreen" nil nil nil t nil))
-                                           (cons '(/= mark gnus-unread-mark)
-                                                 (custom-face-lookup "DarkGreen" nil nil nil nil nil))
-
-                                           (cons '(> score default) 'bold)
-                                           (cons '(< score default) 'italic)))))
-                 (data ((type . repeat)
-                        (header . nil)
-                        (data (type . pair)
-                              (compact . t)
-                              (data ((type . sexp)
-                                     (width . 60)
-                                     (tag . "Form"))
-                                    "\n            "
-                                    ((type . face)
-                                     (tag . "Face"))
-                                    "\n")))))
-                ;; Do not define `gnus-button-alist' before we have
-                ;; some `complexity' attribute so we can hide it from
-                ;; beginners. 
-                )))))
+       (name . gnus-summary-highlight)
+       (type . list)
+       (calculate 
+        . (cond
+           ((not (eq gnus-display-type 'color))
+            '(((> score default) . bold)
+              ((< score default) . italic)))
+           ((eq gnus-background-mode 'dark)
+            (list
+             (cons 
+              '(= mark gnus-canceled-mark)
+              (custom-face-lookup "yellow" "black" nil nil nil nil))
+             (cons '(and (> score default) 
+                         (or (= mark gnus-dormant-mark)
+                             (= mark gnus-ticked-mark)))
+                   (custom-face-lookup "pink" nil nil t nil nil))
+             (cons '(and (< score default) 
+                         (or (= mark gnus-dormant-mark)
+                             (= mark gnus-ticked-mark)))
+                   (custom-face-lookup "pink" nil nil nil t nil))
+             (cons '(or (= mark gnus-dormant-mark)
+                        (= mark gnus-ticked-mark))
+                   (custom-face-lookup "pink" nil nil nil nil nil))
+
+             (cons
+              '(and (> score default) (= mark gnus-ancient-mark))
+              (custom-face-lookup "dark blue" nil nil t nil nil))
+             (cons 
+              '(and (< score default) (= mark gnus-ancient-mark))
+              (custom-face-lookup "SkyBlue" nil nil nil t nil))
+             (cons 
+              '(= mark gnus-ancient-mark)
+              (custom-face-lookup "SkyBlue" nil nil nil nil nil))
+
+             (cons '(and (> score default) (= mark gnus-unread-mark))
+                   (custom-face-lookup "white" nil nil t nil nil))
+             (cons '(and (< score default) (= mark gnus-unread-mark))
+                   (custom-face-lookup "white" nil nil nil t nil))
+             (cons '(= mark gnus-unread-mark)
+                   (custom-face-lookup "white" nil nil nil nil nil))
+
+             (cons '(> score default) 'bold)
+             (cons '(< score default) 'italic)))
+           (t
+            (list
+             (cons '(= mark gnus-canceled-mark)
+                   (custom-face-lookup "yellow" "black" nil nil nil nil))
+             (cons '(and (> score default) 
+                         (or (= mark gnus-dormant-mark)
+                             (= mark gnus-ticked-mark)))
+                   (custom-face-lookup "firebrick" nil nil t nil nil))
+             (cons '(and (< score default) 
+                         (or (= mark gnus-dormant-mark)
+                             (= mark gnus-ticked-mark)))
+                   (custom-face-lookup "firebrick" nil nil nil t nil))
+             (cons '(or (= mark gnus-dormant-mark)
+                        (= mark gnus-ticked-mark))
+                   (custom-face-lookup "firebrick" nil nil nil nil nil))
+
+             (cons '(and (> score default) (= mark gnus-ancient-mark))
+                   (custom-face-lookup "RoyalBlue" nil nil t nil nil))
+             (cons '(and (< score default) (= mark gnus-ancient-mark))
+                   (custom-face-lookup "RoyalBlue" nil nil nil t nil))
+             (cons '(= mark gnus-ancient-mark)
+                   (custom-face-lookup "RoyalBlue" nil nil nil nil nil))
+
+             (cons '(and (> score default) (/= mark gnus-unread-mark))
+                   (custom-face-lookup "DarkGreen" nil nil t nil nil))
+             (cons '(and (< score default) (/= mark gnus-unread-mark))
+                   (custom-face-lookup "DarkGreen" nil nil nil t nil))
+             (cons '(/= mark gnus-unread-mark)
+                   (custom-face-lookup "DarkGreen" nil nil nil nil nil))
+
+             (cons '(> score default) 'bold)
+             (cons '(< score default) 'italic)))))
+       (data
+        ((type . repeat)
+         (header . nil)
+         (data (type . pair)
+               (compact . t)
+               (data ((type . sexp)
+                      (width . 60)
+                      (tag . "Form"))
+                     "\n            "
+                     ((type . face)
+                      (tag . "Face"))
+                     "\n")))))
+       ;; Do not define `gnus-button-alist' before we have
+       ;; some `complexity' attribute so we can hide it from
+       ;; beginners. 
+       )))))
 
 (defun gnus-custom-import-cite-face-list (custom alist)
   ;; Backward compatible grokking of light and dark.
index 0f15090..54997d2 100644 (file)
@@ -348,7 +348,9 @@ recommend using both scores and grouplens predictions together."
   "Ask the bbb for predictions, and build up the score alist."
   (if (or (null grouplens-bbb-token)
          (equal grouplens-bbb-token "0"))
-      (gnus-message 3 "Error: You are not logged in to a BBB")
+      (progn 
+       (gnus-message 3 "Error: You are not logged in to a BBB")
+       nil)
     (gnus-message 5 "Fetching Predictions...")
     (let (predict-list
          (predict-command (bbb-build-predict-command midlist groupname 
index d473e80..f6025c5 100644 (file)
@@ -327,11 +327,7 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
 
 (defun gnus-picons-reverse-domain-path (str)
   "a/b/c/d -> d/c/b/a"
-  (if (equal (replace-in-string str "^[^/]*$" "") "")
-      str
-    (concat (replace-in-string str "^.*/\\([_a-zA-Z0-9-]+\\)$" "\\1") "/"
-            (gnus-picons-reverse-domain-path 
-             (replace-in-string str "^\\(.*\\)/[_a-zA-Z0-9-]+$" "\\1")))))
+  (mapconcat 'identity (nreverse (message-tokenize-header str "/")) "/"))
 
 (provide 'gnus-picon)
 
index d1370fe..d22c20e 100644 (file)
@@ -742,6 +742,38 @@ SCORE is the score to add."
           (setcdr alist
                   (cons (cons symbol value) (cdr alist)))))))
 
+(defun gnus-summary-raise-score (n)
+  "Raise the score of the current article by N."
+  (interactive "p")
+  (gnus-set-global-variables)
+  (gnus-summary-set-score (+ (gnus-summary-article-score) 
+                            (or n gnus-score-interactive-default-score ))))
+
+(defun gnus-summary-set-score (n)
+  "Set the score of the current article to N."
+  (interactive "p")
+  (gnus-set-global-variables)
+  (save-excursion
+    (gnus-summary-show-thread)
+    (let ((buffer-read-only nil))
+      ;; Set score.
+      (gnus-summary-update-mark
+       (if (= n (or gnus-summary-default-score 0)) ? 
+        (if (< n (or gnus-summary-default-score 0))
+            gnus-score-below-mark gnus-score-over-mark)) 'score))
+    (let* ((article (gnus-summary-article-number))
+          (score (assq article gnus-newsgroup-scored)))
+      (if score (setcdr score n)
+       (setq gnus-newsgroup-scored
+             (cons (cons article n) gnus-newsgroup-scored))))
+    (gnus-summary-update-line)))
+
+(defun gnus-summary-current-score ()
+  "Return the score of the current article."
+  (interactive)
+  (gnus-set-global-variables)
+  (gnus-message 1 "%s" (gnus-summary-article-score)))
+
 (defun gnus-score-change-score-file (file)
   "Change current score alist."
   (interactive 
index b831af2..7500353 100644 (file)
@@ -558,59 +558,73 @@ If it is non-nil, it must be a toolbar.  The five legal values are
 `right-toolbar', and `left-toolbar'.")
 
 (defvar gnus-group-toolbar 
-  '([gnus-group-exit-icon gnus-group-exit t "Exit Gnus"]
-    [gnus-group-kill-group-icon gnus-group-kill-group t "Kill group"]
-    [gnus-group-get-new-news-icon gnus-group-get-new-news t "Get new news"]
-    [gnus-group-get-new-news-this-group-icon 
+  '([gnus-group-exit gnus-group-exit t "Exit Gnus"]
+    [gnus-group-kill-group gnus-group-kill-group t "Kill group"]
+    [gnus-group-get-new-news gnus-group-get-new-news t "Get new news"]
+    [gnus-group-get-new-news-this-group 
      gnus-group-get-new-news-this-group t "Get new news in this group"]
-    [gnus-group-catchup-current-icon 
+    [gnus-group-catchup-current 
      gnus-group-catchup-current t "Catchup group"]
-    [gnus-group-describe-group-icon 
+    [gnus-group-describe-group 
      gnus-group-describe-group t "Describe group"])
   "The group buffer toolbar.")
 
 (defvar gnus-summary-toolbar 
-  '([gnus-summary-post-news-icon 
+  '([gnus-summary-post-news 
      gnus-summary-post-news t "Post an article"]
-    [gnus-summary-save-article-file-icon
+    [gnus-summary-save-article-file
      gnus-summary-save-article-file t "Save article in file"]
-    [gnus-summary-save-article-icon
+    [gnus-summary-save-article
      gnus-summary-save-article t "Save article"]
-    [gnus-summary-reply-icon 
+    [gnus-summary-reply 
      gnus-summary-reply t "Mail a reply"]
-    [gnus-summary-reply-with-original-icon
+    [gnus-summary-reply-with-original
      gnus-summary-reply-with-original t "Mail a reply and yank the original"]
-    [gnus-summary-followup-icon 
+    [gnus-summary-followup 
      gnus-summary-followup t "Post a followup"]
-    [gnus-summary-followup-with-original-icon
+    [gnus-summary-followup-with-original
      gnus-summary-followup-with-original t 
      "Post a followup and yank the original"]
-    [gnus-uu-decode-uu-icon
+    [gnus-uu-decode-uu
      gnus-uu-decode-uu t "Decode uuencoded articles"]
-    [gnus-uu-post-news-icon 
+    [gnus-uu-post-news 
      gnus-uu-post-news t "Post an uuencoded article"]
-    [gnus-summary-caesar-message-icon
+    [gnus-summary-caesar-message
      gnus-summary-caesar-message t "Rot 13"]
-    [gnus-summary-cancel-article-icon
+    [gnus-summary-cancel-article
      gnus-summary-cancel-article t "Cancel article"])
   "The summary buffer toolbar.")
 
+(defvar gnus-summary-mail-toolbar
+  '([gnus-summary-mail-reply gnus-summary-reply t "Reply"]
+    [gnus-summary-mail-get gnus-mail-get t "Message get"]
+    [gnus-summary-mail-originate gnus-summary-post-news t "Originate"]
+    [gnus-summary-mail-save gnus-summary-save-article t "Save"]
+    [gnus-summary-mail-copy gnus-summary-copy-article t "Copy message"]
+    [gnus-summary-mail-delete gnus-summary-delete-article t "Delete message"]
+    [gnus-summary-mail-forward gnus-summary-mail-forward t "Forward message"]
+;    [gnus-summary-mail-spell gnus-mail-spell t "Spell"]
+;    [gnus-summary-mail-help gnus-mail-help  t "Message help"]
+    )
+  "The summary buffer mail toolbar.")
+
 (defun gnus-xmas-setup-group-toolbar ()
   (let (dir)
     (and gnus-use-toolbar
         (setq dir (message-xmas-setup-toolbar gnus-group-toolbar nil "gnus"))
-        (file-exists-p (concat dir "gnus-group-catchup-current-icon-up.xpm"))
+        (file-exists-p (concat dir "gnus-group-catchup-current-up.xpm"))
         (set-specifier (symbol-value gnus-use-toolbar)
                        (cons (current-buffer) gnus-group-toolbar)))))
 
 (defun gnus-xmas-setup-summary-toolbar ()
-  (let (dir)
+  (let ((bar (if (gnus-news-group-p gnus-newsgroup-name)
+                gnus-summary-toolbar gnus-summary-mail-toolbar))
+       dir)
     (and gnus-use-toolbar
-        (setq dir (message-xmas-setup-toolbar gnus-summary-toolbar 
-                                              nil "gnus"))
-        (file-exists-p (concat dir "gnus-group-catchup-current-icon-up.xpm"))
+        (setq dir (message-xmas-setup-toolbar bar nil "gnus"))
+        (file-exists-p (concat dir "gnus-group-catchup-current-up.xpm"))
         (set-specifier (symbol-value gnus-use-toolbar)
-                       (cons (current-buffer) gnus-summary-toolbar)))))
+                       (cons (current-buffer) bar)))))
 
 ;; Written by Erik Naggum <erik@naggum.no>.
 ;; Saved by Steve Baur <steve@miranova.com>.
index 9fb10de..45514a1 100644 (file)
@@ -133,10 +133,11 @@ There is a lot more to know about select methods and virtual servers -
 see the manual for details.")
 
 (defvar gnus-message-archive-method 
-  '(nnfolder
+  `(nnfolder
     "archive"
-    (nnfolder-directory (nnheader-concat message-directory "archive"))
-    (nnfolder-active-file (nnheader-concat message-directory "archive/active"))
+    (nnfolder-directory ,(nnheader-concat message-directory "archive"))
+    (nnfolder-active-file 
+     ,(nnheader-concat message-directory "archive/active"))
     (nnfolder-get-new-mail nil)
     (nnfolder-inhibit-expiry t))
   "*Method used for archiving messages you've sent.
@@ -1721,7 +1722,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "September Gnus v0.90"
+(defconst gnus-version "September Gnus v0.91"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -2048,7 +2049,8 @@ Thank you for your help in stamping out bugs.
       gnus-score-raise-same-subject gnus-score-default
       gnus-score-raise-thread gnus-score-lower-same-subject-and-select
       gnus-score-lower-same-subject gnus-score-lower-thread
-      gnus-possibly-score-headers)
+      gnus-possibly-score-headers gnus-summary-raise-score 
+      gnus-summary-set-score gnus-summary-current-score)
      ("gnus-score"
       (gnus-summary-score-map keymap) gnus-score-save gnus-score-headers
       gnus-current-score-file-nondirectory gnus-score-adaptive
@@ -4366,7 +4368,8 @@ prompt the user for the name of an NNTP server to use."
                (gnus-make-newsrc-file gnus-startup-file))
 
          ;; Read the dribble file.
-         (and (or gnus-slave gnus-use-dribble-file) (gnus-dribble-read-file))
+         (when (or gnus-slave gnus-use-dribble-file)
+           (gnus-dribble-read-file))
 
          ;; Allow using GroupLens predictions.
          (when gnus-use-grouplens
@@ -7395,6 +7398,38 @@ This is all marks except unread, ticked, dormant, and expirable."
           (= mark gnus-dormant-mark)
           (= mark gnus-expirable-mark))))
 
+;; Saving hidden threads.
+
+(put 'gnus-save-hidden-threads 'lisp-indent-function 0)
+(put 'gnus-save-hidden-threads 'lisp-indent-hook 0)
+
+(defmacro gnus-save-hidden-threads (&rest forms)
+  "Save hidden threads, eval FORMS, and restore the hidden threads."
+  (let ((config (make-symbol "config")))
+    `(let ((,config (gnus-hidden-threads-configuration)))
+       (unwind-protect
+          (progn
+            ,@forms)
+        (gnus-restore-hidden-threads-configuration ,config)))))
+
+(defun gnus-hidden-threads-configuration ()
+  "Return the current hidden threads configuration."
+  (save-excursion
+    (let (config)
+      (goto-char (point-min))
+      (while (search-forward "\r" nil t)
+       (push (1- (point)) config))
+      config)))
+
+(defun gnus-restore-hidden-threads-configuration (config)
+  "Restore hidden threads configuration from CONFIG."
+  (let (point buffer-read-only)
+    (while (setq point (pop config))
+      (when (and (< point (point-max))
+                (goto-char point)
+                (= (following-char) ?\n))
+       (subst-char-in-region point (1+ point) ?\n ?\r)))))
+
 ;; Various summary mode internalish functions.
 
 (defun gnus-mouse-pick-article (e)
@@ -8443,7 +8478,8 @@ or a straight list of headers."
                        default-score)
                    gnus-summary-mark-below)
                 ;; Don't touch sparse articles.
-                (not (memq number gnus-newsgroup-sparse)))
+                (not (memq number gnus-newsgroup-sparse))
+                (not (memq number gnus-newsgroup-ancient)))
            (setq gnus-newsgroup-unreads
                  (delq number gnus-newsgroup-unreads))
            (if gnus-newsgroup-auto-expire
@@ -8567,7 +8603,8 @@ or a straight list of headers."
        (when (and gnus-summary-mark-below
                   (< (or (cdr (assq number gnus-newsgroup-scored))
                          gnus-summary-default-score 0)
-                     gnus-summary-mark-below))
+                     gnus-summary-mark-below)
+                  (not (memq number gnus-newsgroup-ancient)))
          (setq gnus-newsgroup-unreads
                (delq number gnus-newsgroup-unreads))
          (if gnus-newsgroup-auto-expire
@@ -11073,36 +11110,40 @@ Optional argument BACKWARD means do search for backward.
             're-search-backward 're-search-forward))
        (sum (current-buffer))
        (found nil))
-    ;; Hidden thread subtrees must be searched, too.
-    (gnus-summary-show-all-threads)
-    (gnus-summary-select-article)
-    (set-buffer gnus-article-buffer)
-    (while (not found)
-      (gnus-message 7 "Searching article: %d..." gnus-current-article)
-      (if (if backward
-             (re-search-backward regexp nil t)
-           (re-search-forward regexp nil t))
-         ;; We found the regexp.
-         (progn
-           (setq found 'found)
-           (beginning-of-line)
-           (set-window-start
-            (get-buffer-window (current-buffer))
-            (point)))
-       ;; We didn't find it, so we go to the next article.
-       (set-buffer sum)
-       (if (not (if backward (gnus-summary-find-prev)
-                  (gnus-summary-find-next)))
-           ;; No more articles.
-           (setq found t)
-         ;; Select the next article and adjust point.
-         (gnus-summary-select-article)
-         (set-buffer gnus-article-buffer)
-         (widen)
-         (goto-char (if backward (point-max) (point-min))))))
-    (set-buffer sum)
+    (gnus-save-hidden-threads
+      (gnus-summary-select-article)
+      (set-buffer gnus-article-buffer)
+      (while (not found)
+       (gnus-message 7 "Searching article: %d..." (cdr gnus-article-current))
+       (if (if backward
+               (re-search-backward regexp nil t)
+             (re-search-forward regexp nil t))
+           ;; We found the regexp.
+           (progn
+             (setq found 'found)
+             (beginning-of-line)
+             (set-window-start
+              (get-buffer-window (current-buffer))
+              (point)))
+         ;; We didn't find it, so we go to the next article.
+         (set-buffer sum)
+         (if (not (if backward (gnus-summary-find-prev)
+                    (gnus-summary-find-next)))
+             ;; No more articles.
+             (setq found t)
+           ;; Select the next article and adjust point.
+           (gnus-summary-select-article)
+           (set-buffer gnus-article-buffer)
+           (widen)
+           (goto-char (if backward (point-max) (point-min))))))
+      (set-buffer sum)
+      (gnus-message 7 ""))
     ;; Return whether we found the regexp.
-    (eq found 'found)))
+    (when (eq found 'found)
+      (gnus-summary-show-thread)
+      (gnus-summary-goto-subject gnus-current-article)
+      (gnus-summary-position-point)
+      t)))
 
 (defun gnus-summary-find-matching (header regexp &optional backward unread
                                          not-case-fold)
@@ -11735,41 +11776,6 @@ groups."
       (pp-eval-expression
        (list 'quote (mapcar 'car (nnmail-article-group 'identity)))))))
 
-;; Summary score commands.
-
-;; Suggested by boubaker@cenatls.cena.dgac.fr.
-
-(defun gnus-summary-raise-score (n)
-  "Raise the score of the current article by N."
-  (interactive "p")
-  (gnus-set-global-variables)
-  (gnus-summary-set-score (+ (gnus-summary-article-score) n)))
-
-(defun gnus-summary-set-score (n)
-  "Set the score of the current article to N."
-  (interactive "p")
-  (gnus-set-global-variables)
-  (save-excursion
-    (gnus-summary-show-thread)
-    (let ((buffer-read-only nil))
-      ;; Set score.
-      (gnus-summary-update-mark
-       (if (= n (or gnus-summary-default-score 0)) ? 
-        (if (< n (or gnus-summary-default-score 0))
-            gnus-score-below-mark gnus-score-over-mark)) 'score))
-    (let* ((article (gnus-summary-article-number))
-          (score (assq article gnus-newsgroup-scored)))
-      (if score (setcdr score n)
-       (setq gnus-newsgroup-scored
-             (cons (cons article n) gnus-newsgroup-scored))))
-    (gnus-summary-update-line)))
-
-(defun gnus-summary-current-score ()
-  "Return the score of the current article."
-  (interactive)
-  (gnus-set-global-variables)
-  (gnus-message 1 "%s" (gnus-summary-article-score)))
-
 ;; Summary marking commands.
 
 (defun gnus-summary-kill-same-subject-and-select (&optional unmark)
@@ -14760,8 +14766,7 @@ If NEWSGROUP is nil, return the global kill file name instead."
            (setq gnus-dribble-eval-file t)))))))
 
 (defun gnus-dribble-eval-file ()
-  (if (not gnus-dribble-eval-file)
-      ()
+  (when gnus-dribble-eval-file
     (setq gnus-dribble-eval-file nil)
     (save-excursion
       (let ((gnus-dribble-ignore t))
@@ -14769,32 +14774,31 @@ If NEWSGROUP is nil, return the global kill file name instead."
        (eval-buffer (current-buffer))))))
 
 (defun gnus-dribble-delete-file ()
-  (if (file-exists-p (gnus-dribble-file-name))
-      (delete-file (gnus-dribble-file-name)))
-  (if gnus-dribble-buffer
-      (save-excursion
-       (set-buffer gnus-dribble-buffer)
-       (let ((auto (make-auto-save-file-name)))
-         (if (file-exists-p auto)
-             (delete-file auto))
-         (erase-buffer)
-         (set-buffer-modified-p nil)))))
+  (when (file-exists-p (gnus-dribble-file-name))
+    (delete-file (gnus-dribble-file-name)))
+  (when gnus-dribble-buffer
+    (save-excursion
+      (set-buffer gnus-dribble-buffer)
+      (let ((auto (make-auto-save-file-name)))
+       (if (file-exists-p auto)
+           (delete-file auto))
+       (erase-buffer)
+       (set-buffer-modified-p nil)))))
 
 (defun gnus-dribble-save ()
-  (if (and gnus-dribble-buffer
-          (buffer-name gnus-dribble-buffer))
-      (save-excursion
-       (set-buffer gnus-dribble-buffer)
-       (save-buffer))))
+  (when (and gnus-dribble-buffer
+            (buffer-name gnus-dribble-buffer))
+    (save-excursion
+      (set-buffer gnus-dribble-buffer)
+      (save-buffer))))
 
 (defun gnus-dribble-clear ()
-  (save-excursion
-    (if (gnus-buffer-exists-p gnus-dribble-buffer)
-       (progn
-         (set-buffer gnus-dribble-buffer)
-         (erase-buffer)
-         (set-buffer-modified-p nil)
-         (setq buffer-saved-size (buffer-size))))))
+  (when (gnus-buffer-exists-p gnus-dribble-buffer)
+    (save-excursion
+      (set-buffer gnus-dribble-buffer)
+      (erase-buffer)
+      (set-buffer-modified-p nil)
+      (setq buffer-saved-size (buffer-size)))))
 
 \f
 ;;;
@@ -15260,6 +15264,10 @@ If LEVEL is non-nil, the news will be set up at level LEVEL."
     ;; Possibly eval the dribble file.
     (and init (or gnus-use-dribble-file gnus-slave) (gnus-dribble-eval-file))
 
+    ;; Slave Gnusii should then clear the dribble buffer.
+    (when (and init gnus-slave)
+      (gnus-dribble-clear))
+
     (gnus-update-format-specifications)
 
     ;; See whether we need to read the description file.
index 6d33f82..df67084 100644 (file)
@@ -37,17 +37,8 @@ If it is non-nil, it must be a toolbar.  The five legal values are
 `right-toolbar', and `left-toolbar'.")
 
 (defvar message-toolbar 
-  '(
-    [message-reply message-reply t "Reply"]
-    [message-get message-get t "Message get"]
-    [message-originate message-originate t "Originate"]
-    [message-save message-save t "Save"]
-    [message-copy message-copy t "Copy message"]
-    [message-delete message-delete t "Delete message"]
-    [message-forward message-forward t "Forward message"]
-    [message-spell message-spell t "Spell"]
-    [message-help message-help  t "Message help"]
-    )
+  '([message-spell toolbar-ispell t "Spell"]
+    [message-help toolbar-info t "Message help"])
   "The message buffer toolbar.")
 
 (defun message-xmas-find-glyph-directory (&optional package)
index 92298cb..9298c83 100644 (file)
@@ -36,7 +36,7 @@
 (require 'timezone)
 (require 'easymenu)
 (if (string-match "XEmacs\\|Lucid" emacs-version)
-    (require 'mail-abbrev)
+    (require 'mail-abbrevs)
   (require 'mailabbrev))
 
 (defvar message-directory "~/Mail/"
index fcc0ae5..48857a5 100644 (file)
@@ -238,7 +238,8 @@ it.")
   (when (or (assoc group nnfolder-buffer-alist)
            (equal group nnfolder-current-group))
     (nnfolder-possibly-change-group group server)
-    (when nnfolder-current-buffer
+    (when (and nnfolder-current-buffer
+              (buffer-name nnfolder-current-buffer))
       (save-excursion
        (set-buffer nnfolder-current-buffer)
        ;; If the buffer was modified, write the file out now.
index 5000daf..943be80 100644 (file)
@@ -1,3 +1,7 @@
+Wed May 22 23:41:28 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (Troubleshooting): Addition.
+
 Tue May 21 12:52:34 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
 
        * gnus.texi: Excised message documentation.
index a8bf411..b55079f 100644 (file)
@@ -11927,6 +11927,11 @@ insulting me about.  Always over-explain everything.  It's much easier
 for all of us---if I don't have all the information I need, I will just
 mail you and ask for more info, and everything takes more time.
 
+If the problem you're seeing is very visual, and you can't quite explain
+it, copy the Emacs window to a file (with @code{xwd}, for instance), put
+it somewhere it can be reached, and include the URL of the picture in
+the bug report.a
+
 If you just need help, you are better off asking on
 @samp{gnu.emacs.gnus}.  I'm not very helpful.
 
@@ -12575,8 +12580,6 @@ Below is a slightly shortened version of the @code{nndir} backend.
   "*Non-nil means that nndir will never retrieve NOV headers."
   nnml-nov-is-evil)
 
-\f
-
 (defvoo nndir-current-group "" nil nnml-current-group nnmh-current-group)
 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory)
 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail)
@@ -12584,8 +12587,6 @@ Below is a slightly shortened version of the @code{nndir} backend.
 (defvoo nndir-status-string "" nil nnmh-status-string)
 (defconst nndir-version "nndir 1.0")
 
-\f
-
 ;;; Interface functions.
 
 (nnoo-define-basics nndir)