diff options
| author | Lars Magne Ingebrigtsen | 1995-12-06 21:19:47 +0000 |
|---|---|---|
| committer | Lars Magne Ingebrigtsen | 1995-12-06 21:19:47 +0000 |
| commit | 7e988fb615565b9b757501f340d05278bdd09cee (patch) | |
| tree | 92fb7159b2d55daf3f352ce06ade0f6d80dd7d41 | |
| parent | e1dadc172e73067afc270bca4f94327e7f3ffe32 (diff) | |
| download | emacs-7e988fb615565b9b757501f340d05278bdd09cee.tar.gz emacs-7e988fb615565b9b757501f340d05278bdd09cee.zip | |
* gnus.el (gnus-parse-headers-hook): New hook.
(gnus-get-newsgroup-headers): Call it.
(gnus-get-newsgroup-headers-xover): Call it.
(gnus-group-mode-map): Moved `gnus-group-fetch-faq' from `M-f' to
`H f'.
(gnus-summary-copy-article): Allow respooling to any backend.
(gnus-summary-set-process-mark): Make sure each article can only
be process marked once.
(gnus-summary-remove-lines-marked-with): Put point on a valid
article after removing lines.
(gnus-summary-sort-by-author): Didn't allow sorting when
pseudo-articles were present.
(gnus-summary-sort-by-subject): Ditto.
| -rw-r--r-- | lisp/gnus.el | 59 |
1 files changed, 40 insertions, 19 deletions
diff --git a/lisp/gnus.el b/lisp/gnus.el index 1b6be07ddc9..cd12431adaf 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el | |||
| @@ -1194,6 +1194,9 @@ following hook: | |||
| 1194 | It is meant to be used for highlighting the article in some way. It | 1194 | It is meant to be used for highlighting the article in some way. It |
| 1195 | is not run if `gnus-visual' is nil.") | 1195 | is not run if `gnus-visual' is nil.") |
| 1196 | 1196 | ||
| 1197 | (defun gnus-parse-headers-hook nil | ||
| 1198 | "*A hook called before parsing the headers.") | ||
| 1199 | |||
| 1197 | (defvar gnus-exit-group-hook nil | 1200 | (defvar gnus-exit-group-hook nil |
| 1198 | "*A hook called when exiting (not quitting) summary mode.") | 1201 | "*A hook called when exiting (not quitting) summary mode.") |
| 1199 | 1202 | ||
| @@ -3075,6 +3078,7 @@ Note: LIST has to be sorted over `<'." | |||
| 3075 | (defvar gnus-group-group-map nil) | 3078 | (defvar gnus-group-group-map nil) |
| 3076 | (defvar gnus-group-mark-map nil) | 3079 | (defvar gnus-group-mark-map nil) |
| 3077 | (defvar gnus-group-list-map nil) | 3080 | (defvar gnus-group-list-map nil) |
| 3081 | (defvar gnus-group-help-map nil) | ||
| 3078 | (defvar gnus-group-sub-map nil) | 3082 | (defvar gnus-group-sub-map nil) |
| 3079 | (put 'gnus-group-mode 'mode-class 'special) | 3083 | (put 'gnus-group-mode 'mode-class 'special) |
| 3080 | 3084 | ||
| @@ -3131,7 +3135,6 @@ Note: LIST has to be sorted over `<'." | |||
| 3131 | (define-key gnus-group-mode-map "Z" 'gnus-group-clear-dribble) | 3135 | (define-key gnus-group-mode-map "Z" 'gnus-group-clear-dribble) |
| 3132 | (define-key gnus-group-mode-map "q" 'gnus-group-exit) | 3136 | (define-key gnus-group-mode-map "q" 'gnus-group-exit) |
| 3133 | (define-key gnus-group-mode-map "Q" 'gnus-group-quit) | 3137 | (define-key gnus-group-mode-map "Q" 'gnus-group-quit) |
| 3134 | (define-key gnus-group-mode-map "\M-f" 'gnus-group-fetch-faq) | ||
| 3135 | (define-key gnus-group-mode-map "?" 'gnus-group-describe-briefly) | 3138 | (define-key gnus-group-mode-map "?" 'gnus-group-describe-briefly) |
| 3136 | (define-key gnus-group-mode-map "\C-c\C-i" 'gnus-info-find-node) | 3139 | (define-key gnus-group-mode-map "\C-c\C-i" 'gnus-info-find-node) |
| 3137 | (define-key gnus-group-mode-map "\M-e" 'gnus-group-edit-group-method) | 3140 | (define-key gnus-group-mode-map "\M-e" 'gnus-group-edit-group-method) |
| @@ -3181,6 +3184,10 @@ Note: LIST has to be sorted over `<'." | |||
| 3181 | (define-key gnus-group-list-map "m" 'gnus-group-list-matching) | 3184 | (define-key gnus-group-list-map "m" 'gnus-group-list-matching) |
| 3182 | (define-key gnus-group-list-map "M" 'gnus-group-list-all-matching) | 3185 | (define-key gnus-group-list-map "M" 'gnus-group-list-all-matching) |
| 3183 | 3186 | ||
| 3187 | (define-prefix-command 'gnus-group-help-map) | ||
| 3188 | (define-key gnus-group-mode-map "H" 'gnus-group-help-map) | ||
| 3189 | (define-key gnus-group-help-map "f" 'gnus-group-fetch-faq) | ||
| 3190 | |||
| 3184 | (define-prefix-command 'gnus-group-sub-map) | 3191 | (define-prefix-command 'gnus-group-sub-map) |
| 3185 | (define-key gnus-group-mode-map "S" 'gnus-group-sub-map) | 3192 | (define-key gnus-group-mode-map "S" 'gnus-group-sub-map) |
| 3186 | (define-key gnus-group-sub-map "l" 'gnus-group-set-current-level) | 3193 | (define-key gnus-group-sub-map "l" 'gnus-group-set-current-level) |
| @@ -7175,6 +7182,8 @@ The resulting hash table is returned, or nil if no Xrefs were found." | |||
| 7175 | headers id dep end ref) | 7182 | headers id dep end ref) |
| 7176 | (save-excursion | 7183 | (save-excursion |
| 7177 | (set-buffer nntp-server-buffer) | 7184 | (set-buffer nntp-server-buffer) |
| 7185 | ;; Allow the user to mangle the headers before parsing them. | ||
| 7186 | (run-hooks 'gnus-parse-headers-hook) | ||
| 7178 | (goto-char (point-min)) | 7187 | (goto-char (point-min)) |
| 7179 | ;; Search to the beginning of the next header. Error messages | 7188 | ;; Search to the beginning of the next header. Error messages |
| 7180 | ;; do not begin with 2 or 3. | 7189 | ;; do not begin with 2 or 3. |
| @@ -7312,6 +7321,8 @@ list of headers that match SEQUENCE (see `nntp-retrieve-headers')." | |||
| 7312 | number headers header) | 7321 | number headers header) |
| 7313 | (save-excursion | 7322 | (save-excursion |
| 7314 | (set-buffer nntp-server-buffer) | 7323 | (set-buffer nntp-server-buffer) |
| 7324 | ;; Allow the user to mangle the headers before parsing them. | ||
| 7325 | (run-hooks 'gnus-parse-headers-hook) | ||
| 7315 | (goto-char (point-min)) | 7326 | (goto-char (point-min)) |
| 7316 | (while (and sequence (not (eobp))) | 7327 | (while (and sequence (not (eobp))) |
| 7317 | (setq number (read cur)) | 7328 | (setq number (read cur)) |
| @@ -8959,7 +8970,7 @@ functions. (Ie. mail newsgroups at present.)" | |||
| 8959 | (gnus-request-article-this-buffer | 8970 | (gnus-request-article-this-buffer |
| 8960 | (car articles) gnus-newsgroup-name) | 8971 | (car articles) gnus-newsgroup-name) |
| 8961 | (gnus-request-accept-article | 8972 | (gnus-request-accept-article |
| 8962 | (if select-method (quote select-method) to-newsgroup) | 8973 | (if select-method (list 'quote select-method) to-newsgroup) |
| 8963 | (not (cdr articles))))) | 8974 | (not (cdr articles))))) |
| 8964 | (let* ((entry | 8975 | (let* ((entry |
| 8965 | (or | 8976 | (or |
| @@ -9431,7 +9442,9 @@ the actual number of articles marked is returned." | |||
| 9431 | 9442 | ||
| 9432 | (defun gnus-summary-set-process-mark (article) | 9443 | (defun gnus-summary-set-process-mark (article) |
| 9433 | "Set the process mark on ARTICLE and update the summary line." | 9444 | "Set the process mark on ARTICLE and update the summary line." |
| 9434 | (setq gnus-newsgroup-processable (cons article gnus-newsgroup-processable)) | 9445 | (setq gnus-newsgroup-processable |
| 9446 | (cons article | ||
| 9447 | (delq article gnus-newsgroup-processable))) | ||
| 9435 | (let ((buffer-read-only nil)) | 9448 | (let ((buffer-read-only nil)) |
| 9436 | (if (gnus-summary-goto-subject article) | 9449 | (if (gnus-summary-goto-subject article) |
| 9437 | (progn | 9450 | (progn |
| @@ -9757,7 +9770,10 @@ even ticked and dormant ones." | |||
| 9757 | ;; Fix by Sudish Joseph <joseph@cis.ohio-state.edu>. | 9770 | ;; Fix by Sudish Joseph <joseph@cis.ohio-state.edu>. |
| 9758 | (gnus-set-global-variables) | 9771 | (gnus-set-global-variables) |
| 9759 | (let ((buffer-read-only nil) | 9772 | (let ((buffer-read-only nil) |
| 9760 | (orig-article (gnus-summary-article-number)) | 9773 | (orig-article |
| 9774 | (progn | ||
| 9775 | (gnus-summary-search-forward t) | ||
| 9776 | (gnus-summary-article-number))) | ||
| 9761 | (marks (concat "^[" marks "]"))) | 9777 | (marks (concat "^[" marks "]"))) |
| 9762 | (goto-char (point-min)) | 9778 | (goto-char (point-min)) |
| 9763 | (if gnus-newsgroup-adaptive | 9779 | (if gnus-newsgroup-adaptive |
| @@ -10231,12 +10247,14 @@ Argument REVERSE means reverse order." | |||
| 10231 | (cons | 10247 | (cons |
| 10232 | (lambda () | 10248 | (lambda () |
| 10233 | (let* ((header (gnus-get-header-by-num (gnus-summary-article-number))) | 10249 | (let* ((header (gnus-get-header-by-num (gnus-summary-article-number))) |
| 10234 | (extract (funcall | 10250 | extract) |
| 10235 | gnus-extract-address-components | 10251 | (if (not (vectorp header)) |
| 10236 | (mail-header-from header)))) | 10252 | "" |
| 10237 | (concat (or (car extract) (cdr extract)) | 10253 | (setq extract (funcall gnus-extract-address-components |
| 10238 | "\r" (int-to-string (mail-header-number header)) | 10254 | (mail-header-from header))) |
| 10239 | "\r" (mail-header-subject header)))) | 10255 | (concat (or (car extract) (cdr extract)) |
| 10256 | "\r" (int-to-string (mail-header-number header)) | ||
| 10257 | "\r" (mail-header-subject header))))) | ||
| 10240 | 'gnus-thread-sort-by-author) | 10258 | 'gnus-thread-sort-by-author) |
| 10241 | reverse)) | 10259 | reverse)) |
| 10242 | 10260 | ||
| @@ -10250,13 +10268,15 @@ Argument REVERSE means reverse order." | |||
| 10250 | (cons | 10268 | (cons |
| 10251 | (lambda () | 10269 | (lambda () |
| 10252 | (let* ((header (gnus-get-header-by-num (gnus-summary-article-number))) | 10270 | (let* ((header (gnus-get-header-by-num (gnus-summary-article-number))) |
| 10253 | (extract (funcall | 10271 | extract) |
| 10254 | gnus-extract-address-components | 10272 | (if (not (vectorp header)) |
| 10255 | (mail-header-from header)))) | 10273 | "" |
| 10256 | (concat | 10274 | (setq extract (funcall gnus-extract-address-components |
| 10257 | (downcase (gnus-simplify-subject (gnus-summary-subject-string) t)) | 10275 | (mail-header-from header))) |
| 10258 | "\r" (int-to-string (mail-header-number header)) | 10276 | (concat |
| 10259 | "\r" (or (car extract) (cdr extract))))) | 10277 | (downcase (gnus-simplify-subject (gnus-summary-subject-string) t)) |
| 10278 | "\r" (int-to-string (mail-header-number header)) | ||
| 10279 | "\r" (or (car extract) (cdr extract)))))) | ||
| 10260 | 'gnus-thread-sort-by-subject) | 10280 | 'gnus-thread-sort-by-subject) |
| 10261 | reverse)) | 10281 | reverse)) |
| 10262 | 10282 | ||
| @@ -10853,7 +10873,8 @@ The following commands are available: | |||
| 10853 | (erase-buffer) | 10873 | (erase-buffer) |
| 10854 | ;; There may be some overlays that we have to kill... | 10874 | ;; There may be some overlays that we have to kill... |
| 10855 | (insert "i") | 10875 | (insert "i") |
| 10856 | (let ((overlays (overlays-at (point-min)))) | 10876 | (let ((overlays (and (fboundp 'overlays-at) |
| 10877 | (overlays-at (point-min))))) | ||
| 10857 | (while overlays | 10878 | (while overlays |
| 10858 | (delete-overlay (car overlays)) | 10879 | (delete-overlay (car overlays)) |
| 10859 | (setq overlays (cdr overlays)))) | 10880 | (setq overlays (cdr overlays)))) |
| @@ -12056,7 +12077,7 @@ If LEVEL is non-nil, the news will be set up at level LEVEL." | |||
| 12056 | 12077 | ||
| 12057 | ;; Find new newsgroups and treat them. | 12078 | ;; Find new newsgroups and treat them. |
| 12058 | (if (and init gnus-check-new-newsgroups gnus-read-active-file (not level) | 12079 | (if (and init gnus-check-new-newsgroups gnus-read-active-file (not level) |
| 12059 | (gnus-server-opened gnus-select-method)) | 12080 | (gnus-check-server gnus-select-method)) |
| 12060 | (gnus-find-new-newsgroups)) | 12081 | (gnus-find-new-newsgroups)) |
| 12061 | 12082 | ||
| 12062 | ;; Find the number of unread articles in each non-dead group. | 12083 | ;; Find the number of unread articles in each non-dead group. |