-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.
(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.")
(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)
(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)
(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
("<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
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:
'("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]
(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)))
;;;
(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',
(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:
`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 -"
(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
(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)
(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
(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)
(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)
(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)
; (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)
;; 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
(gnus-make-threads))))
gnus-newsgroup-headers)
'cull)
- (gnus-message 5 "Threading...done")
(gnus-summary-update-lines)
;; Remove the final newline.
;;(goto-char (point-max))
;; `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)
(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)
(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.
"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))
(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)
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."
(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.
(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)
(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.
;; 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)
@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}).
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}).
There's a battery of commands for washing the article buffer:
@table @kbd
-@item W h
-@kindex W h (Summary)
+@item W W h
+@kindex W W h (Summary)
@findex gnus-article-hide-headers
Hide headers (@code{gnus-article-hide-headers}).
-@item W s
-@kindex W s (Summary)
+@item W W s
+@kindex W W s (Summary)
@findex gnus-article-hide-signature
Hide signature (@code{gnus-article-hide-signature}).
-@item W c
-@kindex W c (Summary)
+@item W W c
+@kindex W W c (Summary)
@findex gnus-article-hide-citation
Hide citation (@code{gnus-article-hide-citation}).
@item W o
@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
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
General score commands that don't actually change the score file:
@table @kbd
-@item V S s
-@kindex V S 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 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 S t
-@kindex V S 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 S a
-@kindex V S 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 S c
-@kindex V S 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 S e
-@kindex V S 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 S f
-@kindex V S 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}).
The rest of these commands modify the local score file.
@table @kbd
-@item V S m
-@kindex V S 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 S E
-@kindex V S 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}).