comparison lisp/gnus/gnus-sum.el @ 90043:e24e2e78deda

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-69 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-643 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-649 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-650 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-651 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-655 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-656 Update from CVS: lisp/man.el (Man-xref-normal-file): Fix help-echo. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-657 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-658 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-659 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-660 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-661 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-667 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-61 - miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-68 Update from CVS
author Miles Bader <miles@gnu.org>
date Thu, 04 Nov 2004 08:55:40 +0000
parents f3ec05478165 df80d19d7a2e
children f2ebccfa87d4
comparison
equal deleted inserted replaced
90042:003d95404d71 90043:e24e2e78deda
467 :group 'gnus-summary-marks 467 :group 'gnus-summary-marks
468 :type 'character) 468 :type 'character)
469 469
470 (defcustom gnus-spam-mark ?$ 470 (defcustom gnus-spam-mark ?$
471 "*Mark used for spam articles." 471 "*Mark used for spam articles."
472 :version "21.4"
472 :group 'gnus-summary-marks 473 :group 'gnus-summary-marks
473 :type 'character) 474 :type 'character)
474 475
475 (defcustom gnus-souped-mark ?F 476 (defcustom gnus-souped-mark ?F
476 "*Mark used for souped articles." 477 "*Mark used for souped articles."
503 :group 'gnus-summary-marks 504 :group 'gnus-summary-marks
504 :type 'character) 505 :type 'character)
505 506
506 (defcustom gnus-recent-mark ?N 507 (defcustom gnus-recent-mark ?N
507 "*Mark used for articles that are recent." 508 "*Mark used for articles that are recent."
509 :version "21.4"
508 :group 'gnus-summary-marks 510 :group 'gnus-summary-marks
509 :type 'character) 511 :type 'character)
510 512
511 (defcustom gnus-cached-mark ?* 513 (defcustom gnus-cached-mark ?*
512 "*Mark used for articles that are in the cache." 514 "*Mark used for articles that are in the cache."
550 :group 'gnus-summary-marks 552 :group 'gnus-summary-marks
551 :type 'character) 553 :type 'character)
552 554
553 (defcustom gnus-undownloaded-mark ?- 555 (defcustom gnus-undownloaded-mark ?-
554 "*Mark used for articles that weren't downloaded." 556 "*Mark used for articles that weren't downloaded."
557 :version "21.4"
555 :group 'gnus-summary-marks 558 :group 'gnus-summary-marks
556 :type 'character) 559 :type 'character)
557 560
558 (defcustom gnus-downloaded-mark ?+ 561 (defcustom gnus-downloaded-mark ?+
559 "*Mark used for articles that were downloaded." 562 "*Mark used for articles that were downloaded."
888 :group 'gnus-summary 891 :group 'gnus-summary
889 :type 'hook) 892 :type 'hook)
890 893
891 (defcustom gnus-summary-article-move-hook nil 894 (defcustom gnus-summary-article-move-hook nil
892 "*A hook called after an article is moved, copied, respooled, or crossposted." 895 "*A hook called after an article is moved, copied, respooled, or crossposted."
896 :version "21.4"
893 :group 'gnus-summary 897 :group 'gnus-summary
894 :type 'hook) 898 :type 'hook)
895 899
896 (defcustom gnus-summary-article-delete-hook nil 900 (defcustom gnus-summary-article-delete-hook nil
897 "*A hook called after an article is deleted." 901 "*A hook called after an article is deleted."
902 :version "21.4"
898 :group 'gnus-summary 903 :group 'gnus-summary
899 :type 'hook) 904 :type 'hook)
900 905
901 (defcustom gnus-summary-article-expire-hook nil 906 (defcustom gnus-summary-article-expire-hook nil
902 "*A hook called after an article is expired." 907 "*A hook called after an article is expired."
908 :version "21.4"
903 :group 'gnus-summary 909 :group 'gnus-summary
904 :type 'hook) 910 :type 'hook)
905 911
906 (defcustom gnus-summary-display-arrow 912 (defcustom gnus-summary-display-arrow
907 (and (fboundp 'display-graphic-p) 913 (and (fboundp 'display-graphic-p)
3223 (defun gnus-update-summary-mark-positions () 3229 (defun gnus-update-summary-mark-positions ()
3224 "Compute where the summary marks are to go." 3230 "Compute where the summary marks are to go."
3225 (save-excursion 3231 (save-excursion
3226 (when (gnus-buffer-exists-p gnus-summary-buffer) 3232 (when (gnus-buffer-exists-p gnus-summary-buffer)
3227 (set-buffer gnus-summary-buffer)) 3233 (set-buffer gnus-summary-buffer))
3228 (let ((gnus-replied-mark 129) 3234 (let ((spec gnus-summary-line-format-spec)
3229 (gnus-score-below-mark 130) 3235 pos)
3230 (gnus-score-over-mark 130)
3231 (gnus-undownloaded-mark 131)
3232 (spec gnus-summary-line-format-spec)
3233 gnus-visual pos)
3234 (save-excursion 3236 (save-excursion
3235 (gnus-set-work-buffer) 3237 (gnus-set-work-buffer)
3236 (let ((gnus-summary-line-format-spec spec) 3238 (let ((gnus-tmp-unread ?Z)
3239 (gnus-replied-mark ?Z)
3240 (gnus-score-below-mark ?Z)
3241 (gnus-score-over-mark ?Z)
3242 (gnus-undownloaded-mark ?Z)
3243 (gnus-summary-line-format-spec spec)
3237 (gnus-newsgroup-downloadable '(0)) 3244 (gnus-newsgroup-downloadable '(0))
3238 marks) 3245 (header [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil])
3239 (insert ?\200 "\200" ?\201 "\201" ?\202 "\202" ?\203 "\203") 3246 case-fold-search ignores)
3240 (while (not (bobp)) 3247 ;; Here, all marks are bound to Z.
3241 (push (buffer-substring (1- (point)) (point)) marks) 3248 (gnus-summary-insert-line header
3242 (backward-char)) 3249 0 nil t gnus-tmp-unread t nil "" nil 1)
3250 (goto-char (point-min))
3251 ;; Memorize the positions of the same characters as dummy marks.
3252 (while (re-search-forward "[A-D]" nil t)
3253 (push (point) ignores))
3243 (erase-buffer) 3254 (erase-buffer)
3244 (gnus-summary-insert-line 3255 ;; We use A-D as dummy marks in order to know column positions
3245 [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil] 3256 ;; where marks should be inserted.
3246 0 nil t 128 t nil "" nil 1) 3257 (setq gnus-tmp-unread ?A
3258 gnus-replied-mark ?B
3259 gnus-score-below-mark ?C
3260 gnus-score-over-mark ?C
3261 gnus-undownloaded-mark ?D)
3262 (gnus-summary-insert-line header
3263 0 nil t gnus-tmp-unread t nil "" nil 1)
3264 ;; Ignore characters which aren't dummy marks.
3265 (dolist (p ignores)
3266 (delete-region (goto-char (1- p)) p)
3267 (insert ?Z))
3247 (goto-char (point-min)) 3268 (goto-char (point-min))
3248 (setq pos (list (cons 'unread 3269 (setq pos (list (cons 'unread
3249 (and (or (search-forward (nth 0 marks) nil t) 3270 (and (search-forward "A" nil t)
3250 (search-forward (nth 1 marks) nil t))
3251 (- (point) (point-min) 1))))) 3271 (- (point) (point-min) 1)))))
3252 (goto-char (point-min)) 3272 (goto-char (point-min))
3253 (push (cons 'replied (and (or (search-forward (nth 2 marks) nil t) 3273 (push (cons 'replied (and (search-forward "B" nil t)
3254 (search-forward (nth 3 marks) nil t))
3255 (- (point) (point-min) 1))) 3274 (- (point) (point-min) 1)))
3256 pos) 3275 pos)
3257 (goto-char (point-min)) 3276 (goto-char (point-min))
3258 (push (cons 'score (and (or (search-forward (nth 4 marks) nil t) 3277 (push (cons 'score (and (search-forward "C" nil t)
3259 (search-forward (nth 5 marks) nil t))
3260 (- (point) (point-min) 1))) 3278 (- (point) (point-min) 1)))
3261 pos) 3279 pos)
3262 (goto-char (point-min)) 3280 (goto-char (point-min))
3263 (push (cons 'download (and (or (search-forward (nth 6 marks) nil t) 3281 (push (cons 'download (and (search-forward "D" nil t)
3264 (search-forward (nth 7 marks) nil t))
3265 (- (point) (point-min) 1))) 3282 (- (point) (point-min) 1)))
3266 pos))) 3283 pos)))
3267 (setq gnus-summary-mark-positions pos)))) 3284 (setq gnus-summary-mark-positions pos))))
3268 3285
3269 (defun gnus-summary-insert-dummy-line (gnus-tmp-subject gnus-tmp-number) 3286 (defun gnus-summary-insert-dummy-line (gnus-tmp-subject gnus-tmp-number)
3557 (setq gnus-newsgroup-active 3574 (setq gnus-newsgroup-active
3558 (gnus-copy-sequence 3575 (gnus-copy-sequence
3559 (gnus-active gnus-newsgroup-name))) 3576 (gnus-active gnus-newsgroup-name)))
3560 ;; You can change the summary buffer in some way with this hook. 3577 ;; You can change the summary buffer in some way with this hook.
3561 (gnus-run-hooks 'gnus-select-group-hook) 3578 (gnus-run-hooks 'gnus-select-group-hook)
3562 (gnus-update-format-specifications 3579 (when (memq 'summary (gnus-update-format-specifications
3563 nil 'summary 'summary-mode 'summary-dummy) 3580 nil 'summary 'summary-mode 'summary-dummy))
3564 (gnus-update-summary-mark-positions) 3581 ;; The format specification for the summary line was updated,
3582 ;; so we need to update the mark positions as well.
3583 (gnus-update-summary-mark-positions))
3565 ;; Do score processing. 3584 ;; Do score processing.
3566 (when gnus-use-scoring 3585 (when gnus-use-scoring
3567 (gnus-possibly-score-headers)) 3586 (gnus-possibly-score-headers))
3568 ;; Check whether to fill in the gaps in the threads. 3587 ;; Check whether to fill in the gaps in the threads.
3569 (when gnus-build-sparse-threads 3588 (when gnus-build-sparse-threads
9163 9182
9164 (defcustom gnus-summary-display-while-building nil 9183 (defcustom gnus-summary-display-while-building nil
9165 "If non-nil, show and update the summary buffer as it's being built. 9184 "If non-nil, show and update the summary buffer as it's being built.
9166 If the value is t, update the buffer after every line is inserted. If 9185 If the value is t, update the buffer after every line is inserted. If
9167 the value is an integer (N), update the display every N lines." 9186 the value is an integer (N), update the display every N lines."
9187 :version "21.4"
9168 :group 'gnus-thread 9188 :group 'gnus-thread
9169 :type '(choice (const :tag "off" nil) 9189 :type '(choice (const :tag "off" nil)
9170 number 9190 number
9171 (const :tag "frequently" t))) 9191 (const :tag "frequently" t)))
9172 9192