*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:14:30 +0000 (03:14 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:14:30 +0000 (03:14 +0000)
lisp/ChangeLog
lisp/gnus-score.el
lisp/gnus-vis.el
lisp/gnus.el
lisp/nntp.el
texi/gnus.texi

index cd96fa6..8bd8053 100644 (file)
@@ -1,4 +1,32 @@
-Sat Aug 12 15:09:20 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+Sun Aug 13 17:15:22 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus.el (gnus-groups-to-gnus-format): Don't skip everything if a
+       simple error occurs; just ignore the buggy line.
+
+       * gnus-vis.el (gnus-netscape-start-url): Don't use shell-command. 
+       (gnus-button-alist): Didn't match mailto urls.
+
+       * gnus.el (gnus-group-select-group-all): New command and menu-bar
+       entry. 
+       ('gnus-article-display-hook): Do some article highlighting by
+       default. 
+
+       * gnus-score.el (gnus-default-adaptive-score-alist): Changed to
+       Jason's defaults. 
+
+       * gnus.el (gnus-summary-mode-map): Completele redesign of article
+       wash map. 
+       (gnus-summary-caesar-message): Don't use recenter.
+
+Sat Aug 12 23:23:45 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus-vis.el (gnus-button-url): Changed default slightly.
+
+       * gnus.el: Removed gnus-soup.el and nnsoup.el from distribution.
+
+Sat Aug 12 15:09:20 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * gnus.el: 0.99.10 is released.
 
        * nnml.el (nnml-request-create-group): Would create new groups
        with 0 0 instead of 1 0.
index c79656d..6686e7b 100644 (file)
 (defvar gnus-orphan-score nil
   "*All orphans get this score added. Set in the score file.")
 
-(defvar gnus-default-adaptive-score-alist
-  '((gnus-unread-mark)
-    (gnus-ticked-mark)
-    (gnus-dormant-mark (from 5))
-    (gnus-del-mark (from -4) (subject -1))
-    (gnus-read-mark (from 4) (subject 2))
-    (gnus-expirable-mark (from -1) (subject -1))
-    (gnus-killed-mark (from -1) (subject -3))
-    (gnus-kill-file-mark)
-    (gnus-catchup-mark (from -1) (subject -1)))
-  "*Alist of marks and scores.")
+(defvar gnus-default-adaptive-score-alist  
+  '((gnus-kill-file-mark)
+    (gnus-unread-mark)
+    (gnus-read-mark (from  3) (subject  30))
+    (gnus-catchup-mark (subject -10))
+    (gnus-killed-mark (from -1) (subject -20))
+    (gnus-del-mark (from -2) (subject -15)))
+"*Alist of marks and scores.")
 
 (defvar gnus-score-mimic-keymap nil
   "*Have the score entry functions pretend that they are a keymap.")
@@ -97,7 +94,7 @@ of the last successful match.")
 (defvar gnus-summary-score-map nil)
 
 (define-prefix-command 'gnus-summary-score-map)
-(define-key gnus-summary-various-map "S" 'gnus-summary-score-map)
+(define-key gnus-summary-mode-map "V" 'gnus-summary-score-map)
 (define-key gnus-summary-score-map "s" 'gnus-summary-set-score)
 (define-key gnus-summary-score-map "a" 'gnus-summary-score-entry)
 (define-key gnus-summary-score-map "S" 'gnus-summary-current-score)
index 5ed5212..e6f4ecb 100644 (file)
 
 (defvar gnus-summary-selected-face 'underline
   "*Face used for highlighting the current article in the summary buffer.")
+(defvar gnus-summary-highlight-properties
+  '((unread "ForestGreen" "green")
+    (ticked "Firebrick" "pink")
+    (read "black" "white")
+    (low italic italic)
+    (high bold bold)
+    (canceled "yellow/black" "black/yellow")))
+
+(defvar gnus-summary-highlight-translation
+  '(((unread (= mark gnus-unread-mark))
+     (ticked (or (= mark gnus-ticked-mark) (= mark gnus-dormant-mark)))
+     (read (not (or (= mark gnus-unread-mark) (= mark gnus-dormant-mark)
+                   (= mark gnus-ticked-mark) (= mark gnus-canceled-mark))))
+     (canceled (= mark gnus-canceled-mark)))
+    ((low (< score gnus-summary-default-score))
+     (high (> score gnus-summary-default-score)))))
+
+(defun gnus-visual-map-face-translation ()
+  (let ((props gnus-summary-highlight-properties)
+       (trans gnus-summary-highlight-translation)
+       map)
+    (while props)))
+      
 
 (defvar gnus-summary-highlight
   (cond ((not (eq gnus-display-type 'color))
                     (custom-face-lookup "SkyBlue" nil nil nil nil nil))
 
               (cons '(and (> score default) (= mark gnus-unread-mark))
-                    (custom-face-lookup "green" nil nil t nil nil))
+                    (custom-face-lookup "white" nil nil t nil nil))
               (cons '(and (< score default) (= mark gnus-unread-mark))
-                    (custom-face-lookup "green" nil nil nil t nil))
+                    (custom-face-lookup "white" nil nil nil t nil))
               (cons '(= mark gnus-unread-mark)
-                    (custom-face-lookup "green" nil nil nil nil nil))
+                    (custom-face-lookup "white" nil nil nil nil nil))
 
               (cons '(> score default) 'bold)
               (cons '(< score default) 'italic)))
               (cons '(= mark gnus-ancient-mark)
                     (custom-face-lookup "RoyalBlue" nil nil nil nil nil))
 
-              (cons '(and (> score default) (= mark gnus-unread-mark))
+              (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))
+              (cons '(and (< score default) (/= mark gnus-unread-mark))
                     (custom-face-lookup "DarkGreen" nil nil nil t nil))
-              (cons '(= mark gnus-unread-mark)
+              (cons '(/= mark gnus-unread-mark)
                     (custom-face-lookup "DarkGreen" nil nil nil nil nil))
 
               (cons '(> score default) 'bold)
@@ -137,9 +161,9 @@ The latter can be used like this:
               (list "Subject" nil 
                     (custom-face-lookup "firebrick" nil nil t t nil))
               (list "Newsgroups:.*," nil
-                    (custom-face-lookup "dark orange" nil nil t t nil))
+                    (custom-face-lookup "red" nil nil t t nil))
               (list ""
-                    (custom-face-lookup "purple" nil nil t nil nil)
+                    (custom-face-lookup "DarkGreen" nil nil t nil nil)
                     (custom-face-lookup "DarkGreen" nil nil nil t nil)))))
   "Alist of headers and faces used for highlighting them.
 The entries in the list has the form `(REGEXP NAME CONTENT)', where
@@ -174,7 +198,7 @@ will be used.")
     ("<URL:\\([^\n\r>]*\\)>" 0 t gnus-button-url 1)
     ;; Next regexp stolen from highlight-headers.el.
     ;; Modified by Vladimir Alexiev.
-    ("\\b\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\):\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*[-a-zA-Z0-9_=#$@~`%&*+|\\/]" 0 t gnus-button-url 0))
+    ("\\b\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*[-a-zA-Z0-9_=#$@~`%&*+|\\/]" 0 t gnus-button-url 0))
   "Alist of regexps matching buttons in an article.
 
 Each entry has the form (REGEXP BUTTON FORM CALLBACK PAR...), where
@@ -188,10 +212,14 @@ PAR: is a number of a regexp grouping whose text will be passed to CALLBACK.
 CALLBACK can also be a variable, in that case the value of that
 variable it the real callback function.")
 
-(defvar gnus-button-url 
-  (if window-system 'gnus-netscape-open-url
-    (and (fboundp 'w3-fetch) 'w3-fetch))
-  "Function to fetch URL.  
+(eval-when-compile
+  (defvar browse-url-browser-function))
+
+(defvar gnus-button-url
+  (cond ((boundp 'browse-url-browser-function) browse-url-browser-function)
+       ((eq window-system 'x) 'gnus-netscape-open-url)
+       ((fboundp 'w3-fetch) 'w3-fetch))
+  "*Function to fetch URL.
 The function will be called with one argument, the URL to fetch.
 Useful values of this function are:
 
@@ -230,6 +258,7 @@ gnus-netscape-start-url:
       '("Group"
        ["Read" gnus-group-read-group t]
        ["Select" gnus-group-select-group t]
+       ["See old articles" gnus-group-select-group-all t]
        ["Catch up" gnus-group-catchup-current t]
        ["Catch up all articles" gnus-group-catchup-current-all t]
        ["Check for new articles" gnus-group-get-new-news-this-group t]
@@ -717,7 +746,8 @@ gnus-netscape-start-url:
     (let ((face (and list (cdr (car list)))))
       (or (eobp)
          (eq face (get-text-property beg 'face))
-         (put-text-property beg end 'face face)))
+         (put-text-property beg end 'face 
+                            (if (boundp face) (symbol-value face) face))))
     (goto-char p)))
 
 ;;;
@@ -954,6 +984,16 @@ do the highlighting.  See the documentation for those functions."
   (gnus-article-highlight-signature)
   (gnus-article-add-buttons))
 
+(defun gnus-article-highlight-some ()
+  "Highlight current article.
+This function calls `gnus-article-highlight-headers',
+`gnus-article-highlight-signature', and `gnus-article-add-buttons' to
+do the highlighting.  See the documentation for those functions."
+  (interactive)
+  (gnus-article-highlight-headers)
+  (gnus-article-highlight-signature)
+  (gnus-article-add-buttons))
+
 (defun gnus-article-hide ()
   "Hide current article.
 This function calls `gnus-article-hide-headers',
@@ -1086,7 +1126,7 @@ External references are things like message-ids and URLs, as specified by
 
 (defun gnus-netscape-start-url (url)
   "Start netscape with URL."
-  (shell-command (concat "netscape " url "&")))
+  (start-process (concat "netscape" url) nil "netscape" url))
 
 ;;; External functions:
 
index 5d62e12..93b671c 100644 (file)
@@ -1092,6 +1092,7 @@ buffer. Typical functions that this hook may contain are
 `gnus-article-treat-overstrike' (turn \"^H_\" into bold characters).")
 (add-hook 'gnus-article-display-hook 'gnus-article-hide-headers-if-wanted)
 (add-hook 'gnus-article-display-hook 'gnus-article-treat-overstrike)
+(add-hook 'gnus-article-display-hook 'gnus-article-maybe-highlight)
 
 (defvar gnus-article-x-face-command
   "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -"
@@ -1305,10 +1306,11 @@ variable (string, integer, character, etc).")
 
 (defvar gnus-have-read-active-file nil)
 
-(defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
+(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.99.10"
+(defconst gnus-version "(ding) Gnus v0.99.11"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -1591,6 +1593,7 @@ Thank you for your help in stamping out bugs.
   (autoload 'gnus-article-push-button "gnus-vis" nil t)
   (autoload 'gnus-article-press-button "gnus-vis" nil t)
   (autoload 'gnus-article-highlight "gnus-vis" nil t)
+  (autoload 'gnus-article-highlight-some "gnus-vis" nil t)
   (autoload 'gnus-article-hide "gnus-vis" nil t)
   (autoload 'gnus-article-hide-signature "gnus-vis" nil t)
   (autoload 'gnus-article-highlight-headers "gnus-vis" nil t)
@@ -3815,6 +3818,11 @@ If argument ALL is non-nil, already read articles become readable."
   (interactive "P")
   (gnus-group-read-group all t))
 
+(defun gnus-group-select-group-all ()
+  "Select the current group and display all articles in it."
+  (interactive)
+  (gnus-group-select-group 'all))
+
 ;; Enter a group that is not in the group buffer. Non-nil is returned
 ;; if selection was successful.
 (defun gnus-group-read-ephemeral-group 
@@ -5123,12 +5131,14 @@ buffer.
 (defvar gnus-summary-thread-map nil)
 (defvar gnus-summary-goto-map nil)
 (defvar gnus-summary-exit-map nil)
-(defvar gnus-summary-various-map nil)
 (defvar gnus-summary-interest-map nil)
 (defvar gnus-summary-sort-map nil)
 (defvar gnus-summary-backend-map nil)
 (defvar gnus-summary-save-map nil)
 (defvar gnus-summary-wash-map nil)
+(defvar gnus-summary-wash-hide-map nil)
+(defvar gnus-summary-wash-highlight-map nil)
+(defvar gnus-summary-wash-time-map nil)
 (defvar gnus-summary-help-map nil)
 
 (put 'gnus-summary-mode 'mode-class 'special)
@@ -5337,31 +5347,39 @@ buffer.
 
   (define-prefix-command 'gnus-summary-wash-map)
   (define-key gnus-summary-mode-map "W" 'gnus-summary-wash-map)
-  (define-key gnus-summary-wash-map "h" 'gnus-article-hide-headers)
-  (define-key gnus-summary-wash-map "s" 'gnus-article-hide-signature)
-  (define-key gnus-summary-wash-map "c" 'gnus-article-hide-citation)
-  (define-key gnus-summary-wash-map "\C-c" 'gnus-article-hide-citation-maybe)
+
+  (define-prefix-command 'gnus-summary-wash-hide-map)
+  (define-key gnus-summary-wash-map "W" 'gnus-summary-wash-hide-map)
+  (define-key gnus-summary-wash-hide-map "a" 'gnus-article-hide)
+  (define-key gnus-summary-wash-hide-map "h" 'gnus-article-hide-headers)
+  (define-key gnus-summary-wash-hide-map "s" 'gnus-article-hide-signature)
+  (define-key gnus-summary-wash-hide-map "c" 'gnus-article-hide-citation)
+  (define-key gnus-summary-wash-hide-map "\C-c" 'gnus-article-hide-citation-maybe)
+
+  (define-prefix-command 'gnus-summary-wash-highlight-map)
+  (define-key gnus-summary-wash-map "H" 'gnus-summary-wash-highlight-map)
+  (define-key gnus-summary-wash-highlight-map "a" 'gnus-article-highlight)
+  (define-key gnus-summary-wash-highlight-map "h" 'gnus-article-highlight-headers)
+  (define-key gnus-summary-wash-highlight-map "c" 'gnus-article-highlight-citation)
+  (define-key gnus-summary-wash-highlight-map "s" 'gnus-article-highlight-signature)
+
+  (define-prefix-command 'gnus-summary-wash-time-map)
+  (define-key gnus-summary-wash-map "T" 'gnus-summary-wash-time-map)
+  (define-key gnus-summary-wash-map "u" 'gnus-article-date-ut)
+  (define-key gnus-summary-wash-map "l" 'gnus-article-date-local)
+  (define-key gnus-summary-wash-map "e" 'gnus-article-date-lapsed)
+
+  (define-key gnus-summary-wash-map "b" 'gnus-article-add-buttons)
   (define-key gnus-summary-wash-map "o" 'gnus-article-treat-overstrike)
   (define-key gnus-summary-wash-map "w" 'gnus-article-word-wrap)
-  (define-key gnus-summary-wash-map "M" 'gnus-article-remove-cr)
+  (define-key gnus-summary-wash-map "c" 'gnus-article-remove-cr)
   (define-key gnus-summary-wash-map "q" 'gnus-article-de-quoted-unreadable)
   (define-key gnus-summary-wash-map "f" 'gnus-article-display-x-face)
-  (define-key gnus-summary-wash-map "t" 'gnus-article-date-ut)
-  (define-key gnus-summary-wash-map "\C-t" 'gnus-article-date-local)
-  (define-key gnus-summary-wash-map "T" 'gnus-article-date-lapsed)
-
-  (define-key gnus-summary-wash-map "L" 'gnus-summary-stop-page-breaking)
+  (define-key gnus-summary-wash-map "l" 'gnus-summary-stop-page-breaking)
   (define-key gnus-summary-wash-map "r" 'gnus-summary-caesar-message)
-  (define-key gnus-summary-wash-map "G" 'gnus-summary-toggle-header)
+  (define-key gnus-summary-wash-map "t" 'gnus-summary-toggle-header)
   (define-key gnus-summary-wash-map "m" 'gnus-summary-toggle-mime)
 
-  (define-key gnus-summary-wash-map "A" 'gnus-article-highlight)
-  (define-key gnus-summary-wash-map "a" 'gnus-article-hide)
-  (define-key gnus-summary-wash-map "H" 'gnus-article-highlight-headers)
-  (define-key gnus-summary-wash-map "C" 'gnus-article-highlight-citation)
-  (define-key gnus-summary-wash-map "S" 'gnus-article-highlight-signature)
-  (define-key gnus-summary-wash-map "b" 'gnus-article-add-buttons)
-
 
   (define-prefix-command 'gnus-summary-help-map)
   (define-key gnus-summary-mode-map "H" 'gnus-summary-help-map)
@@ -5399,9 +5417,7 @@ buffer.
 
   (define-key gnus-summary-mode-map "X" 'gnus-uu-extract-map)
 
-  (define-prefix-command 'gnus-summary-various-map)
-  (define-key gnus-summary-mode-map "V" 'gnus-summary-various-map)
-    (define-key gnus-summary-mode-map "\M-&" 'gnus-summary-universal-argument)
+  (define-key gnus-summary-mode-map "\M-&" 'gnus-summary-universal-argument)
 ;  (define-key gnus-summary-various-map "\C-s" 'gnus-summary-search-article-forward)
 ;  (define-key gnus-summary-various-map "\C-r" 'gnus-summary-search-article-backward)
 ;  (define-key gnus-summary-various-map "r" 'gnus-summary-refer-article)
@@ -5412,7 +5428,7 @@ buffer.
 ;  (define-key gnus-summary-various-map "k" 'gnus-summary-edit-local-kill)
 ;  (define-key gnus-summary-various-map "K" 'gnus-summary-edit-global-kill)
 
-  (define-key gnus-summary-various-map "S" 'gnus-summary-score-map)
+  (define-key gnus-summary-mode-map "V" 'gnus-summary-score-map)
 
 ;  (define-prefix-command 'gnus-summary-sort-map)
 ;  (define-key gnus-summary-various-map "s" 'gnus-summary-sort-map)
@@ -5881,7 +5897,6 @@ If NO-ARTICLE is non-nil, no article is selected initially."
   ;; Generate the summary buffer.
   (let ((buffer-read-only nil))
     (erase-buffer)
-    (gnus-message 5 "Threading...")
     (gnus-summary-prepare-threads 
      (if gnus-show-threads
         (gnus-gather-threads 
@@ -5892,7 +5907,6 @@ If NO-ARTICLE is non-nil, no article is selected initially."
             (gnus-make-threads))))
        gnus-newsgroup-headers)
      'cull)
-    (gnus-message 5 "Threading...done")
     (gnus-summary-update-lines)
     ;; Remove the final newline.
     ;;(goto-char (point-max))
@@ -5941,6 +5955,7 @@ If NO-ARTICLE is non-nil, no article is selected initially."
   ;; `gnus-get-newsgroup-headers' and builds the trees. First we go
   ;; through the dependecies in the hash table and finds all the
   ;; roots. Roots do not refer back to any valid articles.
+  (gnus-message 6 "Threading...")
   (let (roots new-roots)
     (and gnus-fetch-old-headers
         (eq gnus-headers-retrieved-by 'nov)
@@ -5980,17 +5995,21 @@ If NO-ARTICLE is non-nil, no article is selected initially."
        (setq r (cdr r))))
 
     (setq roots (nconc new-roots roots))
-    
-    (mapcar 'gnus-trim-thread
-           (apply 'append
-                  (mapcar 'gnus-cut-thread
-                          (mapcar 'gnus-make-sub-thread roots))))))
+
+    (prog1
+       (mapcar 'gnus-trim-thread
+               (apply 'append
+                      (mapcar 'gnus-cut-thread
+                              (mapcar 'gnus-make-sub-thread roots))))
+      (gnus-message 6 "Threading...done"))))
+
   
 (defun gnus-make-threads-and-expunge ()
   ;; This function takes the dependencies already made by 
   ;; `gnus-get-newsgroup-headers' and builds the trees. First we go
   ;; through the dependecies in the hash table and finds all the
   ;; roots. Roots do not refer back to any valid articles.
+  (gnus-message 6 "Threading...")
   (let ((default (or gnus-summary-default-score 0))
        (below gnus-summary-expunge-below)
        roots article new-roots)
@@ -6096,11 +6115,14 @@ If NO-ARTICLE is non-nil, no article is selected initially."
        (setq r (cdr r))))
 
     (setq roots (nconc new-roots roots))
-    
-    (mapcar 'gnus-trim-thread
-           (apply 'append
-                  (mapcar 'gnus-cut-thread
-                          (mapcar 'gnus-make-sub-thread roots))))))
+
+    (prog1
+       (mapcar 'gnus-trim-thread
+               (apply 'append
+                      (mapcar 'gnus-cut-thread
+                              (mapcar 'gnus-make-sub-thread roots))))
+      (gnus-message 6 "Threading...done"))))
+
   
 (defun gnus-cut-thread (thread)
   ;; Remove leaf dormant or ancient articles from THREAD.
@@ -6306,6 +6328,7 @@ Unscored articles will be counted as having a score of zero."
   "Prepare summary buffer from THREADS and indentation LEVEL.  
 THREADS is either a list of `(PARENT [(CHILD1 [(GRANDCHILD ...]...) ...])'  
 or a straight list of headers."
+  (message "Generating summary...")
   (let ((level 0)
        thread header number subject stack state gnus-tmp-gathered)
     (if (vectorp (car threads))
@@ -6428,7 +6451,9 @@ or a straight list of headers."
        (if (nth 1 thread) 
            (setq stack (cons (cons (max 0 level) (nthcdr 1 thread)) stack)))
        (setq level (1+ level))
-       (setq threads (cdr (car thread)))))))
+       (setq threads (cdr (car thread))))))
+  (message "Generating summary...done"))
+
 
 
 (defun gnus-summary-prepare-unthreaded (headers &optional cull)
@@ -8578,10 +8603,9 @@ forward."
      gnus-article-buffer
      (save-restriction
        (widen)
-       (let ((last (point)))
+       (let ((start (window-start)))
         (news-caesar-buffer-body arg)
-        (goto-char last)
-        (recenter 0))))))
+        (set-window-start (get-buffer-window (current-buffer)) start))))))
 
 (defun gnus-summary-stop-page-breaking ()
   "Stop page breaking in the current article."
@@ -11085,7 +11109,7 @@ how much time has lapsed since DATE."
   (gnus-article-date-ut 'lapsed))
 
 (defun gnus-article-maybe-highlight ()
-  (if gnus-visual (gnus-article-highlight)))
+  (if gnus-visual (gnus-article-highlight-some)))
 
 ;; Article savers.
 
@@ -12638,8 +12662,7 @@ Returns whether the updating was successful."
          (gnus-check-news-server method)
          (cond 
           ((and (eq gnus-read-active-file 'some)
-                (gnus-check-backend-function
-                 'retrieve-groups (car method)))
+                (gnus-check-backend-function 'retrieve-groups (car method)))
            (let ((newsrc (cdr gnus-newsrc-alist))
                  (gmethod (gnus-server-get-method nil method))
                  groups)
@@ -12789,34 +12812,36 @@ Returns whether the updating was successful."
                     (gnus-group-prefixed-name "" method))))
 
     (goto-char (point-min))
-    (condition-case ()
-       ;; We split this into to separate loops, one with the prefix
-       ;; and one without to speed the reading up somewhat.
-       (if prefix
-           (let (min max opoint)
-             (while (not (eobp))
-               (read cur) (read cur)
-               (setq min (read cur)
-                     max (read cur)
-                     opoint (point))
-               (skip-chars-forward " \t")
-               (insert prefix)
-               (goto-char opoint)
-               (set (let ((obarray hashtb)) (read cur)) 
-                    (cons min max))
-               (forward-line 1)))
-         (let (min max)
-           (while (not (eobp))
+    ;; We split this into to separate loops, one with the prefix
+    ;; and one without to speed the reading up somewhat.
+    (if prefix
+       (let (min max opoint group)
+         (while (not (eobp))
+           (condition-case ()
+               (progn
+                 (read cur) (read cur)
+                 (setq min (read cur)
+                       max (read cur)
+                       opoint (point))
+                 (skip-chars-forward " \t")
+                 (insert prefix)
+                 (goto-char opoint)
+                 (set (let ((obarray hashtb)) (read cur)) 
+                      (cons min max)))
+             (error (if group (set group nil))))
+           (forward-line 1)))
+      (let (min max group)
+       (while (not (eobp))
+         (condition-case ()
              (if (= (following-char) ?2)
                  (progn
                    (read cur) (read cur)
                    (setq min (read cur)
                          max (read cur))
-                   (set (let ((obarray hashtb)) (read cur)) 
+                   (set (setq group (let ((obarray hashtb)) (read cur)))
                         (cons min max))))
-             (forward-line 1))))
-      (error 
-       (progn (ding) (gnus-message 3 "Possible error in active file."))))))
+           (error (if group (set group nil))))
+         (forward-line 1))))))
 
 (defun gnus-read-newsrc-file (&optional force)
   "Read startup file.
index d1a413f..ed82a6a 100644 (file)
@@ -316,14 +316,14 @@ instead call function `nntp-status-message' to get status message.")
        ;; Now all replies are received. We remove CRs.
        (goto-char (point-min))
        (while (search-forward "\r" nil t)
-         (replace-match ""))
+         (replace-match "" t t))
 
        (if nntp-server-list-active-group
            (progn
              ;; We have read active entries, so we just delete the
              ;; superfluos gunk.
              (goto-char (point-min))
-             (while (re-search-forward "^[\\.234]" nil t)
+             (while (re-search-forward "^[.2-5]" nil t)
                (delete-region (match-beginning 0) 
                               (progn (forward-line 1) (point))))
              'active)
index 404afd0..4553c2e 100644 (file)
@@ -4870,8 +4870,8 @@ Why isn't anything real anymore? How did we get here?
 @section Various Article Stuff 
 
 @table @kbd
-@item W L
-@kindex W L (Summary)
+@item W l
+@kindex W l (Summary)
 @findex gnus-summary-stop-page-breaking
 Remove page breaks from the current article
 (@code{gnus-summary-stop-page-breaking}).
@@ -4892,8 +4892,8 @@ Do a Caesar rotate (rot13) on the article buffer
 given a prefix, don't actually refetch any articles, just jump to the
 current article and configure the windows to display the current
 article.
-@item W G
-@kindex W G (Summary)
+@item W t
+@kindex W t (Summary)
 @findex gnus-summary-toggle-header
 Toggle whether to display all headers in the article buffer
 (@code{gnus-summary-toggle-header}). 
@@ -4907,16 +4907,16 @@ Toggle whether to run the article through @sc{mime} before displaying
 There's a battery of commands for washing the article buffer:
 
 @table @kbd
-@item W h
-@kindex W h (Summary)
+@item W h
+@kindex W h (Summary)
 @findex gnus-article-hide-headers
 Hide headers (@code{gnus-article-hide-headers}).
-@item W s
-@kindex W s (Summary)
+@item W s
+@kindex W s (Summary)
 @findex gnus-article-hide-signature
 Hide signature (@code{gnus-article-hide-signature}).
-@item W c
-@kindex W c (Summary)
+@item W c
+@kindex W c (Summary)
 @findex gnus-article-hide-citation
 Hide citation (@code{gnus-article-hide-citation}).
 @item W o
@@ -4927,8 +4927,8 @@ Treat overstrike (@code{gnus-article-treat-overstrike}).
 @kindex W w (Summary)
 @findex gnus-article-word-wrap
 Do word wrap (@code{gnus-article-word-wrap}).
-@item W M
-@kindex W M (Summary)
+@item W c
+@kindex W c (Summary)
 @findex gnus-article-remove-cr
 Remove CR (@code{gnus-article-remove-cr}).
 @item W q
@@ -4949,6 +4949,45 @@ this variable is a string, this string will be executed in a sub-shell.
 If it is a function, this function will be called with the face as the
 argument. If the @code{gnus-article-x-face-too-ugly} (which is a regexp)
 matches the @code{From} header, the face will not be shown.
+
+@item W H a
+@kindex W H a
+@findex gnus-article-highlight
+Highlight the current article (@code{gnus-article-highlight}).
+
+@item W H h
+@kindex W H h
+@findex gnus-article-highlight-headers
+Highlight the headers (@code{gnus-article-highlight-headers}).
+
+@item W H c
+@kindex W H c
+@findex gnus-article-highlight-citation
+Highlight cited text (@code{gnus-article-highlight-citation}).
+
+@item W H s
+@kindex W H s
+@findex gnus-article-highlight-signature
+Highlight the signature (@code{gnus-article-highlight-signature}).
+
+@item W T u
+@kindex W T u
+@findex gnus-article-date-ut
+Display the date in UT (aka. GMT, aka ZULU)
+(@code{gnus-article-date-ut}). 
+
+@item W T l
+@kindex W T l
+@findex gnus-article-date-local
+Display the date in the local timezone (@code{gnus-article-date-local}).
+
+@item W T e
+@kindex W T e
+@findex gnus-article-date-lapsed
+Say how much time has (e)lapsed between the article was posted and now
+(@code{gnus-article-date-lapsed}).
+
+
 @end table
 
 @node Summary Sorting
@@ -5078,38 +5117,38 @@ score file the current one.
 General score commands that don't actually change the score file:
 
 @table @kbd
-@item V s
-@kindex V s (Summary)
+@item V s
+@kindex V s (Summary)
 @findex gnus-summary-set-score
 Set the score of the current article (@code{gnus-summary-set-score}).  
-@item V S S
-@kindex V S (Summary)
+@item V S
+@kindex V S (Summary)
 @findex gnus-summary-current-score
 Display the score of the current article
 (@code{gnus-summary-current-score}).   
-@item V t
-@kindex V t (Summary)
+@item V t
+@kindex V t (Summary)
 @findex gnus-score-find-trace
 Display all score rules that have been used on the current article
 (@code{gnus-score-find-trace}).   
-@item V a
-@kindex V a (Summary)
+@item V a
+@kindex V a (Summary)
 @findex gnus-summary-score-entry
 Add a new score entry, and allow specifying all elements 
 (@code{gnus-summary-score-entry}).
-@item V c
-@kindex V c (Summary)
+@item V c
+@kindex V c (Summary)
 @findex gnus-score-change-score-file
 Make a different score file the current
 (@code{gnus-score-change-score-file}). 
-@item V e
-@kindex V e (Summary)
+@item V e
+@kindex V e (Summary)
 @findex gnus-score-edit-alist
 Edit the current score file (@code{gnus-score-edit-alist}).  You will be
 popped into a @code{gnus-score-mode} buffer (@pxref{Score File
 Editing}).
-@item V f
-@kindex V f (Summary)
+@item V f
+@kindex V f (Summary)
 @findex gnus-score-edit-file
 Edit a score file and make this score file the current one
 (@code{gnus-score-edit-file}).
@@ -5128,13 +5167,13 @@ Lower the score of the current article
 The rest of these commands modify the local score file.
 
 @table @kbd
-@item V m
-@kindex V m (Summary)
+@item V m
+@kindex V m (Summary)
 @findex gnus-score-set-mark-below
 Prompt for a score, and mark all articles with a score below this as
 read (@code{gnus-score-set-mark-below}).
-@item V E
-@kindex V E (Summary)
+@item V E
+@kindex V E (Summary)
 @findex gnus-score-set-expunge-below
 Expunge all articles with a score below the default score (or the
 numeric prefix) (@code{gnus-score-set-expunge-below}).