diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/ChangeLog dgnus/lisp/ChangeLog *** pub/dgnus/lisp/ChangeLog Sun Mar 12 16:38:55 1995 --- dgnus/lisp/ChangeLog Wed Mar 15 14:52:33 1995 *************** *** 1,3 **** --- 1,59 ---- + Wed Mar 15 00:53:47 1995 Lars Ingebrigtsen + + * gnus.el (gnus-post-news): Would bug out when posting from the + group buffer. + + * gnus-uu.el (gnus-uu-grab-articles): Don't mark ticked (etc) + articles as read. + + * gnus.el (gnus-find-method-for-group): Before no groups were + entered, a bug here would result in an incorrect error message + when the nntp server couldn't be contacted. + (gnus-summary-mode-map): Several changes. + (gnus-read-descriptions-file): Would delete lines that were valid. + + Tue Mar 14 23:11:30 1995 Lars Ingebrigtsen + + * gnus.el (gnus-summary-next-article): Enable the use of C-n and + C-p when choosing "next group" in the summary buffer. + (gnus-summary-recenter): Behaves in a slightly modified + fashion. Now also works with absolutely all sizes. + + Mon Mar 13 11:13:41 1995 Lars Ingebrigtsen + + * gnus.el (gnus-summary-catchup): Would mark all as read, even if + to-here was non-nil. + (gnus-summary-catchup-to-here): Disable prompting. + (gnus-summary-update-lines): Do updateing even with gnus-visual + nil. + (gnus-score-load-file): New atom - mark-and-expunge. + + * nnmail.el (nnmail-split-methods): New semantics. + (nnmail-article-group): Use them. + + * gnus.el (gnus-group-list-matching): Fix and bound to keys and + menus. + (gnus-group-list-all-matching): New command. + (gnus-group-sort-groups): Would make all groups disappear. + + * (-request-move-article, -request-accept-article): Only do saving + after the last article has been moved. + + * nnml.el (nnml-save-nov): Only save modified buffers. + + * gnus.el (gnus-summary-move-article): Only save nov files once + when moving many articles. + (gnus-post-news): Did not allow interactive calls. + + Sun Mar 12 16:52:50 1995 Lars Ingebrigtsen + + * gnus.el (gnus-mail-forward-using-mail): Would not bind + `gnus-mail-send-and-exit' to `C-c C-c'. + + Sun Mar 12 16:30:28 1995 Lars Ingebrigtsen + + * gnus.el: 0.33 is released. + Sun Mar 12 09:42:11 1995 Lars Ingebrigtsen * gnus.el (gnus-summary-prepare-threads, gnus-make-threads): diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/gnus-uu.el dgnus/lisp/gnus-uu.el *** pub/dgnus/lisp/gnus-uu.el Sun Mar 12 16:38:50 1995 --- dgnus/lisp/gnus-uu.el Wed Mar 15 14:52:34 1995 *************** *** 867,873 **** (setq article-buffer gnus-article-buffer)) (buffer-disable-undo article-buffer) ! (gnus-summary-mark-as-read article) (and (memq article gnus-newsgroup-processable) (gnus-summary-remove-process-mark article)) --- 867,874 ---- (setq article-buffer gnus-article-buffer)) (buffer-disable-undo article-buffer) ! ;; Mark article as read. ! (run-hooks 'gnus-mark-article-hook) (and (memq article gnus-newsgroup-processable) (gnus-summary-remove-process-mark article)) *************** *** 930,936 **** (erase-buffer) (insert-buffer-substring article-buffer) (goto-char 1)))) - (run-hooks 'gnus-mark-article-hook) (if result-files () --- 931,936 ---- diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/gnus-visual.el dgnus/lisp/gnus-visual.el *** pub/dgnus/lisp/gnus-visual.el Sun Mar 12 16:38:50 1995 --- dgnus/lisp/gnus-visual.el Mon Mar 13 12:13:12 1995 *************** *** 93,98 **** --- 93,99 ---- ["Describe all groups" gnus-group-describe-all-groups t] ["Group apropos" gnus-group-apropos t] ["Group and description apropos" gnus-group-description-apropos t] + ["List groups matching..." gnus-group-list-matching t] ["Add a foreign group" gnus-group-add-group t] ["Edit a group entry" gnus-group-edit-group t] ["Add a directory group" gnus-group-make-directory-group t] diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/gnus.el dgnus/lisp/gnus.el *** pub/dgnus/lisp/gnus.el Sun Mar 12 16:38:51 1995 --- dgnus/lisp/gnus.el Wed Mar 15 17:34:41 1995 *************** *** 408,413 **** --- 408,418 ---- `mail-extract-address-components', which works very nicely, but is slower.") + ;; Added by Ethan Bradford . + (defvar gnus-mail-courtesy-message + "The following message is a courtesy copy of a response which was posted.\n\n" + "This is inserted at the start of a mailed copy of a posted message.") + ;; Added by Per Abrahamsen . (defvar gnus-summary-same-subject "" "String indicating that the current article has the same subject as the previous.") *************** *** 1162,1168 **** (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.33" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1167,1173 ---- (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.34" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 1962,1967 **** --- 1967,1973 ---- gnus-newsgroup-headers nil gnus-score-cache nil gnus-newsgroup-headers-hashtb-by-number nil + gnus-newsgroup-name nil gnus-current-select-method nil) ;; Kill the startup file. (and gnus-current-startup-file *************** *** 2388,2393 **** --- 2394,2400 ---- ;;; (defvar gnus-group-make-map nil) + (defvar gnus-group-list-map nil) (if gnus-group-mode-map nil *************** *** 2456,2461 **** --- 2463,2479 ---- (define-key gnus-group-make-map "k" 'gnus-group-make-kiboze-group) (define-key gnus-group-make-map "m" 'gnus-group-make-group) (define-key gnus-group-make-map "e" 'gnus-group-edit-group) + + (define-prefix-command 'gnus-group-list-map) + (define-key gnus-group-mode-map "G" 'gnus-group-list-map) + (define-key gnus-group-list-map "k" 'gnus-group-list-killed) + (define-key gnus-group-list-map "z" 'gnus-group-list-zombies) + (define-key gnus-group-list-map "s" 'gnus-group-list-groups) + (define-key gnus-group-list-map "u" 'gnus-group-list-all-groups) + (define-key gnus-group-list-map "a" 'gnus-group-apropos) + (define-key gnus-group-list-map "d" 'gnus-group-description-apropos) + (define-key gnus-group-list-map "m" 'gnus-group-list-matching) + (define-key gnus-group-list-map "M" 'gnus-group-list-all-matching) ) (defun gnus-group-mode () *************** *** 2656,2665 **** ;; Adjust cursor point. (gnus-group-position-cursor)))) ! (defun gnus-group-prepare-flat (level &optional all lowest) "List all newsgroups with unread articles of level LEVEL or lower. If ALL is non-nil, list groups that have no unread articles. ! If LOWEST is non-nil, list all newsgroups of level LOWEST or higher." (set-buffer gnus-group-buffer) (let ((buffer-read-only nil) (newsrc (cdr gnus-newsrc-assoc)) --- 2674,2684 ---- ;; Adjust cursor point. (gnus-group-position-cursor)))) ! (defun gnus-group-prepare-flat (level &optional all lowest regexp) "List all newsgroups with unread articles of level LEVEL or lower. If ALL is non-nil, list groups that have no unread articles. ! If LOWEST is non-nil, list all newsgroups of level LOWEST or higher. ! If REGEXP, only list groups matching REGEXP." (set-buffer gnus-group-buffer) (let ((buffer-read-only nil) (newsrc (cdr gnus-newsrc-assoc)) *************** *** 2674,2679 **** --- 2693,2700 ---- newsrc (cdr newsrc) unread (car (gnus-gethash group gnus-newsrc-hashtb))) (and unread ; This group might be bogus + (or (not regexp) + (string-match regexp group)) (<= (setq clevel (car (cdr info))) level) (>= clevel lowest) (or all ; We list all groups? *************** *** 2686,2701 **** ;; List dead groups. (and (>= level 8) (<= lowest 8) (gnus-group-prepare-flat-list-dead ! (setq gnus-zombie-list (sort gnus-zombie-list 'string<)) 8 ?Z)) (and (>= level 9) (<= lowest 9) (gnus-group-prepare-flat-list-dead ! (setq gnus-killed-list (sort gnus-killed-list 'string<)) 9 ?K)) (gnus-group-set-mode-line) (setq gnus-have-all-newsgroups all) (run-hooks 'gnus-group-prepare-hook))) ! (defun gnus-group-prepare-flat-list-dead (groups level mark) ;; List zombies and killed lists somehwat faster, which was ;; suggested by Jack Vinson . It does ;; this by ignoring the group format specification altogether. --- 2707,2724 ---- ;; List dead groups. (and (>= level 8) (<= lowest 8) (gnus-group-prepare-flat-list-dead ! (setq gnus-zombie-list (sort gnus-zombie-list 'string<)) 8 ?Z ! regexp)) (and (>= level 9) (<= lowest 9) (gnus-group-prepare-flat-list-dead ! (setq gnus-killed-list (sort gnus-killed-list 'string<)) 9 ?K ! regexp)) (gnus-group-set-mode-line) (setq gnus-have-all-newsgroups all) (run-hooks 'gnus-group-prepare-hook))) ! (defun gnus-group-prepare-flat-list-dead (groups level mark regexp) ;; List zombies and killed lists somehwat faster, which was ;; suggested by Jack Vinson . It does ;; this by ignoring the group format specification altogether. *************** *** 2703,2715 **** (while groups (setq group (car groups) groups (cdr groups)) ! (setq beg (point)) ! (insert (format " %c *: %s\n" mark group)) ! (add-text-properties ! beg (1+ beg) ! (list 'gnus-group (intern group) ! 'gnus-unread t ! 'gnus-level level))))) (defun gnus-group-real-name (group) "Find the real name of a foreign newsgroup." --- 2726,2741 ---- (while groups (setq group (car groups) groups (cdr groups)) ! (if (or (not regexp) ! (string-match regexp group)) ! (progn ! (setq beg (point)) ! (insert (format " %c *: %s\n" mark group)) ! (add-text-properties ! beg (1+ beg) ! (list 'gnus-group (intern group) ! 'gnus-unread t ! 'gnus-level level))))))) (defun gnus-group-real-name (group) "Find the real name of a foreign newsgroup." *************** *** 3212,3217 **** --- 3238,3244 ---- (setq gnus-newsrc-assoc (sort (cdr gnus-newsrc-assoc) gnus-group-sort-function)) (gnus-make-hashtable-from-newsrc-alist) + (gnus-get-unread-articles 6) (gnus-group-list-groups 5)) (defun gnus-group-sort-by-alphabet (info1 info2) *************** *** 3619,3678 **** (error "Couldn't request descriptions file")) (gnus-group-apropos regexp t)) ! ;; Written by Per Abrahamsen . ! (defun gnus-group-list-matching (regexp) ! "List all newsgroups with unread articles that match REGEXP." ! (interactive "sList newsgroups matching: ") ! (set-buffer gnus-group-buffer) ! (let ((buffer-read-only nil) ! (newsrc (cdr gnus-newsrc-assoc)) ! (zombie gnus-zombie-list) ! (killed gnus-killed-list) ! info unread active group) ! (erase-buffer) ! ! ;; List alive newsgroups. ! (while newsrc ! (setq info (car newsrc) ! group (car info) ! newsrc (cdr newsrc) ! unread (car (gnus-gethash group gnus-newsrc-hashtb))) ! (if (and unread ; This group might be bogus ! (string-match regexp group)) ! (gnus-group-insert-group-line ! nil group (car (cdr info)) (nth 3 info) unread ! (nth 4 info)))) ! ! ;; List zombies and killed lists. ! (let ((lists (list 'gnus-zombie-list 'gnus-killed-list)) ! mark b) ! (while lists ! (if (eq (car lists) 'gnus-zombie-list) ! (setq mark ?Z) ! (setq mark ?K)) ! (setq newsrc (set (car lists) ! (sort (symbol-value (car lists)) ! (function string<)))) ! (while newsrc ! (setq group (car newsrc) ! newsrc (cdr newsrc)) ! (if (not (string-match regexp group)) ! () ! (setq b (point)) ! (insert (format " %c *: %s" mark group)) ! (add-text-properties ! b (1+ b) ! (list 'gnus-group (intern group) ! 'gnus-unread t ! 'gnus-level (if (= mark ?Z) 8 9))))) ! (setq lists (cdr lists)))) ! ! (gnus-group-set-mode-line) ! (setq gnus-have-all-newsgroups t) ! (run-hooks 'gnus-group-prepare-hook)) (goto-char (point-min)) (gnus-group-position-cursor)) ;; Suggested by Jack Vinson . (defun gnus-group-save-newsrc () "Save the Gnus startup files." --- 3646,3671 ---- (error "Couldn't request descriptions file")) (gnus-group-apropos regexp t)) ! ;; Suggested by Per Abrahamsen . ! (defun gnus-group-list-matching (level regexp &optional all lowest) ! "List all groups with unread articles that match REGEXP. ! If the prefix LEVEL is non-nil, it should be a number that says which ! level to cut off listing groups. ! If ALL, also list groups with no unread articles. ! If LOWEST, don't list groups with level lower than LOWEST." ! (interactive "P\nsList newsgroups matching: ") ! (gnus-group-prepare-flat (or level 5) all (or lowest 1) regexp) (goto-char (point-min)) (gnus-group-position-cursor)) + (defun gnus-group-list-all-matching (level regexp &optional lowest) + "List all groups that match REGEXP. + If the prefix LEVEL is non-nil, it should be a number that says which + level to cut off listing groups. + If LOWEST, don't list groups with level lower than LOWEST." + (interactive "P\nsList newsgroups matching: ") + (gnus-group-list-matching (or level 9) regexp t lowest)) + ;; Suggested by Jack Vinson . (defun gnus-group-save-newsrc () "Save the Gnus startup files." *************** *** 3973,3978 **** --- 3966,3972 ---- (defvar gnus-summary-mode-map nil) (defvar gnus-summary-mark-map nil) + (defvar gnus-summary-mscore-map nil) (defvar gnus-summary-send-map nil) (defvar gnus-summary-extract-map nil) (defvar gnus-summary-extract-view-map nil) *************** *** 4085,4091 **** (define-key gnus-summary-mode-map "m" 'gnus-summary-mail-other-window) (define-key gnus-summary-mode-map "a" 'gnus-summary-post-news) (define-key gnus-summary-mode-map "x" 'gnus-summary-delete-marked-as-read) ! (define-key gnus-summary-mode-map "X" 'gnus-summary-remove-lines-marked-with) (define-key gnus-summary-mode-map "s" 'gnus-summary-isearch-article) (define-key gnus-summary-mode-map "t" 'gnus-summary-toggle-header) (define-key gnus-summary-mode-map "g" 'gnus-summary-show-article) --- 4079,4085 ---- (define-key gnus-summary-mode-map "m" 'gnus-summary-mail-other-window) (define-key gnus-summary-mode-map "a" 'gnus-summary-post-news) (define-key gnus-summary-mode-map "x" 'gnus-summary-delete-marked-as-read) ! ; (define-key gnus-summary-mode-map "X" 'gnus-summary-remove-lines-marked-with) (define-key gnus-summary-mode-map "s" 'gnus-summary-isearch-article) (define-key gnus-summary-mode-map "t" 'gnus-summary-toggle-header) (define-key gnus-summary-mode-map "g" 'gnus-summary-show-article) *************** *** 4118,4125 **** (define-key gnus-summary-mark-map "C" 'gnus-summary-catchup) (define-key gnus-summary-mark-map "H" 'gnus-summary-catchup-to-here) (define-key gnus-summary-mark-map "\C-c" 'gnus-summary-catchup-all) ! (define-key gnus-summary-mark-map "a" 'gnus-summary-clear-above) ! (define-key gnus-summary-mark-map "A" 'gnus-summary-tick-above) (define-prefix-command 'gnus-summary-process-map) (define-key gnus-summary-mark-map "p" 'gnus-summary-process-map) --- 4112,4124 ---- (define-key gnus-summary-mark-map "C" 'gnus-summary-catchup) (define-key gnus-summary-mark-map "H" 'gnus-summary-catchup-to-here) (define-key gnus-summary-mark-map "\C-c" 'gnus-summary-catchup-all) ! ! (define-prefix-command 'gnus-summary-mscore-map) ! (define-key gnus-summary-mark-map "s" 'gnus-summary-mscore-map) ! (define-key gnus-summary-mscore-map "c" 'gnus-summary-clear-above) ! (define-key gnus-summary-mscore-map "u" 'gnus-summary-tick-above) ! (define-key gnus-summary-mscore-map "m" 'gnus-summary-mark-above) ! (define-key gnus-summary-mscore-map "k" 'gnus-summary-kill-below) (define-prefix-command 'gnus-summary-process-map) (define-key gnus-summary-mark-map "p" 'gnus-summary-process-map) *************** *** 4250,4262 **** (define-prefix-command 'gnus-summary-various-map) (define-key gnus-summary-mode-map "V" 'gnus-summary-various-map) (define-key gnus-summary-various-map "u" 'gnus-summary-universal-argument) ! (define-key gnus-summary-various-map "\M-s" 'gnus-summary-search-article-forward) ! (define-key gnus-summary-various-map "\M-r" 'gnus-summary-search-article-backward) (define-key gnus-summary-various-map "r" 'gnus-summary-refer-article) (define-key gnus-summary-various-map "&" 'gnus-summary-execute-command) ! (define-key gnus-summary-various-map "\C-t" 'gnus-summary-toggle-truncation) ! (define-key gnus-summary-various-map "=" 'gnus-summary-expand-window) ! (define-key gnus-summary-various-map "\C-s" 'gnus-summary-reselect-current-group) (define-key gnus-summary-various-map "g" 'gnus-summary-rescan-group) (define-key gnus-summary-various-map "o" 'gnus-summary-save-article) (define-key gnus-summary-various-map "\C-o" 'gnus-summary-save-article-mail) --- 4249,4261 ---- (define-prefix-command 'gnus-summary-various-map) (define-key gnus-summary-mode-map "V" 'gnus-summary-various-map) (define-key gnus-summary-various-map "u" '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 "&" 'gnus-summary-execute-command) ! (define-key gnus-summary-various-map "T" 'gnus-summary-toggle-truncation) ! (define-key gnus-summary-various-map "e" 'gnus-summary-expand-window) ! (define-key gnus-summary-various-map "S" 'gnus-summary-reselect-current-group) (define-key gnus-summary-various-map "g" 'gnus-summary-rescan-group) (define-key gnus-summary-various-map "o" 'gnus-summary-save-article) (define-key gnus-summary-various-map "\C-o" 'gnus-summary-save-article-mail) *************** *** 4268,4273 **** --- 4267,4273 ---- (define-key gnus-summary-various-map "i" 'gnus-info-find-node) (define-key gnus-summary-various-map "S" 'gnus-summary-set-score) (define-key gnus-summary-various-map "b" 'gnus-summary-set-mark-below) + (define-key gnus-summary-various-map "B" 'gnus-summary-expunge-below) (define-key gnus-summary-various-map "D" 'gnus-summary-enter-digest-group) (define-prefix-command 'gnus-summary-sort-map) *************** *** 4644,4652 **** (defun gnus-summary-update-lines () ;; Rehighlight summary buffer according to `gnus-summary-highlight'. ! (and gnus-visual ! gnus-visual-summary-update-hook ! (save-excursion (set-buffer gnus-summary-buffer) (goto-char (point-min)) (while (not (eobp)) --- 4644,4650 ---- (defun gnus-summary-update-lines () ;; Rehighlight summary buffer according to `gnus-summary-highlight'. ! (and (save-excursion (set-buffer gnus-summary-buffer) (goto-char (point-min)) (while (not (eobp)) *************** *** 5929,5947 **** gnus-summary-default-score)) (defun gnus-summary-recenter () ! "Center point in summary window." ;; Suggested by earle@mahendo.JPL.NASA.GOV (Greg Earle). ;; Recenter only when requested. Suggested by popovich@park.cs.columbia.edu. ! (let ((half (/ (- (window-height) 2) 2))) (and ! ;; It has to be wanted, gnus-auto-center-summary ;; the article buffer must be displayed, (get-buffer-window gnus-article-buffer) ;; there must be lines left to scroll forward, ! (zerop (save-excursion (forward-line (1+ half)))) ;; so we recenter. ! (recenter half)))) (defun gnus-summary-jump-to-group (newsgroup) "Move point to NEWSGROUP in group mode buffer." --- 5927,5951 ---- gnus-summary-default-score)) (defun gnus-summary-recenter () ! "Center point in the summary window. ! If `gnus-auto-center-summary' is nil, or the article buffer isn't ! displayed, no centering will be performed." ;; Suggested by earle@mahendo.JPL.NASA.GOV (Greg Earle). ;; Recenter only when requested. Suggested by popovich@park.cs.columbia.edu. ! (let ((top (cond ((< (window-height) 4) 0) ! ((< (window-height) 6) 1) ! (t 2)))) (and ! ;; The user has to want it, gnus-auto-center-summary ;; the article buffer must be displayed, (get-buffer-window gnus-article-buffer) ;; there must be lines left to scroll forward, ! (zerop (save-excursion (forward-line (- (window-height) 1 top)))) ;; so we recenter. ! (set-window-start ! (get-buffer-window (current-buffer)) ! (save-excursion (forward-line (- top)) (point)))))) (defun gnus-summary-jump-to-group (newsgroup) "Move point to NEWSGROUP in group mode buffer." *************** *** 6168,6176 **** (interactive "P") (gnus-set-global-variables) (let ((ingroup gnus-newsgroup-name) ! (sumbuf (current-buffer))) (gnus-summary-exit t) ;Update all information. ! (gnus-group-jump-to-group ingroup) (let ((group (or group (gnus-summary-search-group backward))) (buf gnus-summary-buffer)) (if (null group) --- 6172,6189 ---- (interactive "P") (gnus-set-global-variables) (let ((ingroup gnus-newsgroup-name) ! (sumbuf (current-buffer)) ! num) (gnus-summary-exit t) ;Update all information. ! (if (and group ! (or (and (numberp (setq num (car (gnus-gethash ! group gnus-newsrc-hashtb)))) ! (< num 1)) ! (null num))) ! (progn ! (gnus-group-jump-to-group group) ! (setq group nil)) ! (gnus-group-jump-to-group ingroup)) (let ((group (or group (gnus-summary-search-group backward))) (buf gnus-summary-buffer)) (if (null group) *************** *** 6358,6391 **** (gnus-summary-search-group backward gnus-keep-same-level)))) ;; Keep just the event type of CMD. (and (listp cmd) (setq cmd (car cmd))) - (message - "No more%s articles%s" (if unread " unread" "") - (if (and gnus-auto-select-next - (not (eq gnus-auto-select-next 'quietly))) - (if (and group (not (eq method 'nndigest))) - (format " (Type %s for %s [%s])" - (single-key-description cmd) group - (car (gnus-gethash group gnus-newsrc-hashtb))) - (format " (Type %s to exit %s)" - (single-key-description cmd) - gnus-newsgroup-name)) - "")) ;; Select next unread newsgroup automagically. (cond ((eq gnus-auto-select-next 'quietly) ;; Select quietly. (if (eq method 'nndigest) (gnus-summary-exit) ! (gnus-summary-next-group nil nil backward))) ! (gnus-auto-select-next ! ;; Confirm auto selection. ! (let* ((event (read-event)) ! (type (if (listp event) (car event) event))) ! (if (and (eq event type) (eq event cmd)) (if (or (not group) (eq method 'nndigest)) (gnus-summary-exit) ! (gnus-summary-next-group nil nil backward)) ! (setq unread-command-events (list event))))))))))) (defun gnus-summary-next-unread-article () "Select unread article after current one." --- 6371,6416 ---- (gnus-summary-search-group backward gnus-keep-same-level)))) ;; Keep just the event type of CMD. (and (listp cmd) (setq cmd (car cmd))) ;; Select next unread newsgroup automagically. (cond + ((not gnus-auto-select-next) + (message "No more%s articles" (if unread " unread" ""))) ((eq gnus-auto-select-next 'quietly) ;; Select quietly. (if (eq method 'nndigest) (gnus-summary-exit) ! (message "No more%s articles (%s)..." ! (if unread " unread" "") ! (if group (concat "selecting " group) ! "exiting")) ! (gnus-summary-next-group nil group backward))) ! (t ! (let ((keystrokes '(?\C-n ?\C-p)) ! key) ! (while (or (null key) (memq key keystrokes)) ! (message ! "No more%s articles%s" (if unread " unread" "") ! (if (and group (not (eq method 'nndigest))) ! (format " (Type %s for %s [%s])" ! (single-key-description cmd) group ! (car (gnus-gethash group gnus-newsrc-hashtb))) ! (format " (Type %s to exit %s)" ! (single-key-description cmd) ! gnus-newsgroup-name))) ! ;; Confirm auto selection. ! (let* ((event (read-event))) ! (setq key (if (listp event) (car event) event)) ! (if (member key keystrokes) ! (let ((obuf (current-buffer))) ! (switch-to-buffer gnus-group-buffer) ! (execute-kbd-macro (char-to-string key)) ! (setq group (gnus-group-group-name)) ! (switch-to-buffer obuf))))) ! (if (eq key cmd) (if (or (not group) (eq method 'nndigest)) (gnus-summary-exit) ! (gnus-summary-next-group nil group backward)) ! (setq unread-command-events (list key))))))))))) (defun gnus-summary-next-unread-article () "Select unread article after current one." *************** *** 6740,6751 **** "Scroll to the end of the article." (interactive) (gnus-summary-select-article) ! (gnus-eval-in-buffer-window gnus-article-buffer ! (widen) ! (goto-char (point-max)) ! (if gnus-break-pages ! (gnus-narrow-to-page)) ! )) (defun gnus-summary-show-article () "Force re-fetching of the current article." --- 6765,6775 ---- "Scroll to the end of the article." (interactive) (gnus-summary-select-article) ! (gnus-eval-in-buffer-window ! gnus-article-buffer ! (widen) ! (goto-char (point-max)) ! (and gnus-break-pages (gnus-narrow-to-page)))) (defun gnus-summary-show-article () "Force re-fetching of the current article." *************** *** 6845,6857 **** (while articles (if (setq art-group (gnus-request-move-article ! (car articles) ! gnus-newsgroup-name ! (nth 1 (gnus-find-method-for-group gnus-newsgroup-name)) (list 'gnus-request-accept-article (if select-method (quote select-method) ! to-newsgroup)))) (let* ((buffer-read-only nil) (entry (or --- 6869,6884 ---- (while articles (if (setq art-group (gnus-request-move-article ! (car articles) ; Article to move ! gnus-newsgroup-name ; From newsgrouo ! (nth 1 (gnus-find-method-for-group ! gnus-newsgroup-name)) ; Server (list 'gnus-request-accept-article (if select-method (quote select-method) ! to-newsgroup) ! (not (cdr articles))) ; Accept form ! (not (cdr articles)))) ; Only save nov last time (let* ((buffer-read-only nil) (entry (or *************** *** 6939,6945 **** (gnus-request-article-this-buffer (car articles) gnus-newsgroup-name) (gnus-request-accept-article ! (if select-method (quote select-method) to-newsgroup)))) (let* ((entry (or (gnus-gethash (car art-group) gnus-newsrc-hashtb) --- 6966,6973 ---- (gnus-request-article-this-buffer (car articles) gnus-newsgroup-name) (gnus-request-accept-article ! (if select-method (quote select-method) to-newsgroup) ! (not (cdr articles))))) (let* ((entry (or (gnus-gethash (car art-group) gnus-newsrc-hashtb) *************** *** 7438,7444 **** (defalias 'gnus-summary-mark-as-unread-forward 'gnus-summary-tick-article-forward) (make-obsolete 'gnus-summary-mark-as-unread-forward ! 'gnus-summary-tick-article--forward) (defun gnus-summary-tick-article-forward (n) "Tick N articles forwards. If N is negative, tick backwards instead. --- 7466,7472 ---- (defalias 'gnus-summary-mark-as-unread-forward 'gnus-summary-tick-article-forward) (make-obsolete 'gnus-summary-mark-as-unread-forward ! 'gnus-summary-tick-article-forward) (defun gnus-summary-tick-article-forward (n) "Tick N articles forwards. If N is negative, tick backwards instead. *************** *** 7446,7453 **** (interactive "p") (gnus-summary-mark-forward n gnus-ticked-mark)) ! (defalias 'gnus-summary-mark-as-unread-backward 'gnus-summary-tick-article-backward) ! (make-obsolete 'gnus-summary-mark-as-unread-backward 'gnus-summary-tick-article-backward) (defun gnus-summary-tick-article-backward (n) "Tick N articles backwards. The difference between N and the number of articles ticked is returned." --- 7474,7483 ---- (interactive "p") (gnus-summary-mark-forward n gnus-ticked-mark)) ! (defalias 'gnus-summary-mark-as-unread-backward ! 'gnus-summary-tick-article-backward) ! (make-obsolete 'gnus-summary-mark-as-unread-backward ! 'gnus-summary-tick-article-backward) (defun gnus-summary-tick-article-backward (n) "Tick N articles backwards. The difference between N and the number of articles ticked is returned." *************** *** 7570,7580 **** (set-buffer gnus-summary-buffer) (goto-char (point-min)) (while (not (eobp)) ! (if (< (gnus-summary-article-score) score) ! (progn ! (gnus-summary-mark-article nil (char-to-string mark)) ! (forward-line 1)) ! (forward-line 1))))) ;; Added by Per Abrahamsen . (defun gnus-summary-set-mark-below (score) --- 7600,7608 ---- (set-buffer gnus-summary-buffer) (goto-char (point-min)) (while (not (eobp)) ! (and (< (gnus-summary-article-score) score) ! (gnus-summary-mark-article nil mark)) ! (forward-line 1)))) ;; Added by Per Abrahamsen . (defun gnus-summary-set-mark-below (score) *************** *** 7602,7608 **** (gnus-summary-mark-above score gnus-ticked-mark)) (defun gnus-summary-mark-above (score mark) ! "Mark articles with score less than SCORE with MARK." (interactive "P\ncMark: ") (setq score (if score (prefix-numeric-value score) --- 7630,7636 ---- (gnus-summary-mark-above score gnus-ticked-mark)) (defun gnus-summary-mark-above (score mark) ! "Mark articles with score over SCORE with MARK." (interactive "P\ncMark: ") (setq score (if score (prefix-numeric-value score) *************** *** 7681,7692 **** (while (and (gnus-summary-mark-as-read nil gnus-catchup-mark) (if to-here (< (point) to-here) t) (gnus-summary-search-subject nil (not all))))) - (if (not all) - (setq gnus-newsgroup-unreads - (append gnus-newsgroup-marked gnus-newsgroup-dormant)) - (setq gnus-newsgroup-unreads nil - gnus-newsgroup-marked nil - gnus-newsgroup-dormant nil)) (- unreads (length gnus-newsgroup-unreads)))) (gnus-summary-position-cursor))) --- 7709,7714 ---- *************** *** 7695,7701 **** If ALL is non-nil, also mark ticked and dormant articles as read." (interactive) (beginning-of-line) ! (gnus-summary-catchup all nil (point)) (gnus-summary-position-cursor)) (defun gnus-summary-catchup-all (&optional quietly) --- 7717,7723 ---- If ALL is non-nil, also mark ticked and dormant articles as read." (interactive) (beginning-of-line) ! (gnus-summary-catchup all t (point)) (gnus-summary-position-cursor)) (defun gnus-summary-catchup-all (&optional quietly) *************** *** 10016,10028 **** ;; Treat the other possible atoms in the score alist. (let ((mark (gnus-score-get 'mark gnus-score-alist)) (expunge (gnus-score-get 'expunge gnus-score-alist)) (files (gnus-score-get 'files gnus-score-alist)) (eval (gnus-score-get 'eval gnus-score-alist))) ! (if files (nconc (mapcar (lambda (file) (gnus-score-load-file file)) ! files) lists)) (if eval (eval eval)) ! (if mark (setq gnus-summary-mark-below mark)) ! (if expunge (setq gnus-summary-expunge-below expunge))) lists)) (defun gnus-score-load (file) --- 10038,10055 ---- ;; Treat the other possible atoms in the score alist. (let ((mark (gnus-score-get 'mark gnus-score-alist)) (expunge (gnus-score-get 'expunge gnus-score-alist)) + (mark-and-expunge + (gnus-score-get 'mark-and-expunge gnus-score-alist)) (files (gnus-score-get 'files gnus-score-alist)) (eval (gnus-score-get 'eval gnus-score-alist))) ! (if files ! (setq lists (apply 'append lists ! (mapcar (lambda (file) ! (gnus-score-load-file file)) ! files)))) (if eval (eval eval)) ! (setq gnus-summary-mark-below (or mark mark-and-expunge)) ! (setq gnus-summary-expunge-below (or expunge mark-and-expunge))) lists)) (defun gnus-score-load (file) *************** *** 10503,10510 **** (insert mail-header-separator)))) - ;;; Post a News using NNTP - ;;;###autoload (fset 'sendnews 'gnus-post-news) --- 10530,10535 ---- *************** *** 10514,10520 **** (defun gnus-post-news (method &optional header article-buffer yank) "Begin editing a new USENET news article to be posted. Type \\[describe-mode] in the buffer to get a list of commands." ! (interactive) (if (or (not gnus-novice-user) gnus-expert-user (not (eq 'post --- 10539,10545 ---- (defun gnus-post-news (method &optional header article-buffer yank) "Begin editing a new USENET news article to be posted. Type \\[describe-mode] in the buffer to get a list of commands." ! (interactive (list 'post)) (if (or (not gnus-novice-user) gnus-expert-user (not (eq 'post *************** *** 10538,10549 **** (setq gnus-post-news-buffer (setq post-buf (gnus-request-post-buffer ! method (if (stringp header) ! (gnus-group-real-name header) header) article-buffer))) (if (eq method 'post) (progn ! (gnus-configure-windows '(0 1 0)) (switch-to-buffer post-buf)) (gnus-configure-windows '(0 1 0)) (if (not yank) --- 10563,10574 ---- (setq gnus-post-news-buffer (setq post-buf (gnus-request-post-buffer ! method ! (if (stringp header) (gnus-group-real-name header) header) article-buffer))) (if (eq method 'post) (progn ! (gnus-configure-windows '(1 0 0)) (switch-to-buffer post-buf)) (gnus-configure-windows '(0 1 0)) (if (not yank) *************** *** 10671,10688 **** (mail-fetch-field "bcc" nil t) (mail-fetch-field "cc" nil t)) (if gnus-mail-send-method ! (progn ! (message "Sending via mail...") ! (widen) ! (funcall gnus-mail-send-method) ! (message "Sending via mail... done") ! (save-excursion ! (save-restriction ! (goto-char 1) ! (narrow-to-region ! 1 (re-search-forward mail-header-separator)) ! (goto-char 1) ! (delete-matching-lines "BCC:.*")))) (ding) (message "No mailer defined. To: and/or Cc: fields ignored.") (sit-for 1)))) --- 10696,10722 ---- (mail-fetch-field "bcc" nil t) (mail-fetch-field "cc" nil t)) (if gnus-mail-send-method ! (save-excursion ! (save-restriction ! (widen) ! (message "Sending via mail...") ! ! ;; Insert "courtesy" mail message. ! (goto-char 1) ! (re-search-forward mail-header-separator) ! (goto-char (match-end 0)) (forward-char) ! (let ((c1 (point)) ! (c2 (progn (insert gnus-mail-courtesy-message) ! (point)))) ! (funcall gnus-mail-send-method) ! (delete-region c1 c2)) ! (message "Sending via mail... done") ! ! (goto-char 1) ! (narrow-to-region ! 1 (re-search-forward mail-header-separator)) ! (goto-char 1) ! (delete-matching-lines "BCC:.*"))) (ding) (message "No mailer defined. To: and/or Cc: fields ignored.") (sit-for 1)))) *************** *** 11272,11277 **** --- 11306,11312 ---- (mail-mode) (make-local-variable 'gnus-article-reply) (setq gnus-article-reply cur) + (use-local-map (copy-keymap mail-mode-map)) (local-set-key "\C-c\C-c" 'gnus-mail-send-and-exit) (if (and (buffer-modified-p) (> (buffer-size) 0) *************** *** 11381,11386 **** --- 11416,11423 ---- (mail nil nil subject) (mail-other-window nil nil subject)) (save-excursion + (use-local-map (copy-keymap emacs-lisp-mode-map)) + (local-set-key "\C-c\C-c" 'gnus-mail-send-and-exit) (setq beg (goto-char (point-max))) (insert "------- Start of forwarded message -------\n") (insert-buffer forward-buffer) *************** *** 11769,11786 **** articles (gnus-group-real-name group) (nth 1 method) force))) ! (defun gnus-request-move-article (article group server accept-function) (let ((method (gnus-find-method-for-group group))) (funcall (gnus-get-function method 'request-move-article) article (gnus-group-real-name group) ! (nth 1 method) accept-function))) ! (defun gnus-request-accept-article (group) (let ((func (if (symbolp group) group (car (gnus-find-method-for-group group))))) (funcall (intern (format "%s-request-accept-article" func)) ! (if (stringp group) (gnus-group-real-name group) ! group)))) (defun gnus-request-replace-article (article group buffer) (let ((func (car (gnus-find-method-for-group group)))) --- 11806,11824 ---- articles (gnus-group-real-name group) (nth 1 method) force))) ! (defun gnus-request-move-article ! (article group server accept-function &optional last) (let ((method (gnus-find-method-for-group group))) (funcall (gnus-get-function method 'request-move-article) article (gnus-group-real-name group) ! (nth 1 method) accept-function last))) ! (defun gnus-request-accept-article (group &optional last) (let ((func (if (symbolp group) group (car (gnus-find-method-for-group group))))) (funcall (intern (format "%s-request-accept-article" func)) ! (if (stringp group) (gnus-group-real-name group) group) ! last))) (defun gnus-request-replace-article (article group buffer) (let ((func (car (gnus-find-method-for-group group)))) *************** *** 11789,11794 **** --- 11827,11834 ---- (defun gnus-find-method-for-group (group) (or gnus-override-method + (and (not group) + gnus-select-method) (let ((info (nth 2 (gnus-gethash group gnus-newsrc-hashtb)))) (if (or (not info) (not (nth 4 info))) *************** *** 11930,11941 **** (substring (aref date 3) 3 5) (substring (aref date 3) 6 8))) (groups 0) (new-date (current-time-string)) ! hashtb group new-newsgroups) ;; Go thorugh both primary and secondary select methods and ;; request new newsgroups. (while methods (if (gnus-request-newgroups time-string (car methods)) (save-excursion (setq gnus-newsrc-last-checked-date new-date) (or hashtb (setq hashtb (gnus-make-hashtable (count-lines (point-min) (point-max))))) --- 11970,11982 ---- (substring (aref date 3) 3 5) (substring (aref date 3) 6 8))) (groups 0) (new-date (current-time-string)) ! hashtb group new-newsgroups got-new) ;; Go thorugh both primary and secondary select methods and ;; request new newsgroups. (while methods (if (gnus-request-newgroups time-string (car methods)) (save-excursion + (setq got-new t) (setq gnus-newsrc-last-checked-date new-date) (or hashtb (setq hashtb (gnus-make-hashtable (count-lines (point-min) (point-max))))) *************** *** 11969,11975 **** ;; Suggested by Per Abrahamsen . (if (> groups 0) (message "%d new newsgroup%s arrived." ! groups (if (> groups 1) "s have" " has"))))) (defun gnus-check-first-time-used () (if (or (> (length gnus-newsrc-assoc) 1) --- 12010,12017 ---- ;; Suggested by Per Abrahamsen . (if (> groups 0) (message "%d new newsgroup%s arrived." ! groups (if (> groups 1) "s have" " has"))) ! got-new)) (defun gnus-check-first-time-used () (if (or (> (length gnus-newsrc-assoc) 1) *************** *** 12887,12893 **** (save-restriction (set-buffer nntp-server-buffer) (goto-char (point-min)) ! (delete-non-matching-lines "^[a-zA-Z\\.0-9]+[ \t]") (goto-char (point-min)) (if (or (search-forward "\n.\n" nil t) (goto-char (point-max))) --- 12929,12935 ---- (save-restriction (set-buffer nntp-server-buffer) (goto-char (point-min)) ! (delete-matching-lines gnus-ignored-newsgroups) (goto-char (point-min)) (if (or (search-forward "\n.\n" nil t) (goto-char (point-max))) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnbabyl.el dgnus/lisp/nnbabyl.el *** pub/dgnus/lisp/nnbabyl.el Sun Mar 12 16:38:51 1995 --- dgnus/lisp/nnbabyl.el Mon Mar 13 11:48:40 1995 *************** *** 234,240 **** (save-buffer) rest))) ! (defun nnbabyl-request-move-article (article group server accept-form) (nnbabyl-possibly-change-newsgroup group) (let ((buf (get-buffer-create " *nnbabyl move*")) result) --- 234,241 ---- (save-buffer) rest))) ! (defun nnbabyl-request-move-article ! (article group server accept-form &optional last) (nnbabyl-possibly-change-newsgroup group) (let ((buf (get-buffer-create " *nnbabyl move*")) result) *************** *** 257,266 **** (goto-char 1) (if (search-forward (nnbabyl-article-string article) nil t) (nnbabyl-delete-mail)) ! (save-buffer))) result)) ! (defun nnbabyl-request-accept-article (group) (let ((buf (current-buffer)) result beg) (and --- 258,267 ---- (goto-char 1) (if (search-forward (nnbabyl-article-string article) nil t) (nnbabyl-delete-mail)) ! (and last (save-buffer)))) result)) ! (defun nnbabyl-request-accept-article (group &optional last) (let ((buf (current-buffer)) result beg) (and *************** *** 279,285 **** (delete-region (point) (progn (forward-line 1) (point))))) (setq result (nnbabyl-insert-newsgroup-line group))) (setq result (nnbabyl-save-mail))) ! (save-buffer) result) (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file)) result)) --- 280,286 ---- (delete-region (point) (progn (forward-line 1) (point))))) (setq result (nnbabyl-insert-newsgroup-line group))) (setq result (nnbabyl-save-mail))) ! (and last (save-buffer)) result) (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file)) result)) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnfolder.el dgnus/lisp/nnfolder.el *** pub/dgnus/lisp/nnfolder.el Sun Mar 12 16:38:51 1995 --- dgnus/lisp/nnfolder.el Mon Mar 13 11:48:39 1995 *************** *** 215,221 **** (save-buffer) rest))) ! (defun nnfolder-request-move-article (article group server accept-form) (nnfolder-possibly-change-group group) (let ((buf (get-buffer-create " *nnfolder move*")) result) --- 215,222 ---- (save-buffer) rest))) ! (defun nnfolder-request-move-article ! (article group server accept-form &optional last) (nnfolder-possibly-change-group group) (let ((buf (get-buffer-create " *nnfolder move*")) result) *************** *** 241,250 **** (goto-char 1) (if (search-forward (nnfolder-article-string article) nil t) (nnfolder-delete-mail)) ! (save-buffer))) result)) ! (defun nnfolder-request-accept-article (group) (nnfolder-possibly-change-group group) (let ((buf (current-buffer)) result beg) --- 242,251 ---- (goto-char 1) (if (search-forward (nnfolder-article-string article) nil t) (nnfolder-delete-mail)) ! (and last (save-buffer)))) result)) ! (defun nnfolder-request-accept-article (group &optional last) (nnfolder-possibly-change-group group) (let ((buf (current-buffer)) result beg) *************** *** 267,273 **** (save-excursion (set-buffer nnfolder-current-buffer) (insert-buffer-substring buf) ! (save-buffer) result) (nnmail-save-active nnfolder-group-alist nnfolder-active-file)) (car result))) --- 268,274 ---- (save-excursion (set-buffer nnfolder-current-buffer) (insert-buffer-substring buf) ! (and last (save-buffer)) result) (nnmail-save-active nnfolder-group-alist nnfolder-active-file)) (car result))) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnmail.el dgnus/lisp/nnmail.el *** pub/dgnus/lisp/nnmail.el Sun Mar 12 16:38:52 1995 --- dgnus/lisp/nnmail.el Mon Mar 13 17:21:51 1995 *************** *** 30,36 **** (defvar nnmail-split-methods '(("mail.misc" "")) ! "nnmail will split incoming mail into the groups detailed in this variable.") ;; Suggested by Erik Selberg . (defvar nnmail-crosspost t --- 30,58 ---- (defvar nnmail-split-methods '(("mail.misc" "")) ! "Incoming mail will be split according to this variable. ! ! If you'd like, for instance, one mail group for mail from the ! \"4ad-l\" mailing list, one group for junk mail and one for everything ! else, you could do something like this: ! ! (setq nnmail-split-methods ! '((\"mail.4ad\" \"From:.*4ad\") ! (\"mail.junk\" \"From:.*Lars\\\\|Subject:.*buy\") ! (\"mail.misc\" \"\"))) ! ! As you can see, this variable is a list of lists, where the first ! element in each \"rule\" is the name of the group (which, by the way, ! does not have to be called anything beginning with \"mail\", ! \"yonka.zow\" is a fine, fine name), and the second is a regexp that ! nnmail will try to match on the header to find a fit. ! ! The second element can also be a function. In that case, it will be ! called narrowed to the headers with the first element of the rule as ! the argument. It should return a non-nil value if it thinks that the ! mail belongs in that group. ! ! The last element should always have \"\" as the regexp.") ;; Suggested by Erik Selberg . (defvar nnmail-crosspost t *************** *** 376,384 **** (while (and methods (or nnmail-crosspost (not group-art))) (goto-char (point-max)) (if (or (cdr methods) ! (not (string= "" (nth 1 (car methods))))) (if (and (condition-case () ! (re-search-backward (car (cdr (car methods))) nil t) (error nil)) ;; Don't enter the article into the same group twice. (not (assoc (car (car methods)) group-art))) --- 398,410 ---- (while (and methods (or nnmail-crosspost (not group-art))) (goto-char (point-max)) (if (or (cdr methods) ! (not (equal "" (nth 1 (car methods))))) (if (and (condition-case () ! (if (stringp (nth 1 (car methods))) ! (re-search-backward ! (car (cdr (car methods))) nil t) ! ;; Suggested by Brian Edmonds . ! (funcall (nth 1 (car methods)) (car (car methods)))) (error nil)) ;; Don't enter the article into the same group twice. (not (assoc (car (car methods)) group-art))) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnmbox.el dgnus/lisp/nnmbox.el *** pub/dgnus/lisp/nnmbox.el Sun Mar 12 16:38:52 1995 --- dgnus/lisp/nnmbox.el Mon Mar 13 11:48:37 1995 *************** *** 228,234 **** (save-buffer) rest))) ! (defun nnmbox-request-move-article (article group server accept-form) (nnmbox-possibly-change-newsgroup group) (let ((buf (get-buffer-create " *nnmbox move*")) result) --- 228,235 ---- (save-buffer) rest))) ! (defun nnmbox-request-move-article ! (article group server accept-form &optional last) (nnmbox-possibly-change-newsgroup group) (let ((buf (get-buffer-create " *nnmbox move*")) result) *************** *** 253,262 **** (goto-char 1) (if (search-forward (nnmbox-article-string article) nil t) (nnmbox-delete-mail)) ! (save-buffer))) result)) ! (defun nnmbox-request-accept-article (group) (let ((buf (current-buffer)) result beg) (debug (current-buffer)) --- 254,263 ---- (goto-char 1) (if (search-forward (nnmbox-article-string article) nil t) (nnmbox-delete-mail)) ! (and last (save-buffer)))) result)) ! (defun nnmbox-request-accept-article (group &optional last) (let ((buf (current-buffer)) result beg) (debug (current-buffer)) *************** *** 278,284 **** (save-excursion (set-buffer nnmbox-mbox-buffer) (insert-buffer-substring buf) ! (save-buffer) result) (nnmail-save-active nnmbox-group-alist nnmbox-active-file)) (car result))) --- 279,285 ---- (save-excursion (set-buffer nnmbox-mbox-buffer) (insert-buffer-substring buf) ! (and last (save-buffer)) result) (nnmail-save-active nnmbox-group-alist nnmbox-active-file)) (car result))) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnmh.el dgnus/lisp/nnmh.el *** pub/dgnus/lisp/nnmh.el Sun Mar 12 16:38:52 1995 --- dgnus/lisp/nnmh.el Mon Mar 13 11:48:37 1995 *************** *** 240,246 **** (defun nnmh-close-group (group &optional server) t) ! (defun nnmh-request-move-article (article group server accept-form) (let ((buf (get-buffer-create " *nnmh move*")) result) (and --- 240,247 ---- (defun nnmh-close-group (group &optional server) t) ! (defun nnmh-request-move-article ! (article group server accept-form &optional last) (let ((buf (get-buffer-create " *nnmh move*")) result) (and *************** *** 257,263 **** (file-error nil))) result)) ! (defun nnmh-request-accept-article (group) (if (stringp group) (and (nnmh-request-list) --- 258,264 ---- (file-error nil))) result)) ! (defun nnmh-request-accept-article (group &optional last) (if (stringp group) (and (nnmh-request-list) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnml.el dgnus/lisp/nnml.el *** pub/dgnus/lisp/nnml.el Sun Mar 12 16:38:52 1995 --- dgnus/lisp/nnml.el Mon Mar 13 11:48:36 1995 *************** *** 230,236 **** (nnml-save-nov) rest)) ! (defun nnml-request-move-article (article group server accept-form) (let ((buf (get-buffer-create " *nnml move*")) result) (and --- 230,237 ---- (nnml-save-nov) rest)) ! (defun nnml-request-move-article ! (article group server accept-form &optional last) (let ((buf (get-buffer-create " *nnml move*")) result) (and *************** *** 247,256 **** (int-to-string article))) (file-error nil)) (nnml-nov-delete-article group article) ! (nnml-save-nov))) result)) ! (defun nnml-request-accept-article (group) (let (result) (if (stringp group) (and --- 248,257 ---- (int-to-string article))) (file-error nil)) (nnml-nov-delete-article group article) ! (and last (nnml-save-nov)))) result)) ! (defun nnml-request-accept-article (group &optional last) (let (result) (if (stringp group) (and *************** *** 262,275 **** (setq result (car (nnml-save-mail)))) (progn (nnmail-save-active nnml-group-alist nnml-active-file) ! (nnml-save-nov))) (and (nnml-request-list) (setq nnml-group-alist (nnmail-get-active)) (setq result (car (nnml-save-mail))) (progn (nnmail-save-active nnml-group-alist nnml-active-file) ! (nnml-save-nov)))) result)) (defun nnml-request-replace-article (article group buffer) --- 263,276 ---- (setq result (car (nnml-save-mail)))) (progn (nnmail-save-active nnml-group-alist nnml-active-file) ! (and last (nnml-save-nov)))) (and (nnml-request-list) (setq nnml-group-alist (nnmail-get-active)) (setq result (car (nnml-save-mail))) (progn (nnmail-save-active nnml-group-alist nnml-active-file) ! (and last (nnml-save-nov))))) result)) (defun nnml-request-replace-article (article group buffer) *************** *** 511,517 **** (if (buffer-name (cdr (car nnml-nov-buffer-alist))) (progn (set-buffer (cdr (car nnml-nov-buffer-alist))) ! (write-region 1 (point-max) (buffer-file-name) nil 'nomesg) (set-buffer-modified-p nil) (kill-buffer (current-buffer)))) (setq nnml-nov-buffer-alist (cdr nnml-nov-buffer-alist))))) --- 512,520 ---- (if (buffer-name (cdr (car nnml-nov-buffer-alist))) (progn (set-buffer (cdr (car nnml-nov-buffer-alist))) ! (and (buffer-modified-p) ! (write-region ! 1 (point-max) (buffer-file-name) nil 'nomesg)) (set-buffer-modified-p nil) (kill-buffer (current-buffer)))) (setq nnml-nov-buffer-alist (cdr nnml-nov-buffer-alist))))) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnspool.el dgnus/lisp/nnspool.el *** pub/dgnus/lisp/nnspool.el Sun Mar 12 16:38:52 1995 --- dgnus/lisp/nnspool.el Mon Mar 13 17:27:45 1995 *************** *** 145,151 **** (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnspool-status-message () "Return server status response as string." nnspool-status-string) --- 145,151 ---- (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnspool-status-message (&optional server) "Return server status response as string." nnspool-status-string) *************** *** 240,246 **** "List groups created after DATE." (save-excursion (nnspool-find-file nnspool-active-times-file) ! (setq nnspool-status-string "NEWGROUPS is not supported.") nil)) (defun nnspool-request-post (&optional server) --- 240,246 ---- "List groups created after DATE." (save-excursion (nnspool-find-file nnspool-active-times-file) ! nil)) (defun nnspool-request-post (&optional server) *************** *** 365,370 **** --- 365,384 ---- (aset string idx to)) (setq idx (1+ idx))) string)) + + (defun nnspool-number-base-10 (num pos) + (if (<= pos 0) "" + (setcdr num (+ (* (% (car num) 10) 65536) (cdr num))) + (apply + 'concat + (reverse + (list + (char-to-string + (aref "0123456789" (% (cdr num) 10))) + (progn + (setcdr num (/ (cdr num) 10)) + (setcar num (/ (car num) 10)) + (nnspool-number-base-10 num (1- pos)))))))) (provide 'nnspool) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/readme dgnus/readme *** pub/dgnus/readme Sat Dec 31 23:46:40 1994 --- dgnus/readme Mon Dec 12 12:15:52 1994 *************** *** 1,18 **** ! This package contains a pre-release of (ding) Gnus, version 0.5. The lisp directory contains the source lisp files, and the texi directory contains an early draft of the Gnus info pages. - - IMPORTANT NOTE FOR NNML USERS: If you have used an earlier version of - this package, you have to do the following: - - ESC ESC (load "nnml") - M-x nnml-generate-nov-databases - - nnml will chew on your mail for a while, and then you can use Gnus - again. Do not attempt to start Gnus before you have done this. - - (This note only applies to people who use nnml as a mail backedn.) - Gnus is meant to be totally compatible with GNUS. But, alas, it probably isn't, which is one of the reasons for this pre-release. --- 1,6 ---- ! This package contains a pre-release of (ding) Gnus, version 0.1. The lisp directory contains the source lisp files, and the texi directory contains an early draft of the Gnus info pages. Gnus is meant to be totally compatible with GNUS. But, alas, it probably isn't, which is one of the reasons for this pre-release. diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus dgnus/texi/gnus *** pub/dgnus/texi/gnus Sun Mar 12 16:38:55 1995 --- dgnus/texi/gnus Wed Mar 15 17:39:22 1995 *************** *** 21,29 ****  Indirect: gnus-1: 775 ! gnus-2: 50180 ! gnus-3: 99082 ! gnus-4: 131487  Tag Table: (Indirect) --- 21,29 ----  Indirect: gnus-1: 775 ! gnus-2: 50420 ! gnus-3: 99742 ! gnus-4: 134819  Tag Table: (Indirect) *************** *** 57,129 **** Node: nndigest40734 Node: Mail41407 Node: Creating Mail Groups43070 ! Node: Expiring Old Mail Articles44650 ! Node: nnmbox47181 ! Node: nnbabyl47661 ! Node: nnml48124 ! Node: nnmh49456 ! Node: nnfolder49764 ! Node: Listing Groups50180 ! Node: Group Maintenance51083 ! Node: Browse Foreign Server51925 ! Node: Exiting Gnus53306 ! Node: Misc Group Stuff53904 ! Node: The Summary Buffer55531 ! Node: Summary Buffer Format57022 ! Node: Summary Buffer Lines57859 ! Node: Summary Buffer Mode Line60396 ! Node: Summary Manouvering61140 ! Node: Choosing Articles62840 ! Node: Paging the Article64833 ! Node: Reply Followup and Post65544 ! Node: Cancelling and Superseding70767 ! Node: Ticking and Marking72658 ! Node: Unread Articles73518 ! Node: Read Articles74423 ! Node: Other Marks75911 ! Node: Setting Marks76739 ! Node: Setting Process Marks78563 ! Node: Threading79688 ! Node: Customizing Threading80146 ! Node: Threading Commands83270 ! Node: Exiting the Summary Buffer84613 ! Node: Process/Prefix86972 ! Node: Saving Articles88021 ! Node: Decoding Articles90898 ! Node: Uuencoded Articles92324 ! Node: Shared Articles92779 ! Node: Decoding Variables93249 ! Node: Rule Variables93537 ! Node: Other Decode Variables94719 ! Node: Viewing Files97903 ! Node: Various Article Stuff99082 ! Node: Summary Sorting100320 ! Node: Finding the Parent100838 ! Node: Score Files101957 ! Node: Summary Score Commands103435 ! Node: Score Variables105668 ! Node: Score File Format108186 ! Node: Scoring Tips110509 ! Node: Mail Group Commands110994 ! Node: Various Summary Stuff111929 ! Node: The Article Buffer113579 ! Node: Hiding Headers114175 ! Node: Using Mime116578 ! Node: Customizing Articles117996 ! Node: Article Keymap119079 ! Node: Misc Article120325 ! Node: Various121307 ! Node: Interactive121621 ! Node: Windows Configuration122485 ! Node: Various Various125160 ! Node: Customization125912 ! Node: Slow NNTP Connection126496 ! Node: Slow Terminal Connection127451 ! Node: Little Disk Space129040 ! Node: Slow Machine129872 ! Node: Troubleshooting130452 ! Node: Reporting Bugs131042 ! Node: Index131487 ! Node: Key Index153949  End Tag Table --- 57,129 ---- Node: nndigest40734 Node: Mail41407 Node: Creating Mail Groups43070 ! Node: Expiring Old Mail Articles44890 ! Node: nnmbox47421 ! Node: nnbabyl47901 ! Node: nnml48364 ! Node: nnmh49696 ! Node: nnfolder50004 ! Node: Listing Groups50420 ! Node: Group Maintenance51518 ! Node: Browse Foreign Server52360 ! Node: Exiting Gnus53741 ! Node: Misc Group Stuff54339 ! Node: The Summary Buffer55966 ! Node: Summary Buffer Format57457 ! Node: Summary Buffer Lines58294 ! Node: Summary Buffer Mode Line60831 ! Node: Summary Manouvering61575 ! Node: Choosing Articles63502 ! Node: Paging the Article65495 ! Node: Reply Followup and Post66216 ! Node: Cancelling and Superseding71439 ! Node: Ticking and Marking73330 ! Node: Unread Articles74190 ! Node: Read Articles75095 ! Node: Other Marks76583 ! Node: Setting Marks77411 ! Node: Setting Process Marks79890 ! Node: Threading80999 ! Node: Customizing Threading81457 ! Node: Threading Commands84583 ! Node: Exiting the Summary Buffer85926 ! Node: Process/Prefix88285 ! Node: Saving Articles89334 ! Node: Decoding Articles92211 ! Node: Uuencoded Articles93637 ! Node: Shared Articles94618 ! Node: Decoding Variables95088 ! Node: Rule Variables95376 ! Node: Other Decode Variables96558 ! Node: Viewing Files99742 ! Node: Various Article Stuff100921 ! Node: Summary Sorting102258 ! Node: Finding the Parent102776 ! Node: Score Files103895 ! Node: Summary Score Commands105373 ! Node: Score Variables108247 ! Node: Score File Format110765 ! Node: Scoring Tips113296 ! Node: Mail Group Commands113781 ! Node: Various Summary Stuff114945 ! Node: The Article Buffer116911 ! Node: Hiding Headers117507 ! Node: Using Mime119910 ! Node: Customizing Articles121328 ! Node: Article Keymap122411 ! Node: Misc Article123657 ! Node: Various124639 ! Node: Interactive124953 ! Node: Windows Configuration125817 ! Node: Various Various128492 ! Node: Customization129244 ! Node: Slow NNTP Connection129828 ! Node: Slow Terminal Connection130783 ! Node: Little Disk Space132372 ! Node: Slow Machine133204 ! Node: Troubleshooting133784 ! Node: Reporting Bugs134374 ! Node: Index134819 ! Node: Key Index158291  End Tag Table diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-1 dgnus/texi/gnus-1 *** pub/dgnus/texi/gnus-1 Sun Mar 12 16:38:55 1995 --- dgnus/texi/gnus-1 Wed Mar 15 17:39:21 1995 *************** *** 29,35 **** local spool or your mbox file. All at the same time, if you want to push your luck. ! This manual documents (ding) Gnus 0.32. * Menu: --- 29,35 ---- local spool or your mbox file. All at the same time, if you want to push your luck. ! This manual documents (ding) Gnus 0.34. * Menu: *************** *** 1164,1169 **** --- 1164,1174 ---- called something beginning with `"mail"', by the way), and the second element is a regular expression used on the header of each mail to determine if it belongs in this mail group. + + The second element can also be a function. In that case, it will be + called narrowed to the headers with the first element of the rule as the + argument. It should return a non-nil value if it thinks that the mail + belongs in that group. The last of these groups should always be a general one, and the regular expression should *always* be `""' so that it matches any mails diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-2 dgnus/texi/gnus-2 *** pub/dgnus/texi/gnus-2 Sun Mar 12 16:38:55 1995 --- dgnus/texi/gnus-2 Wed Mar 15 17:39:21 1995 *************** *** 24,49 **** Listing Groups ============== ! `l' List all subscribed groups that have unread articles (`gnus-group-list-groups'). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it only lists groups of level five or lower (ie. just subscribed groups). ! `L' List all subscribed and unsubscribed groups, whether they have unread articles or not (`gnus-group-list-all-groups'). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it lists groups of level seven or lower (ie. just subscribed and unsubscribed groups). ! `C-c C-k' List all killed groups (`gnus-group-list-killed'). ! `C-c C-z' List all zombie groups (`gnus-group-list-zombies').  File: gnus, Node: Group Maintenance, Next: Browse Foreign Server, Prev: Listing Groups, Up: The Group Buffer --- 24,56 ---- Listing Groups ============== ! `l, G s' List all subscribed groups that have unread articles (`gnus-group-list-groups'). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it only lists groups of level five or lower (ie. just subscribed groups). ! `L, G u' List all subscribed and unsubscribed groups, whether they have unread articles or not (`gnus-group-list-all-groups'). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it lists groups of level seven or lower (ie. just subscribed and unsubscribed groups). ! `G k' List all killed groups (`gnus-group-list-killed'). ! `G z' List all zombie groups (`gnus-group-list-zombies'). + `G m' + List all subscribed groups with unread articles that match a regexp + (`gnus-group-list-matching'). + + `G M' + List groups that match a regexp (`gnus-group-list-all-matching'). +  File: gnus, Node: Group Maintenance, Next: Browse Foreign Server, Prev: Listing Groups, Up: The Group Buffer *************** *** 435,440 **** --- 442,452 ---- `quietly', Gnus will select the next group without asking for confirmation. Also see `gnus-keep-same-level'. + If Gnus asks you to press a key to confirm going to the next group, + you can use the `C-n' and `C-p' keys to move around the group buffer, + searching for the next group to read without actually returning to the + group buffer. + If `gnus-auto-center-summary' is non-nil, Gnus will keep the point in the summary buffer centered at all times. This makes things quite tidy, but if you have a slow network connection, or do simply not like *************** *** 520,530 **** Scroll the current article one line forward (`gnus-summary-scroll-up'). ! `<' Scroll to the beginning of the article (`gnus-summary-beginning-of-article'). ! `>' Scroll to the end of the article (`gnus-summary-end-of-article').  --- 532,542 ---- Scroll the current article one line forward (`gnus-summary-scroll-up'). ! `<, A <' Scroll to the beginning of the article (`gnus-summary-beginning-of-article'). ! `>, A >' Scroll to the end of the article (`gnus-summary-end-of-article').  *************** *** 896,901 **** --- 908,933 ---- `M D' Display all dormant articles (`gnus-summary-show-all-dormant'). + `M M-D' + Hide all dormant articles (`gnus-summary-hide-all-dormant'). + + `M s k' + Kill all articles with scores below the default score (or below the + numeric prefix) (`gnus-summary-kill-below'). + + `M s c' + Clear all marks from articles with scores over the default score + (or over the numeric prefix) (`gnus-summary-clear-above'). + + `M s u' + Tick all articles with scores over the default score (or over the + numeric prefix) (`gnus-summary-clear-above'). + + `M s m' + Prompt for a mark, and mark all articles with scores over the + default score (or over the numeric prefix) with this mark + (`gnus-summary-clear-above'). +  File: gnus, Node: Setting Process Marks, Prev: Setting Marks, Up: Ticking and Marking *************** *** 904,914 **** `#, M p' Mark the current article with the process mark ! (`gnus-summary-mark-article-as-processable'). `M-#, M p u' Remove the process mark from the current article ! (`gnus-summary-unmark-article-as-processable'). `C-c M-#, M p U' Remove the process mark from all articles --- 936,946 ---- `#, M p' Mark the current article with the process mark ! (`gnus-summary-mark-as-processable'). `M-#, M p u' Remove the process mark from the current article ! (`gnus-summary-unmark-as-processable'). `C-c M-#, M p U' Remove the process mark from all articles *************** *** 1026,1032 **** result in a new thread. `gnus-thread-indent-level' ! This is a number which says how many spaces to indent a thread. The default is `4'.  --- 1058,1064 ---- result in a new thread. `gnus-thread-indent-level' ! This is a number that how much each subthread should be indented. The default is `4'.  *************** *** 1303,1308 **** --- 1335,1350 ---- Uudecodes, views and saves the current series (`gnus-uu-decode-uu-and-save-view'). + Remember that these all react to the presence of articles marked with + the process mark. If, for instance, you'd like to uncode and save an + entire newsgroup, you'd typically do `M p a' (`gnus-uu-mark-all') and + then `X U' (`gnus-uu-decode-uu'). + + All this is very much different from how gnus-uu worked with GNUS + 4.1, where you had explicit keystrokes for everything under the sun. + This version of gnus-uu generally assumes that you either mark articles + in some way (*note Setting Process Marks::.) and then press `X u'. +  File: gnus, Node: Shared Articles, Prev: Uuencoded Articles, Up: Decoding Articles *************** *** 1454,1484 **** this variable is nil, the description the user enters will be included at the beginning of the first article, which will be numbered (1/x). Default is t. - -  - File: gnus, Node: Viewing Files, Prev: Decoding Variables, Up: Decoding Articles - - Viewing Files - ------------- - - After decoding, if the file is some sort of archive, Gnus will - attempt to unpack the archive and see if any of the files in the - archive can be viewed. For instance, if you have a gzipped tar file - `pics.tar.gz' containing the files `pic1.jpg' and `pic2.gif', Gnus will - uncompress and detar the main file, and then view the two pictures. - This unpacking process is recursive, so if the archive contains archives - of archives, it'll all be unpacked. - - Finally, Gnus will normally insert a "pseudo-article" for each - extracted file into the summary buffer. If you go to these "articles", - the user will be prompted for a command to run (usually Gnus will make a - suggestion), and then the command will be run. - - If `gnus-view-pseudo-asynchronously' is nil, Emacs will wait until - the viewing is done before proceeding. - - If `gnus-view-pseudos' is `automatic', Gnus will not insert the - pseudo-articles into the summary buffer, but view them immediately. If - this variable is `not-confirm', the user won't even be asked for a - confirmation before viewing is done. --- 1496,1499 ---- diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-3 dgnus/texi/gnus-3 *** pub/dgnus/texi/gnus-3 Sun Mar 12 16:38:55 1995 --- dgnus/texi/gnus-3 Wed Mar 15 17:39:21 1995 *************** *** 19,24 **** --- 19,51 ---- versions.  + File: gnus, Node: Viewing Files, Prev: Decoding Variables, Up: Decoding Articles + + Viewing Files + ------------- + + After decoding, if the file is some sort of archive, Gnus will + attempt to unpack the archive and see if any of the files in the + archive can be viewed. For instance, if you have a gzipped tar file + `pics.tar.gz' containing the files `pic1.jpg' and `pic2.gif', Gnus will + uncompress and detar the main file, and then view the two pictures. + This unpacking process is recursive, so if the archive contains archives + of archives, it'll all be unpacked. + + Finally, Gnus will normally insert a "pseudo-article" for each + extracted file into the summary buffer. If you go to these "articles", + the user will be prompted for a command to run (usually Gnus will make a + suggestion), and then the command will be run. + + If `gnus-view-pseudo-asynchronously' is nil, Emacs will wait until + the viewing is done before proceeding. + + If `gnus-view-pseudos' is `automatic', Gnus will not insert the + pseudo-articles into the summary buffer, but view them immediately. If + this variable is `not-confirm', the user won't even be asked for a + confirmation before viewing is done. + +  File: gnus, Node: Various Article Stuff, Next: Summary Sorting, Prev: Decoding Articles, Up: The Summary Buffer Various Article Stuff *************** *** 28,33 **** --- 55,65 ---- Remove page breaking from the current article (`gnus-summary-stop-page-breaking'). + `A s' + `A s (Summary)' + Perform an isearch in the article buffer + (`gnus-summary-isearch-article'). + `A c' Do a Caesar rotate (rot13) on the article buffer (`gnus-summary-caesar-message'). *************** *** 44,51 **** (`gnus-summary-toggle-mime'). `V |' ! Pipe the current article through a filter ! (`gnus-summary-pipe-output'). There's a battery of commands for washing the article buffer: --- 76,82 ---- (`gnus-summary-toggle-mime'). `V |' ! Pipe the current article to a process (`gnus-summary-pipe-output'). There's a battery of commands for washing the article buffer: *************** *** 157,162 **** --- 188,216 ---- Summary Score Commands ---------------------- + General score commands that have nothing to do with the score files: + + `V S' + Set the score of the current article (`gnus-summary-set-score'). + + `I C-i' + Raise the score of the current article + (`gnus-summary-raise-score'). + + `L C-l' + Lower the score of the current article + (`gnus-summary-lower-score'). + + `V b' + Prompt for a score, and mark all articles with a score below this + as read (`gnus-summary-set-mark-below'). + + `V B' + Expunge all articles with a score below the default score (or the + numeric prefix) (`gnus-summary-expunge-below'). + + The rest of these commands modify the local score file. + Commands for increasing score: `I s t' *************** *** 326,331 **** --- 380,386 ---- ("alt.politics" nil -1000 "Mon Mar 6 11:17:24 1995")) (mark . 0) (expunge . -1000) + (mark-and-expunge . -10) (files "/hom/larsi/News/gnu.SCORE") (eval (ding)))) *************** *** 355,360 **** --- 410,420 ---- `expunge' The value of this entry should be a number. Any articles with a + score lower than this number will be removed from the summary + buffer. + + `mark-and-expunge' + The value of this entry should be a number. Any articles with a score lower than this number will be marked as read and removed from the summary buffer. *************** *** 407,417 **** Move the article from one mail group to another (`gnus-summary-move-article'). `V m r' Respool the mail article (`gnus-summary-move-article'). `V m w, e' ! Edit the current article (`gnus-summary-edit-article').  File: gnus, Node: Various Summary Stuff, Prev: Mail Group Commands, Up: The Summary Buffer --- 467,483 ---- Move the article from one mail group to another (`gnus-summary-move-article'). + `V m c' + Copy the article from one group (mail group or not) to a mail group + (`gnus-summary-copy-article'). + `V m r' Respool the mail article (`gnus-summary-move-article'). `V m w, e' ! Edit the current article (`gnus-summary-edit-article'). Type `C-c ! C-c' (`gnus-summary-edit-article-done') to finish editing and make ! the changes permanent.  File: gnus, Node: Various Summary Stuff, Prev: Mail Group Commands, Up: The Summary Buffer *************** *** 435,463 **** expression to be matched this field, and a command to be executed if the match is made. ! `=' ! Delete all other windows (`gnus-summary-expand-window'). ! `C-x C-s' Exit this group, and then enter it again (`gnus-summary-reselect-current-group'). ! `C-c C-d' Give a brief description of the current group (`gnus-summary-describe-group'). ! `M-g' Exit group, check for new articles in the group, and select the group (`gnus-summary-rescan-group'). `V' Display the Gnus version numbers (`gnus-version'). ! `?' Give a very brief description of the most important summary keystrokes (`gnus-summary-describe-briefly'). ! `C-c C-i' Go to the Gnus info node (`gnus-info-find-node'). `gnus-summary-prepare-hook' is called after the summary buffer has --- 501,541 ---- expression to be matched this field, and a command to be executed if the match is made. ! `V C-s' ! Search through all subsequent articles for a regexp ! (`gnus-summary-search-article-forward'). ! ! `V C-r' ! Search through all previous articles for a regexp ! (`gnus-summary-search-article-backward'). ! ! `V T' ! Toggle truncation of summary lines ! (`gnus-summary-toggle-truncation'). ! ! `V e' ! Expand the summary buffer window (`gnus-summary-expand-window'). ! `V S' Exit this group, and then enter it again (`gnus-summary-reselect-current-group'). ! `V d' Give a brief description of the current group (`gnus-summary-describe-group'). ! `V g, M-g' Exit group, check for new articles in the group, and select the group (`gnus-summary-rescan-group'). `V' Display the Gnus version numbers (`gnus-version'). ! `V ?' Give a very brief description of the most important summary keystrokes (`gnus-summary-describe-briefly'). ! `V i' Go to the Gnus info node (`gnus-info-find-node'). `gnus-summary-prepare-hook' is called after the summary buffer has diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-4 dgnus/texi/gnus-4 *** pub/dgnus/texi/gnus-4 Sun Mar 12 16:38:55 1995 --- dgnus/texi/gnus-4 Wed Mar 15 17:39:22 1995 *************** *** 97,104 **** --- 97,106 ---- * gnus-group-kill-region: Group Subscribing. * gnus-group-line-format: Group Buffer Format. * gnus-group-list-all-groups: Listing Groups. + * gnus-group-list-all-matching: Listing Groups. * gnus-group-list-groups: Listing Groups. * gnus-group-list-killed: Listing Groups. + * gnus-group-list-matching: Listing Groups. * gnus-group-list-zombies: Listing Groups. * gnus-group-mail: Misc Group Stuff. * gnus-group-make-directory-group: Foreign Groups. *************** *** 106,119 **** * gnus-group-make-help-group: Foreign Groups. * gnus-group-make-kiboze-group: Foreign Groups. * gnus-group-mode-line-format: Group Buffer Format. - * gnus-group-next-group: Group Manouvering. * gnus-group-next-group: Browse Foreign Server. * gnus-group-next-unread-group: Group Manouvering. * gnus-group-next-unread-group-same-level: Group Manouvering. * gnus-group-post-news: Misc Group Stuff. * gnus-group-prepare-hook: Misc Group Stuff. - * gnus-group-prev-group: Group Manouvering. * gnus-group-prev-group: Browse Foreign Server. * gnus-group-prev-unread-group: Group Manouvering. * gnus-group-prev-unread-group-same-level: Group Manouvering. * gnus-group-quit: Exiting Gnus. --- 108,121 ---- * gnus-group-make-help-group: Foreign Groups. * gnus-group-make-kiboze-group: Foreign Groups. * gnus-group-mode-line-format: Group Buffer Format. * gnus-group-next-group: Browse Foreign Server. + * gnus-group-next-group: Group Manouvering. * gnus-group-next-unread-group: Group Manouvering. * gnus-group-next-unread-group-same-level: Group Manouvering. * gnus-group-post-news: Misc Group Stuff. * gnus-group-prepare-hook: Misc Group Stuff. * gnus-group-prev-group: Browse Foreign Server. + * gnus-group-prev-group: Group Manouvering. * gnus-group-prev-unread-group: Group Manouvering. * gnus-group-prev-unread-group-same-level: Group Manouvering. * gnus-group-quit: Exiting Gnus. *************** *** 158,165 **** * gnus-options-not-subscribe: New Groups. * gnus-options-subscribe: New Groups. * gnus-page-delimiter: Misc Article. - * gnus-plain-save-name: Saving Articles. * gnus-Plain-save-name: Saving Articles. * gnus-post-method: Reply Followup and Post. * gnus-post-prepare-function: Reply Followup and Post. * gnus-prepare-article-hook: Reply Followup and Post. --- 160,167 ---- * gnus-options-not-subscribe: New Groups. * gnus-options-subscribe: New Groups. * gnus-page-delimiter: Misc Article. * gnus-Plain-save-name: Saving Articles. + * gnus-plain-save-name: Saving Articles. * gnus-post-method: Reply Followup and Post. * gnus-post-prepare-function: Reply Followup and Post. * gnus-prepare-article-hook: Reply Followup and Post. *************** *** 207,213 **** --- 209,217 ---- * gnus-summary-catchup-all: Setting Marks. * gnus-summary-catchup-and-exit: Exiting the Summary Buffer. * gnus-summary-catchup-to-here: Setting Marks. + * gnus-summary-clear-above: Setting Marks. * gnus-summary-clear-mark-forward: Setting Marks. + * gnus-summary-copy-article: Mail Group Commands. * gnus-summary-default-score: Score Variables. * gnus-summary-delete-articles: Mail Group Commands. * gnus-summary-describe-briefly: Various Summary Stuff. *************** *** 220,225 **** --- 224,230 ---- * gnus-summary-expand-window: Various Summary Stuff. * gnus-summary-expand-window: Various Summary Stuff. * gnus-summary-expire-articles: Mail Group Commands. + * gnus-summary-expunge-below: Summary Score Commands. * gnus-summary-fetch-faq: Various Summary Stuff. * gnus-summary-first-unread-article: Choosing Articles. * gnus-summary-followup: Reply Followup and Post. *************** *** 228,235 **** --- 233,243 ---- * gnus-summary-followup-with-original: Reply Followup and Post. * gnus-summary-goto-last-article: Summary Manouvering. * gnus-summary-goto-subject: Summary Manouvering. + * gnus-summary-hide-all-dormant: Setting Marks. * gnus-summary-hide-all-threads: Threading Commands. * gnus-summary-hide-thread: Threading Commands. + * gnus-summary-isearch-article: Various Article Stuff. + * gnus-summary-kill-below: Setting Marks. * gnus-summary-kill-same-subject: Setting Marks. * gnus-summary-kill-same-subject-and-select: Setting Marks. * gnus-summary-kill-thread: Threading Commands. *************** *** 239,251 **** * gnus-summary-lower-by-subject: Summary Score Commands. * gnus-summary-lower-by-xref: Summary Score Commands. * gnus-summary-lower-followups-to-author: Summary Score Commands. * gnus-summary-lower-thread: Threading Commands. * gnus-summary-mail-forward: Reply Followup and Post. * gnus-summary-mail-other-window: Reply Followup and Post. * gnus-summary-make-false-root: Customizing Threading. ! * gnus-summary-mark-article-as-processable: Setting Process Marks. * gnus-summary-mark-as-dormant: Setting Marks. * gnus-summary-mark-as-expirable: Setting Marks. * gnus-summary-mark-as-read-forward: Setting Marks. * gnus-summary-mark-below: Score Files. * gnus-summary-mode-line-format: Summary Buffer Mode Line. --- 247,261 ---- * gnus-summary-lower-by-subject: Summary Score Commands. * gnus-summary-lower-by-xref: Summary Score Commands. * gnus-summary-lower-followups-to-author: Summary Score Commands. + * gnus-summary-lower-score: Summary Score Commands. * gnus-summary-lower-thread: Threading Commands. * gnus-summary-mail-forward: Reply Followup and Post. * gnus-summary-mail-other-window: Reply Followup and Post. * gnus-summary-make-false-root: Customizing Threading. ! * gnus-summary-mark-above: Setting Marks. * gnus-summary-mark-as-dormant: Setting Marks. * gnus-summary-mark-as-expirable: Setting Marks. + * gnus-summary-mark-as-processable: Setting Process Marks. * gnus-summary-mark-as-read-forward: Setting Marks. * gnus-summary-mark-below: Score Files. * gnus-summary-mode-line-format: Summary Buffer Mode Line. *************** *** 274,279 **** --- 284,290 ---- * gnus-summary-raise-by-subject: Summary Score Commands. * gnus-summary-raise-by-xref: Summary Score Commands. * gnus-summary-raise-followups-to-author: Summary Score Commands. + * gnus-summary-raise-score: Summary Score Commands. * gnus-summary-raise-thread: Threading Commands. * gnus-summary-refer-article: Finding the Parent. * gnus-summary-refer-parent-article: Finding the Parent. *************** *** 293,299 **** --- 304,314 ---- * gnus-summary-save-in-mail: Saving Articles. * gnus-summary-save-in-rmail: Saving Articles. * gnus-summary-scroll-up: Paging the Article. + * gnus-summary-search-article-backward: Various Summary Stuff. + * gnus-summary-search-article-forward: Various Summary Stuff. * gnus-summary-set-bookmark: Setting Marks. + * gnus-summary-set-mark-below: Summary Score Commands. + * gnus-summary-set-score: Summary Score Commands. * gnus-summary-show-all-dormant: Setting Marks. * gnus-summary-show-all-expunged: Setting Marks. * gnus-summary-show-all-threads: Threading Commands. *************** *** 315,327 **** * gnus-summary-temporarily-raise-by-thread: Summary Score Commands. * gnus-summary-temporarily-raise-by-xref: Summary Score Commands. * gnus-summary-temporarily-raise-followups-to-author: Summary Score Commands. * gnus-summary-tick-article-forward: Setting Marks. * gnus-summary-toggle-header: Various Article Stuff. * gnus-summary-toggle-mime: Various Article Stuff. * gnus-summary-toggle-threads: Threading Commands. * gnus-summary-universal-argument: Setting Process Marks. * gnus-summary-unmark-all-processable: Setting Process Marks. ! * gnus-summary-unmark-article-as-processable: Setting Process Marks. * gnus-summary-up-thread: Threading Commands. * gnus-suspend-gnus-hook: Exiting Gnus. * gnus-thread-hide-killed: Customizing Threading. --- 330,344 ---- * gnus-summary-temporarily-raise-by-thread: Summary Score Commands. * gnus-summary-temporarily-raise-by-xref: Summary Score Commands. * gnus-summary-temporarily-raise-followups-to-author: Summary Score Commands. + * gnus-summary-tick-above: Setting Marks. * gnus-summary-tick-article-forward: Setting Marks. * gnus-summary-toggle-header: Various Article Stuff. * gnus-summary-toggle-mime: Various Article Stuff. * gnus-summary-toggle-threads: Threading Commands. + * gnus-summary-toggle-truncation: Various Summary Stuff. * gnus-summary-universal-argument: Setting Process Marks. * gnus-summary-unmark-all-processable: Setting Process Marks. ! * gnus-summary-unmark-as-processable: Setting Process Marks. * gnus-summary-up-thread: Threading Commands. * gnus-suspend-gnus-hook: Exiting Gnus. * gnus-thread-hide-killed: Customizing Threading. *************** *** 417,431 **** * , (Summary): Choosing Articles. * . (Summary): Choosing Articles. * < (Summary): Paging the Article. - * = (Summary): Various Summary Stuff. * > (Summary): Paging the Article. * ? (Article): Article Keymap. * ? (Browse): Browse Foreign Server. * ? (Group): Misc Group Stuff. - * ? (Summary): Various Summary Stuff. * ? (Summary): Setting Marks. * a (Group): Misc Group Stuff. * a (Summary): Reply Followup and Post. * A c (Summary): Various Article Stuff. * A g (Summary): Various Article Stuff. * A h c (Summary): Various Article Stuff. --- 434,448 ---- * , (Summary): Choosing Articles. * . (Summary): Choosing Articles. * < (Summary): Paging the Article. * > (Summary): Paging the Article. * ? (Article): Article Keymap. * ? (Browse): Browse Foreign Server. * ? (Group): Misc Group Stuff. * ? (Summary): Setting Marks. * a (Group): Misc Group Stuff. * a (Summary): Reply Followup and Post. + * A < (Summary): Paging the Article. + * A > (Summary): Paging the Article. * A c (Summary): Various Article Stuff. * A g (Summary): Various Article Stuff. * A h c (Summary): Various Article Stuff. *************** *** 446,460 **** * c (Summary): Exiting the Summary Buffer. * C (Summary): Cancelling and Superseding. * C-c C-a (Group): Misc Group Stuff. * C-c C-c (Post): Reply Followup and Post. - * C-c C-d (Summary): Various Summary Stuff. * C-c C-f (Summary): Reply Followup and Post. * C-c C-i (Group): Misc Group Stuff. - * C-c C-i (Summary): Various Summary Stuff. - * C-c C-k (Group): Listing Groups. * C-c C-s (Group): Group Maintenance. * C-c C-x (Group): Group Maintenance. - * C-c C-z (Group): Listing Groups. * C-c M-# (Summary): Setting Process Marks. * C-c M-C-a (Group): Misc Group Stuff. * C-c M-C-x (Group): Group Maintenance. --- 463,474 ---- * c (Summary): Exiting the Summary Buffer. * C (Summary): Cancelling and Superseding. * C-c C-a (Group): Misc Group Stuff. + * C-c C-c (Article): Mail Group Commands. * C-c C-c (Post): Reply Followup and Post. * C-c C-f (Summary): Reply Followup and Post. * C-c C-i (Group): Misc Group Stuff. * C-c C-s (Group): Group Maintenance. * C-c C-x (Group): Group Maintenance. * C-c M-# (Summary): Setting Process Marks. * C-c M-C-a (Group): Misc Group Stuff. * C-c M-C-x (Group): Group Maintenance. *************** *** 462,468 **** * C-k (Summary): Setting Marks. * C-o (Summary): Saving Articles. * C-w (Group): Group Subscribing. - * C-x C-s (Summary): Various Summary Stuff. * C-x C-t (Group): Misc Group Stuff. * C-x M (Article): Article Keymap. * C-x m (Article): Article Keymap. --- 476,481 ---- *************** *** 480,487 **** --- 493,507 ---- * f (Summary): Reply Followup and Post. * F (Summary): Reply Followup and Post. * g (Group): Misc Group Stuff. + * G k (Group): Listing Groups. + * G M (Group): Listing Groups. + * G m (Group): Listing Groups. + * G s (Group): Listing Groups. + * G u: Listing Groups. + * G z (Group): Listing Groups. * I a p (Summary): Summary Score Commands. * I a t (Summary): Summary Score Commands. + * I C-i (Summary): Summary Score Commands. * I f p (Summary): Summary Score Commands. * I f t (Summary): Summary Score Commands. * I s p (Summary): Summary Score Commands. *************** *** 498,503 **** --- 518,524 ---- * l (Summary): Summary Manouvering. * L a p (Summary): Summary Score Commands. * L a t (Summary): Summary Score Commands. + * L C-l (Summary): Summary Score Commands. * L f p (Summary): Summary Score Commands. * L f t (Summary): Summary Score Commands. * L s p (Summary): Summary Score Commands. *************** *** 509,522 **** * m (Group): Misc Group Stuff. * m (Summary): Reply Followup and Post. * M ? (Summary): Setting Marks. - * M b (Summary): Setting Marks. * M B (Summary): Setting Marks. ! * M c (Summary): Setting Marks. * M C (Summary): Setting Marks. * M C-c (Summary): Setting Marks. * M d (Group): Foreign Groups. - * M D (Summary): Setting Marks. * M d (Summary): Setting Marks. * M e (Group): Foreign Groups. * M e (Summary): Setting Marks. * M h (Group): Foreign Groups. --- 530,543 ---- * m (Group): Misc Group Stuff. * m (Summary): Reply Followup and Post. * M ? (Summary): Setting Marks. * M B (Summary): Setting Marks. ! * M b (Summary): Setting Marks. * M C (Summary): Setting Marks. + * M c (Summary): Setting Marks. * M C-c (Summary): Setting Marks. * M d (Group): Foreign Groups. * M d (Summary): Setting Marks. + * M D (Summary): Setting Marks. * M e (Group): Foreign Groups. * M e (Summary): Setting Marks. * M h (Group): Foreign Groups. *************** *** 524,540 **** * M k (Group): Foreign Groups. * M m (Group): Foreign Groups. * M M-C-r (Summary): Setting Marks. * M M-r (Summary): Setting Marks. * M p a (Summary): Setting Process Marks. * M p p (Summary): Setting Process Marks. - * M p r (Summary): Setting Process Marks. * M p R (Summary): Setting Process Marks. * M p S (Summary): Setting Process Marks. * M p s (Summary): Setting Process Marks. * M p t (Summary): Setting Process Marks. * M p U (Summary): Setting Process Marks. * M p u (Summary): Setting Process Marks. * M S (Summary): Setting Marks. * M t (Summary): Setting Marks. * M-# (Summary): Setting Process Marks. * M-C-d (Summary): Setting Marks. --- 545,566 ---- * M k (Group): Foreign Groups. * M m (Group): Foreign Groups. * M M-C-r (Summary): Setting Marks. + * M M-D (Summary): Setting Marks. * M M-r (Summary): Setting Marks. * M p a (Summary): Setting Process Marks. * M p p (Summary): Setting Process Marks. * M p R (Summary): Setting Process Marks. + * M p r (Summary): Setting Process Marks. * M p S (Summary): Setting Process Marks. * M p s (Summary): Setting Process Marks. * M p t (Summary): Setting Process Marks. * M p U (Summary): Setting Process Marks. * M p u (Summary): Setting Process Marks. * M S (Summary): Setting Marks. + * M s c (Summary): Setting Marks. + * M s k (Summary): Setting Marks. + * M s m (Summary): Setting Marks. + * M s u (Summary): Setting Marks. * M t (Summary): Setting Marks. * M-# (Summary): Setting Process Marks. * M-C-d (Summary): Setting Marks. *************** *** 559,582 **** * n (Browse): Browse Foreign Server. * N (Group): Group Manouvering. * n (Group): Group Manouvering. * n (Summary): Choosing Articles. * N (Summary): Choosing Articles. - * N (Summary): Reply Followup and Post. * o (Summary): Saving Articles. * p (Browse): Browse Foreign Server. - * p (Group): Group Manouvering. * P (Group): Group Manouvering. ! * p (Summary): Choosing Articles. * P (Summary): Choosing Articles. * q (Browse): Browse Foreign Server. - * q (Group): Exiting Gnus. * Q (Group): Exiting Gnus. ! * Q (Summary): Exiting the Summary Buffer. * q (Summary): Exiting the Summary Buffer. * R (Group): Misc Group Stuff. * r (Group): Misc Group Stuff. - * r (Summary): Reply Followup and Post. * R (Summary): Reply Followup and Post. * RET (Group): Selecting a Group. * RET (Summary): Paging the Article. * s (Article): Article Keymap. --- 585,608 ---- * n (Browse): Browse Foreign Server. * N (Group): Group Manouvering. * n (Group): Group Manouvering. + * N (Summary): Reply Followup and Post. * n (Summary): Choosing Articles. * N (Summary): Choosing Articles. * o (Summary): Saving Articles. * p (Browse): Browse Foreign Server. * P (Group): Group Manouvering. ! * p (Group): Group Manouvering. * P (Summary): Choosing Articles. + * p (Summary): Choosing Articles. * q (Browse): Browse Foreign Server. * Q (Group): Exiting Gnus. ! * q (Group): Exiting Gnus. * q (Summary): Exiting the Summary Buffer. + * Q (Summary): Exiting the Summary Buffer. * R (Group): Misc Group Stuff. * r (Group): Misc Group Stuff. * R (Summary): Reply Followup and Post. + * r (Summary): Reply Followup and Post. * RET (Group): Selecting a Group. * RET (Summary): Paging the Article. * s (Article): Article Keymap. *************** *** 608,628 **** * up (Summary): Summary Manouvering. * V (Group): Misc Group Stuff. * V (Summary): Various Summary Stuff. * V D (Summary): Various Summary Stuff. * V f (Summary): Various Summary Stuff. * V m DEL (Summary): Mail Group Commands. * V m e (Summary): Mail Group Commands. * V m m (Summary): Mail Group Commands. * V m r (Summary): Mail Group Commands. * V m w (Summary): Mail Group Commands. * V s a (Summary): Summary Sorting. * V s d (Summary): Summary Sorting. * V s n (Summary): Summary Sorting. * V s s (Summary): Summary Sorting. * V u (Summary): Setting Process Marks. * V | (Summary): Various Article Stuff. - * Z (Group): Misc Group Stuff. * z (Group): Exiting Gnus. * ^ (Summary): Finding the Parent. --- 634,667 ---- * up (Summary): Summary Manouvering. * V (Group): Misc Group Stuff. * V (Summary): Various Summary Stuff. + * V ? (Summary): Various Summary Stuff. + * V b (Summary): Summary Score Commands. + * V B (Summary): Summary Score Commands. + * V C-r (Summary): Various Summary Stuff. + * V C-s (Summary): Various Summary Stuff. + * V d (Summary): Various Summary Stuff. * V D (Summary): Various Summary Stuff. + * V e (Summary): Various Summary Stuff. * V f (Summary): Various Summary Stuff. + * V g (Summary): Various Summary Stuff. + * V i (Summary): Various Summary Stuff. + * V m c (Summary): Mail Group Commands. * V m DEL (Summary): Mail Group Commands. * V m e (Summary): Mail Group Commands. * V m m (Summary): Mail Group Commands. * V m r (Summary): Mail Group Commands. * V m w (Summary): Mail Group Commands. + * V S (Summary): Various Summary Stuff. + * V S (Summary): Summary Score Commands. * V s a (Summary): Summary Sorting. * V s d (Summary): Summary Sorting. * V s n (Summary): Summary Sorting. * V s s (Summary): Summary Sorting. + * V T (Summary): Various Summary Stuff. * V u (Summary): Setting Process Marks. * V | (Summary): Various Article Stuff. * z (Group): Exiting Gnus. + * Z (Group): Misc Group Stuff. * ^ (Summary): Finding the Parent. diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus.texi dgnus/texi/gnus.texi *** pub/dgnus/texi/gnus.texi Sun Mar 12 16:38:57 1995 --- dgnus/texi/gnus.texi Wed Mar 15 01:36:47 1995 *************** *** 74,80 **** local spool or your mbox file. All at the same time, if you want to push your luck. ! This manual documents (ding) Gnus 0.32. @menu * History:: How Gnus got where it is today. --- 74,80 ---- local spool or your mbox file. All at the same time, if you want to push your luck. ! This manual documents (ding) Gnus 0.34. @menu * History:: How Gnus got where it is today. *************** *** 1208,1213 **** --- 1208,1218 ---- second element is a regular expression used on the header of each mail to determine if it belongs in this mail group. + The second element can also be a function. In that case, it will be + called narrowed to the headers with the first element of the rule as the + argument. It should return a non-nil value if it thinks that the mail + belongs in that group. + The last of these groups should always be a general one, and the regular expression should *always* be @samp{""} so that it matches any mails that haven't been matched by any of the other regexps. *************** *** 1360,1373 **** @section Listing Groups @table @kbd ! @item l @kindex l (Group) @findex gnus-group-list-groups List all subscribed groups that have unread articles (@code{gnus-group-list-groups}). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it only lists groups of level five or lower (ie. just subscribed groups). ! @item L @kindex L (Group) @findex gnus-group-list-all-groups List all subscribed and unsubscribed groups, whether they have unread --- 1365,1380 ---- @section Listing Groups @table @kbd ! @item l, G s ! @kindex G s (Group) @kindex l (Group) @findex gnus-group-list-groups List all subscribed groups that have unread articles (@code{gnus-group-list-groups}). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it only lists groups of level five or lower (ie. just subscribed groups). ! @item L, G u ! @kindex G u @kindex L (Group) @findex gnus-group-list-all-groups List all subscribed and unsubscribed groups, whether they have unread *************** *** 1375,1388 **** prefix is used, this command will list only groups of level ARG and lower. By default, it lists groups of level seven or lower (ie. just subscribed and unsubscribed groups). ! @item C-c C-k ! @kindex C-c C-k (Group) @findex gnus-group-list-killed List all killed groups (@code{gnus-group-list-killed}). ! @item C-c C-z ! @kindex C-c C-z (Group) @findex gnus-group-list-zombies List all zombie groups (@code{gnus-group-list-zombies}). @end table @node Group Maintenance --- 1382,1404 ---- prefix is used, this command will list only groups of level ARG and lower. By default, it lists groups of level seven or lower (ie. just subscribed and unsubscribed groups). ! @item G k ! @kindex G k (Group) @findex gnus-group-list-killed List all killed groups (@code{gnus-group-list-killed}). ! @item G z ! @kindex G z (Group) @findex gnus-group-list-zombies List all zombie groups (@code{gnus-group-list-zombies}). + @item G m + @kindex G m (Group) + @findex gnus-group-list-matching + List all subscribed groups with unread articles that match a regexp + (@code{gnus-group-list-matching}). + @item G M + @kindex G M (Group) + @findex gnus-group-list-all-matching + List groups that match a regexp (@code{gnus-group-list-all-matching}). @end table @node Group Maintenance *************** *** 1793,1798 **** --- 1809,1819 ---- variable equals @code{quietly}, Gnus will select the next group without asking for confirmation. Also see @code{gnus-keep-same-level}. + If Gnus asks you to press a key to confirm going to the next group, you + can use the @kbd{C-n} and @kbd{C-p} keys to move around the group + buffer, searching for the next group to read without actually returning + to the group buffer. + @vindex gnus-auto-center-summary If @code{gnus-auto-center-summary} is non-nil, Gnus will keep the point in the summary buffer centered at all times. This makes things quite *************** *** 1893,1905 **** @findex gnus-summary-scroll-up Scroll the current article one line forward (@code{gnus-summary-scroll-up}). ! @item < @kindex < (Summary) @findex gnus-summary-beginning-of-article Scroll to the beginning of the article (@code{gnus-summary-beginning-of-article}). ! @item > @kindex > (Summary) @findex gnus-summary-end-of-article Scroll to the end of the article (@code{gnus-summary-end-of-article}). @end table --- 1914,1928 ---- @findex gnus-summary-scroll-up Scroll the current article one line forward (@code{gnus-summary-scroll-up}). ! @item <, A < @kindex < (Summary) + @kindex A < (Summary) @findex gnus-summary-beginning-of-article Scroll to the beginning of the article (@code{gnus-summary-beginning-of-article}). ! @item >, A > @kindex > (Summary) + @kindex A > (Summary) @findex gnus-summary-end-of-article Scroll to the end of the article (@code{gnus-summary-end-of-article}). @end table *************** *** 2309,2314 **** --- 2332,2362 ---- @kindex M D (Summary) @findex gnus-summary-show-all-dormant Display all dormant articles (@code{gnus-summary-show-all-dormant}). + @item M M-D + @kindex M M-D (Summary) + @findex gnus-summary-hide-all-dormant + Hide all dormant articles (@code{gnus-summary-hide-all-dormant}). + @item M s k + @kindex M s k (Summary) + @findex gnus-summary-kill-below + Kill all articles with scores below the default score (or below the + numeric prefix) (@code{gnus-summary-kill-below}). + @item M s c + @kindex M s c (Summary) + @findex gnus-summary-clear-above + Clear all marks from articles with scores over the default score (or + over the numeric prefix) (@code{gnus-summary-clear-above}). + @item M s u + @kindex M s u (Summary) + @findex gnus-summary-tick-above + Tick all articles with scores over the default score (or over the + numeric prefix) (@code{gnus-summary-clear-above}). + @item M s m + @kindex M s m (Summary) + @findex gnus-summary-mark-above + Prompt for a mark, and mark all articles with scores over the default + score (or over the numeric prefix) with this mark + (@code{gnus-summary-clear-above}). @end table @node Setting Process Marks *************** *** 2318,2332 **** @item #, M p @kindex # (Summary) @kindex M p p (Summary) ! @findex gnus-summary-mark-article-as-processable Mark the current article with the process mark ! (@code{gnus-summary-mark-article-as-processable}). ! @findex gnus-summary-unmark-article-as-processable @item M-#, M p u @kindex M-# (Summary) @kindex M p u (Summary) Remove the process mark from the current article ! (@code{gnus-summary-unmark-article-as-processable}). @item C-c M-#, M p U @kindex C-c M-# (Summary) @kindex M p U (Summary) --- 2366,2380 ---- @item #, M p @kindex # (Summary) @kindex M p p (Summary) ! @findex gnus-summary-mark-as-processable Mark the current article with the process mark ! (@code{gnus-summary-mark-as-processable}). ! @findex gnus-summary-unmark-as-processable @item M-#, M p u @kindex M-# (Summary) @kindex M p u (Summary) Remove the process mark from the current article ! (@code{gnus-summary-unmark-as-processable}). @item C-c M-#, M p U @kindex C-c M-# (Summary) @kindex M p U (Summary) *************** *** 2449,2455 **** thread. @item gnus-thread-indent-level @vindex gnus-thread-indent-level ! This is a number which says how many spaces to indent a thread. The default is @samp{4}. @end table --- 2497,2503 ---- thread. @item gnus-thread-indent-level @vindex gnus-thread-indent-level ! This is a number that how much each subthread should be indented. The default is @samp{4}. @end table *************** *** 2750,2755 **** --- 2798,2813 ---- (@code{gnus-uu-decode-uu-and-save-view}). @end table + Remember that these all react to the presence of articles marked with + the process mark. If, for instance, you'd like to uncode and save an + entire newsgroup, you'd typically do @kbd{M p a} + (@code{gnus-uu-mark-all}) and then @kbd{X U} (@code{gnus-uu-decode-uu}). + + All this is very much different from how gnus-uu worked with GNUS 4.1, + where you had explicit keystrokes for everything under the sun. This + version of gnus-uu generally assumes that you either mark articles in + some way (@pxref{Setting Process Marks}) and then press @kbd{X u}. + @node Shared Articles @subsection Shared Articles *************** *** 2946,2951 **** --- 3004,3014 ---- @findex gnus-summary-stop-page-breaking Remove page breaking from the current article (@code{gnus-summary-stop-page-breaking}). + @item A s + @item A s (Summary) + @findex gnus-summary-isearch-article + Perform an isearch in the article buffer + (@code{gnus-summary-isearch-article}). @item A c @kindex A c (Summary) @findex gnus-summary-caesar-message *************** *** 2968,2974 **** @item V | @kindex V | (Summary) @findex gnus-summary-pipe-output ! Pipe the current article through a filter (@code{gnus-summary-pipe-output}). @end table --- 3031,3037 ---- @item V | @kindex V | (Summary) @findex gnus-summary-pipe-output ! Pipe the current article to a process (@code{gnus-summary-pipe-output}). @end table *************** *** 3094,3099 **** --- 3157,3193 ---- @node Summary Score Commands @subsection Summary Score Commands + General score commands that have nothing to do with the score files: + + @table @kbd + @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 I C-i + @kindex I C-i (Summary) + @findex gnus-summary-raise-score + Raise the score of the current article + (@code{gnus-summary-raise-score}). + @item L C-l + @kindex L C-l (Summary) + @findex gnus-summary-lower-score + Lower the score of the current article + (@code{gnus-summary-lower-score}). + @item V b + @kindex V b (Summary) + @findex gnus-summary-set-mark-below + Prompt for a score, and mark all articles with a score below this as + read (@code{gnus-summary-set-mark-below}). + @item V B + @kindex V B (Summary) + @findex gnus-summary-expunge-below + Expunge all articles with a score below the default score (or the + numeric prefix) (@code{gnus-summary-expunge-below}). + @end table + + The rest of these commands modify the local score file. + Commands for increasing score: @table @kbd *************** *** 3289,3294 **** --- 3383,3389 ---- ("alt.politics" nil -1000 "Mon Mar 6 11:17:24 1995")) (mark . 0) (expunge . -1000) + (mark-and-expunge . -10) (files "/hom/larsi/News/gnu.SCORE") (eval (ding)))) @end example *************** *** 3317,3322 **** --- 3412,3420 ---- lower than this number will be marked as read. @item expunge The value of this entry should be a number. Any articles with a score + lower than this number will be removed from the summary buffer. + @item mark-and-expunge + The value of this entry should be a number. Any articles with a score lower than this number will be marked as read and removed from the summary buffer. @item files *************** *** 3371,3376 **** --- 3469,3479 ---- @findex gnus-summary-move-article Move the article from one mail group to another (@code{gnus-summary-move-article}). + @item V m c + @kindex V m c (Summary) + @findex gnus-summary-copy-article + Copy the article from one group (mail group or not) to a mail group + (@code{gnus-summary-copy-article}). @item V m r @kindex V m r (Summary) @findex gnus-summary-respool-article *************** *** 3379,3385 **** @kindex V m w (Summary) @kindex e (Summary) @findex gnus-summary-edit-article ! Edit the current article (@code{gnus-summary-edit-article}). @end table @node Various Summary Stuff --- 3482,3491 ---- @kindex V m w (Summary) @kindex e (Summary) @findex gnus-summary-edit-article ! @kindex C-c C-c (Article) ! Edit the current article (@code{gnus-summary-edit-article}). Type ! @kbd{C-c C-c} (@kbd{gnus-summary-edit-article-done}) to finish editing ! and make the changes permanent. @end table @node Various Summary Stuff *************** *** 3406,3426 **** This command will prompt you for a header field, a regular expression to be matched this field, and a command to be executed if the match is made. ! @item = ! @kindex = (Summary) @findex gnus-summary-expand-window ! Delete all other windows (@code{gnus-summary-expand-window}). ! @item C-x C-s ! @kindex C-x C-s (Summary) @findex gnus-summary-reselect-current-group Exit this group, and then enter it again (@code{gnus-summary-reselect-current-group}). ! @item C-c C-d ! @kindex C-c C-d (Summary) @findex gnus-summary-describe-group Give a brief description of the current group (@code{gnus-summary-describe-group}). ! @item M-g @kindex M-g (Summary) @findex gnus-summary-rescan-group Exit group, check for new articles in the group, and select the group --- 3512,3547 ---- This command will prompt you for a header field, a regular expression to be matched this field, and a command to be executed if the match is made. ! @item V C-s ! @kindex V C-s (Summary) ! @findex gnus-summary-search-article-forward ! Search through all subsequent articles for a regexp ! (@code{gnus-summary-search-article-forward}). ! @item V C-r ! @kindex V C-r (Summary) ! @findex gnus-summary-search-article-backward ! Search through all previous articles for a regexp ! (@code{gnus-summary-search-article-backward}). ! @item V T ! @kindex V T (Summary) ! @findex gnus-summary-toggle-truncation ! Toggle truncation of summary lines (@code{gnus-summary-toggle-truncation}). ! @item V e ! @kindex V e (Summary) @findex gnus-summary-expand-window ! Expand the summary buffer window (@code{gnus-summary-expand-window}). ! @item V S ! @kindex V S (Summary) @findex gnus-summary-reselect-current-group Exit this group, and then enter it again (@code{gnus-summary-reselect-current-group}). ! @item V d ! @kindex V d (Summary) @findex gnus-summary-describe-group Give a brief description of the current group (@code{gnus-summary-describe-group}). ! @item V g, M-g ! @kindex V g (Summary) @kindex M-g (Summary) @findex gnus-summary-rescan-group Exit group, check for new articles in the group, and select the group *************** *** 3429,3441 **** @kindex V (Summary) @findex gnus-version Display the Gnus version numbers (@code{gnus-version}). ! @item ? ! @kindex ? (Summary) @findex gnus-summary-describe-briefly Give a very brief description of the most important summary keystrokes (@code{gnus-summary-describe-briefly}). ! @item C-c C-i ! @kindex C-c C-i (Summary) @findex gnus-info-find-node Go to the Gnus info node (@code{gnus-info-find-node}). @end table --- 3550,3562 ---- @kindex V (Summary) @findex gnus-version Display the Gnus version numbers (@code{gnus-version}). ! @item V ? ! @kindex V ? (Summary) @findex gnus-summary-describe-briefly Give a very brief description of the most important summary keystrokes (@code{gnus-summary-describe-briefly}). ! @item V i ! @kindex V i (Summary) @findex gnus-info-find-node Go to the Gnus info node (@code{gnus-info-find-node}). @end table