diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/ChangeLog dgnus/lisp/ChangeLog *** pub/dgnus/lisp/ChangeLog Tue May 9 08:12:05 1995 --- dgnus/lisp/ChangeLog Wed May 10 08:01:40 1995 *************** *** 1,4 **** --- 1,80 ---- + Wed May 10 07:01:42 1995 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-summary-cancel-article): Remove process marks + after cancelling. + + * gnus.el (gnus-summary-show-all-dormant): Update lines. + (gnus-summary-show-all-expunged): Ditto. + (gnus-group-process-prefix): Did not understand C-u C-u prefixes + and the like. + (gnus-group-catchup-current): Advance to the next unread group. + (gnus-summary-catchup): Mark articles at exit if adaptive scoring + is used. + (gnus-server-edit-server): Did not configure windows properly. + + Tue May 9 10:18:16 1995 Per Abrahamsen + + * gnus-vis.el (gnus-article-press-button): New function. + + * gnus.el (gnus-article-mode-map): Bind it. + + * gnus-cite.el (gnus-cite-hide-percentage): Upped to 50% (like + inews). + (gnus-cite-hide-absolute): Upped to 10 lines. + + * gnus-vis.el (gnus-face-dark-name-list): Some colors was not + available everywhere. New colors suggested by + John Salmon . + (gnus-article-highlight-headers): Turn of `buffer-read-only'. + (gnus-button-message-id): Do not switch to the summary buffer + first. + + * gnus.el: (gnus-article-add-button): Added autoload. + (gnus-article-hide-citation): Replace with autoload from + `gnus-cite.el'. + Wed May 10 06:49:33 1995 Lars Magne Ingebrigtsen + + * gnus-vis.el: Name changes from gnus-visual-summary-* to + gnus-summary-*. + + Tue May 9 10:18:16 1995 Per Abrahamsen + + * gnus-score.el (gnus-summary-immediately-*): Added functions and + keybidnings. + + Wed May 10 06:01:34 1995 Lars Magne Ingebrigtsen + + * gnus.el (gnus-windows-old-to-new): Applied '+ to wrong list. + + Tue May 9 12:26:34 1995 Lars Ingebrigtsen + + * gnus-uu.el (gnus-uu-digest-headers): New variable. + (gnus-uu-save-article): Use it. + + * gnus-vis.el (gnus-carpal-setup-buffer): Did not work at all. + + * gnus.el (gnus-get-unread-articles): Would un-activate already + activated groups from secondary servers. + (gnus-group-transpose-groups): New implementation. + (gnus-group-yank-group): Allow moving even to the end of the + buffer. + + * nnbabyl.el: General tune-up and serious bug-fix all over. + + * gnus.el (gnus-parse-newsrc-body): Would create two dummy.groups + when no .newsrc.eld files existed. + (gnus-summary-setup-buffer): Be really sure that we want to return + to the old buffer. + + * nnbabyl.el (nnbabyl-read-mbox): Insert "OPTIONS" in empty babyl + files. + + * gnus.el (gnus-group-change-level): Insert new groups at the end + of the group alist. + Tue May 9 04:49:53 1995 Lars Magne Ingebrigtsen + + * gnus.el: 0.66 is released. * gnus.el (gnus-rebuild-remove-articles): Would make all articles read and go to the wrong article. diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus-cite.el dgnus/lisp/gnus-cite.el *** pub/dgnus/lisp/gnus-cite.el Tue May 9 08:11:58 1995 --- dgnus/lisp/gnus-cite.el Wed May 10 06:54:33 1995 *************** *** 55,64 **** "Face used for attribution lines. It is merged with the face for the cited text belonging to the attribution.") ! (defvar gnus-cite-hide-percentage 30 "Only hide cited text if it is larger than this percent of the body.") ! (defvar gnus-cite-hide-absolute 5 "Only hide cited text if there is at least this number of cited lines.") --- 55,64 ---- "Face used for attribution lines. It is merged with the face for the cited text belonging to the attribution.") ! (defvar gnus-cite-hide-percentage 50 "Only hide cited text if it is larger than this percent of the body.") ! (defvar gnus-cite-hide-absolute 10 "Only hide cited text if there is at least this number of cited lines.") diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus-msg.el dgnus/lisp/gnus-msg.el *** pub/dgnus/lisp/gnus-msg.el Tue May 9 08:11:58 1995 --- dgnus/lisp/gnus-msg.el Wed May 10 08:05:53 1995 *************** *** 138,143 **** --- 138,145 ---- (let ((articles (gnus-summary-work-articles n))) (while articles (gnus-summary-select-article t nil nil (car articles)) + (gnus-summary-remove-process-mark (car articles)) + (gnus-summary-mark-as-read (car articles) gnus-canceled-mark) (gnus-eval-in-buffer-window gnus-article-buffer (gnus-cancel-news)) (gnus-article-hide-headers-if-wanted) (setq articles (cdr articles))))) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus-score.el dgnus/lisp/gnus-score.el *** pub/dgnus/lisp/gnus-score.el Tue May 9 08:11:58 1995 --- dgnus/lisp/gnus-score.el Wed May 10 06:35:56 1995 *************** *** 119,124 **** --- 119,125 ---- (define-key gnus-summary-increase-map "S" 'gnus-summary-temporarily-raise-by-subject) (define-key gnus-summary-inc-subject-map "s" 'gnus-summary-temporarily-raise-by-subject) (define-key gnus-summary-inc-subject-map "S" 'gnus-summary-raise-by-subject) + (define-key gnus-summary-inc-subject-map "i" 'gnus-summary-immediately-raise-by-subject) (define-key gnus-summary-inc-subject-map "t" 'gnus-summary-temporarily-raise-by-subject) (define-key gnus-summary-inc-subject-map "p" 'gnus-summary-raise-by-subject) *************** *** 127,132 **** --- 128,134 ---- (define-key gnus-summary-increase-map "A" 'gnus-summary-temporarily-raise-by-author) (define-key gnus-summary-inc-author-map "a" 'gnus-summary-temporarily-raise-by-author) (define-key gnus-summary-inc-author-map "A" 'gnus-summary-raise-by-author) + (define-key gnus-summary-inc-author-map "i" 'gnus-summary-immediately-raise-by-author) (define-key gnus-summary-inc-author-map "t" 'gnus-summary-temporarily-raise-by-author) (define-key gnus-summary-inc-author-map "p" 'gnus-summary-raise-by-author) *************** *** 135,140 **** --- 137,143 ---- (define-key gnus-summary-increase-map "B" 'gnus-summary-temporarily-raise-by-body) (define-key gnus-summary-inc-body-map "b" 'gnus-summary-temporarily-raise-by-body) (define-key gnus-summary-inc-body-map "B" 'gnus-summary-raise-by-body) + (define-key gnus-summary-inc-body-map "i" 'gnus-summary-immediately-raise-by-body) (define-key gnus-summary-inc-body-map "t" 'gnus-summary-temporarily-raise-by-body) (define-key gnus-summary-inc-body-map "p" 'gnus-summary-raise-by-body) *************** *** 143,148 **** --- 146,152 ---- (define-key gnus-summary-increase-map "I" 'gnus-summary-temporarily-raise-by-id) (define-key gnus-summary-inc-id-map "i" 'gnus-summary-temporarily-raise-by-id) (define-key gnus-summary-inc-id-map "I" 'gnus-summary-raise-by-id) + (define-key gnus-summary-inc-id-map "i" 'gnus-summary-immediately-raise-by-id) (define-key gnus-summary-inc-id-map "t" 'gnus-summary-temporarily-raise-by-id) (define-key gnus-summary-inc-id-map "p" 'gnus-summary-raise-by-id) *************** *** 151,156 **** --- 155,161 ---- (define-key gnus-summary-increase-map "T" 'gnus-summary-temporarily-raise-by-thread) (define-key gnus-summary-inc-thread-map "t" 'gnus-summary-temporarily-raise-by-thread) (define-key gnus-summary-inc-thread-map "T" 'gnus-summary-raise-by-thread) + (define-key gnus-summary-inc-thread-map "i" 'gnus-summary-immediately-raise-by-thread) (define-key gnus-summary-inc-thread-map "t" 'gnus-summary-temporarily-raise-by-thread) (define-key gnus-summary-inc-thread-map "p" 'gnus-summary-raise-by-thread) *************** *** 159,164 **** --- 164,170 ---- (define-key gnus-summary-increase-map "X" 'gnus-summary-temporarily-raise-by-xref) (define-key gnus-summary-inc-xref-map "x" 'gnus-summary-temporarily-raise-by-xref) (define-key gnus-summary-inc-xref-map "X" 'gnus-summary-raise-by-xref) + (define-key gnus-summary-inc-xref-map "i" 'gnus-summary-immediately-raise-by-xref) (define-key gnus-summary-inc-xref-map "t" 'gnus-summary-temporarily-raise-by-xref) (define-key gnus-summary-inc-xref-map "p" 'gnus-summary-raise-by-xref) *************** *** 167,172 **** --- 173,179 ---- (define-key gnus-summary-increase-map "F" 'gnus-summary-temporarily-raise-followups-to-author) (define-key gnus-summary-inc-fol-map "f" 'gnus-summary-temporarily-raise-followups-to-author) (define-key gnus-summary-inc-fol-map "F" 'gnus-summary-raise-followups-to-author) + (define-key gnus-summary-inc-fol-map "i" 'gnus-summary-immediately-raise-followups-to-author) (define-key gnus-summary-inc-fol-map "t" 'gnus-summary-temporarily-raise-followups-to-author) (define-key gnus-summary-inc-fol-map "p" 'gnus-summary-raise-followups-to-author) *************** *** 183,188 **** --- 190,196 ---- (define-key gnus-summary-lower-map "S" 'gnus-summary-temporarily-lower-by-subject) (define-key gnus-summary-low-subject-map "s" 'gnus-summary-temporarily-lower-by-subject) (define-key gnus-summary-low-subject-map "S" 'gnus-summary-lower-by-subject) + (define-key gnus-summary-low-subject-map "i" 'gnus-summary-immediately-lower-by-subject) (define-key gnus-summary-low-subject-map "t" 'gnus-summary-temporarily-lower-by-subject) (define-key gnus-summary-low-subject-map "p" 'gnus-summary-lower-by-subject) *************** *** 191,196 **** --- 199,205 ---- (define-key gnus-summary-lower-map "B" 'gnus-summary-temporarily-lower-by-body) (define-key gnus-summary-low-body-map "b" 'gnus-summary-temporarily-lower-by-body) (define-key gnus-summary-low-body-map "B" 'gnus-summary-lower-by-body) + (define-key gnus-summary-low-body-map "i" 'gnus-summary-immediately-lower-by-body) (define-key gnus-summary-low-body-map "t" 'gnus-summary-temporarily-lower-by-body) (define-key gnus-summary-low-body-map "p" 'gnus-summary-lower-by-body) *************** *** 199,204 **** --- 208,214 ---- (define-key gnus-summary-lower-map "A" 'gnus-summary-temporarily-lower-by-author) (define-key gnus-summary-low-author-map "a" 'gnus-summary-temporarily-lower-by-author) (define-key gnus-summary-low-author-map "A" 'gnus-summary-lower-by-author) + (define-key gnus-summary-low-author-map "i" 'gnus-summary-immediately-lower-by-author) (define-key gnus-summary-low-author-map "t" 'gnus-summary-temporarily-lower-by-author) (define-key gnus-summary-low-author-map "p" 'gnus-summary-lower-by-author) *************** *** 207,212 **** --- 217,223 ---- (define-key gnus-summary-lower-map "I" 'gnus-summary-temporarily-lower-by-id) (define-key gnus-summary-low-id-map "i" 'gnus-summary-temporarily-lower-by-id) (define-key gnus-summary-low-id-map "I" 'gnus-summary-lower-by-id) + (define-key gnus-summary-low-id-map "i" 'gnus-summary-immediately-lower-by-id) (define-key gnus-summary-low-id-map "t" 'gnus-summary-temporarily-lower-by-id) (define-key gnus-summary-low-id-map "p" 'gnus-summary-lower-by-id) *************** *** 215,220 **** --- 226,232 ---- (define-key gnus-summary-lower-map "T" 'gnus-summary-temporarily-lower-by-thread) (define-key gnus-summary-low-thread-map "t" 'gnus-summary-temporarily-lower-by-thread) (define-key gnus-summary-low-thread-map "T" 'gnus-summary-lower-by-thread) + (define-key gnus-summary-low-thread-map "i" 'gnus-summary-immediately-lower-by-thread) (define-key gnus-summary-low-thread-map "t" 'gnus-summary-temporarily-lower-by-thread) (define-key gnus-summary-low-thread-map "p" 'gnus-summary-lower-by-thread) *************** *** 223,228 **** --- 235,241 ---- (define-key gnus-summary-lower-map "X" 'gnus-summary-temporarily-lower-by-xref) (define-key gnus-summary-low-xref-map "x" 'gnus-summary-temporarily-lower-by-xref) (define-key gnus-summary-low-xref-map "X" 'gnus-summary-lower-by-xref) + (define-key gnus-summary-low-xref-map "i" 'gnus-summary-immediately-lower-by-xref) (define-key gnus-summary-low-xref-map "t" 'gnus-summary-temporarily-lower-by-xref) (define-key gnus-summary-low-xref-map "p" 'gnus-summary-lower-by-xref) *************** *** 231,236 **** --- 244,250 ---- (define-key gnus-summary-lower-map "F" 'gnus-summary-temporarily-lower-followups-to-author) (define-key gnus-summary-low-fol-map "f" 'gnus-summary-temporarily-lower-followups-to-author) (define-key gnus-summary-low-fol-map "F" 'gnus-summary-lower-followups-to-author) + (define-key gnus-summary-low-fol-map "i" 'gnus-summary-immediately-lower-followups-to-author) (define-key gnus-summary-low-fol-map "t" 'gnus-summary-temporarily-lower-followups-to-author) (define-key gnus-summary-low-fol-map "p" 'gnus-summary-lower-followups-to-author) *************** *** 255,261 **** MATCH is the string we are looking for. TYPE is a flag indicating if it is a regexp or substring. SCORE is the score to add. ! DATE is the expire date." (interactive (list (completing-read "Header: " gnus-header-index --- 269,277 ---- MATCH is the string we are looking for. TYPE is a flag indicating if it is a regexp or substring. SCORE is the score to add. ! DATE is the expire date, or nil for no expire, or 'now for immediate expire. ! If optional argument `PROMPT' is non-nil, allow user to edit match. ! If optional argument `SILENT' is nil, show effect of score entry." (interactive (list (completing-read "Header: " gnus-header-index *************** *** 264,311 **** (read-string "Match: ") (y-or-n-p "Use regexp match? ") (prefix-numeric-value current-prefix-arg) ! (if (y-or-n-p "Expire kill? ") ! (current-time-string) ! nil))) (let ((score (gnus-score-default score)) (header (downcase header))) (and prompt (setq match (read-string (format "Match %s on %s, %s: " ! (if date "temp" "permanent") header (if (< score 0) "lower" "raise")) match))) (and (>= (nth 1 (assoc header gnus-header-index)) 0) (not silent) (gnus-summary-score-effect header match type score)) ! (and (= score gnus-score-interactive-default-score) ! (setq score nil)) ! (let ((new (cond (type ! (list match score (and date (gnus-day-number date)) type)) ! (date ! (list match score (gnus-day-number date))) ! (score ! (list match score)) ! (t ! (list match)))) ! (old (gnus-score-get header)) ! elem) ! ;; We see whether we can collapse some score entries. ! ;; This isn't quite correct, because there may be more elements ! ;; later on with the same key that have matching elems... Hm. ! (if (and old ! (setq elem (assoc match old)) ! (eq (nth 3 elem) (nth 3 new)) ! (or (and (numberp (nth 2 elem)) (numberp (nth 2 new))) ! (and (not (nth 2 elem)) (not (nth 2 new))))) ! ;; Yup, we just add this new score to the old elem. ! (setcar (cdr elem) (+ (or (nth 1 elem) ! gnus-score-interactive-default-score) ! (or (nth 1 new) ! gnus-score-interactive-default-score))) ! ;; Nope, we have to add a new elem. ! (gnus-score-set header (if old (cons new old) (list new))))) ! (gnus-score-set 'touched '(t)))) (defun gnus-summary-score-effect (header match type score) "Simulate the effect of a score file entry. --- 280,335 ---- (read-string "Match: ") (y-or-n-p "Use regexp match? ") (prefix-numeric-value current-prefix-arg) ! (cond ((not (y-or-n-p "Add to SCORE file? ")) ! 'now) ! ((y-or-n-p "Expire kill? ") ! (current-time-string)) ! (t nil)))) (let ((score (gnus-score-default score)) (header (downcase header))) (and prompt (setq match (read-string (format "Match %s on %s, %s: " ! (cond ((eq date 'now) ! "now") ! ((stringp date) ! "temp") ! (t "permanent")) header (if (< score 0) "lower" "raise")) match))) (and (>= (nth 1 (assoc header gnus-header-index)) 0) (not silent) (gnus-summary-score-effect header match type score)) ! (if (eq date 'now) ! () ! (and (= score gnus-score-interactive-default-score) ! (setq score nil)) ! (let ((new (cond (type ! (list match score (and date (gnus-day-number date)) type)) ! (date ! (list match score (gnus-day-number date))) ! (score ! (list match score)) ! (t ! (list match)))) ! (old (gnus-score-get header)) ! elem) ! ;; We see whether we can collapse some score entries. ! ;; This isn't quite correct, because there may be more elements ! ;; later on with the same key that have matching elems... Hm. ! (if (and old ! (setq elem (assoc match old)) ! (eq (nth 3 elem) (nth 3 new)) ! (or (and (numberp (nth 2 elem)) (numberp (nth 2 new))) ! (and (not (nth 2 elem)) (not (nth 2 new))))) ! ;; Yup, we just add this new score to the old elem. ! (setcar (cdr elem) (+ (or (nth 1 elem) ! gnus-score-interactive-default-score) ! (or (nth 1 new) ! gnus-score-interactive-default-score))) ! ;; Nope, we have to add a new elem. ! (gnus-score-set header (if old (cons new old) (list new))))) ! (gnus-score-set 'touched '(t))))) (defun gnus-summary-score-effect (header match type score) "Simulate the effect of a score file entry. *************** *** 352,357 **** --- 376,435 ---- (gnus-summary-score-entry "xref" (concat " " group ":") nil score date t))))) + (defun gnus-summary-immediately-lower-by-subject (level) + "Immediately lower score by LEVEL for current subject. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "subject" (gnus-simplify-subject-re (gnus-summary-header "subject")) + nil (- (gnus-score-default level)) 'now t)) + + (defun gnus-summary-immediately-lower-by-author (level) + "Immediately lower score by LEVEL for current author. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "from" (gnus-summary-header "from") nil (- (gnus-score-default level)) + 'now t)) + + (defun gnus-summary-immediately-lower-by-body (level) + "Immediately lower score by LEVEL for a match on the body of the article. + See `gnus-score-expiry-days'." + (interactive "P") + (error "Not yet implemented") + (gnus-summary-score-entry + "body" "" nil (- (gnus-score-default level)) 'now t)) + + (defun gnus-summary-immediately-lower-by-id (level) + "Immediately lower score by LEVEL for current message-id. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "message-id" (gnus-summary-header "message-id") + nil (- (gnus-score-default level)) 'now)) + + (defun gnus-summary-immediately-lower-by-xref (level) + "Immediately lower score by LEVEL for current xref. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-crossposting (- (gnus-score-default level)) 'now)) + + (defun gnus-summary-immediately-lower-by-thread (level) + "Immediately lower score by LEVEL for current thread. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "references" (gnus-summary-header "message-id") + nil (- (gnus-score-default level)) 'now)) + + (defun gnus-summary-immediately-lower-followups-to-author (level) + "Lower score by LEVEL for all followups to the current author." + (interactive "P") + (error "Not yet implemented") + (gnus-summary-score-entry + "followup" (gnus-summary-header "from") + nil (- (gnus-score-default level)) 'now t t)) + (defun gnus-summary-temporarily-lower-by-subject (level) "Temporarily lower score by LEVEL for current subject. See `gnus-score-expiry-days'." *************** *** 446,451 **** --- 524,581 ---- (gnus-summary-score-entry "followup" (gnus-summary-header "from") nil (- (gnus-score-default level)) nil t t)) + + (defun gnus-summary-immediately-raise-by-subject (level) + "Immediately raise score by LEVEL for current subject. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "subject" (gnus-simplify-subject-re (gnus-summary-header "subject")) + nil level 'now t)) + + (defun gnus-summary-immediately-raise-by-author (level) + "Immediately raise score by LEVEL for current author. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "from" (gnus-summary-header "from") nil level 'now t)) + + (defun gnus-summary-immediately-raise-by-body (level) + "Immediately raise score by LEVEL for a match on the body of the article. + See `gnus-score-expiry-days'." + (interactive "P") + (error "Not yet implemented") + (gnus-summary-score-entry "body" "" nil level 'now t)) + + (defun gnus-summary-immediately-raise-by-id (level) + "Immediately raise score by LEVEL for current message-id. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "message-id" (gnus-summary-header "message-id") + nil level 'now)) + + (defun gnus-summary-immediately-raise-by-xref (level) + "Immediately raise score by LEVEL for current xref. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-crossposting level 'now)) + + (defun gnus-summary-immediately-raise-by-thread (level) + "Immediately raise score by LEVEL for current thread. + See `gnus-score-expiry-days'." + (interactive "P") + (gnus-summary-score-entry + "references" (gnus-summary-header "message-id") + nil level 'now)) + + (defun gnus-summary-immediately-raise-followups-to-author (level) + "Raise score by LEVEL for all followups to the current author." + (interactive "P") + (error "Not yet implemented") + (gnus-summary-score-entry + "followup" (gnus-summary-header "from") + nil (gnus-score-default level) 'now t t)) (defun gnus-summary-temporarily-raise-by-subject (level) "Temporarily raise score by LEVEL for current subject. diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus-uu.el dgnus/lisp/gnus-uu.el *** pub/dgnus/lisp/gnus-uu.el Tue May 9 08:11:58 1995 --- dgnus/lisp/gnus-uu.el Wed May 10 05:30:23 1995 *************** *** 221,226 **** --- 221,232 ---- no easy way to specify any meaningful volume and issue numbers were found, so I simply dropped them.") + (defvar gnus-uu-digest-headers + '("^Date:" "^From:" "^To:" "^Cc:" "^Subject:" "^Message-ID:" "^Keywords:" + "^Summary:" "^References:") + "*List of regexps to match headers included in digested messages. + The headers will be included in the sequence they are matched.") + (defvar gnus-uu-save-separate-articles nil "*Non-nil means that gnus-uu will save articles in separate files.") *************** *** 647,659 **** (re-search-forward "\n\n") (setq body (buffer-substring (1- (point)) (point-max))) (narrow-to-region 1 (point)) ! (setq headers (list "Date:" "From:" "To:" "Cc:" "Subject:" ! "Message-ID:" "Keywords:" "Summary:")) (while headers (setq headline (car headers)) (setq headers (cdr headers)) (goto-char 1) ! (if (re-search-forward (concat "^" headline ".*$") nil t) (setq sorthead (concat sorthead (buffer-substring (match-beginning 0) --- 653,664 ---- (re-search-forward "\n\n") (setq body (buffer-substring (1- (point)) (point-max))) (narrow-to-region 1 (point)) ! (setq headers gnus-uu-digest-headers) (while headers (setq headline (car headers)) (setq headers (cdr headers)) (goto-char 1) ! (if (re-search-forward (concat headline ".*$") nil t) (setq sorthead (concat sorthead (buffer-substring (match-beginning 0) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus-vis.el dgnus/lisp/gnus-vis.el *** pub/dgnus/lisp/gnus-vis.el Tue May 9 08:11:58 1995 --- dgnus/lisp/gnus-vis.el Wed May 10 06:54:33 1995 *************** *** 32,38 **** (defvar gnus-summary-selected-face 'underline "*Face used for highlighting the current article in the summary buffer.") ! (defvar gnus-visual-summary-highlight '(((> score default) . bold) ((< score default) . italic)) "*Alist of `(FORM . FACE)'. --- 32,38 ---- (defvar gnus-summary-selected-face 'underline "*Face used for highlighting the current article in the summary buffer.") ! (defvar gnus-summary-highlight '(((> score default) . bold) ((< score default) . italic)) "*Alist of `(FORM . FACE)'. *************** *** 60,66 **** "Names of light colors.") (defvar gnus-face-dark-name-list ! '("dark blue" "dark cyan" "dark red" "dark green" "dark orange" "dark khaki" "dark violet" "dark turquoise") "Names of dark colors.") --- 60,66 ---- "Names of light colors.") (defvar gnus-face-dark-name-list ! '("blue" "dark salmon" "firebrick" "dark green" "dark orange" "dark khaki" "dark violet" "dark turquoise") "Names of dark colors.") *************** *** 525,531 **** ;;; (if gnus-xemacs ! (defun gnus-visual-highlight-selected-summary () (if gnus-summary-selected-face (save-excursion (let* ((beg (progn (beginning-of-line) (point))) --- 525,531 ---- ;;; (if gnus-xemacs ! (defun gnus-highlight-selected-summary () (if gnus-summary-selected-face (save-excursion (let* ((beg (progn (beginning-of-line) (point))) *************** *** 542,548 **** (overlay-put gnus-newsgroup-selected-overlay 'face gnus-summary-selected-face)))))) ! (defun gnus-visual-highlight-selected-summary () ;; Added by Per Abrahamsen . ;; Highlight selected article in summary buffer (if gnus-summary-selected-face --- 542,548 ---- (overlay-put gnus-newsgroup-selected-overlay 'face gnus-summary-selected-face)))))) ! (defun gnus-highlight-selected-summary () ;; Added by Per Abrahamsen . ;; Highlight selected article in summary buffer (if gnus-summary-selected-face *************** *** 567,575 **** ;; New implementation by Christian Limpach . ! (defun gnus-visual-summary-highlight-line () ! "Highlight current line according to `gnus-visual-summary-highlight'." ! (let* ((list gnus-visual-summary-highlight) (p (point)) (end (progn (end-of-line) (point))) ;; now find out where the line starts and leave point there. --- 567,575 ---- ;; New implementation by Christian Limpach . ! (defun gnus-summary-highlight-line () ! "Highlight current line according to `gnus-summary-highlight'." ! (let* ((list gnus-summary-highlight) (p (point)) (end (progn (end-of-line) (point))) ;; now find out where the line starts and leave point there. *************** *** 720,729 **** (suppress-keymap gnus-carpal-mode-map) (define-key gnus-carpal-mode-map " " 'gnus-carpal-select) (define-key gnus-carpal-mode-map "\r" 'gnus-carpal-select) ! (define-key gnus-carpal-mode-map [mouse-2] 'gnus-carpal-select)) (defun gnus-carpal-mode () ! "Major mode clicking with mouse or keys on buttons. All normal editing commands are switched off. \\ --- 720,729 ---- (suppress-keymap gnus-carpal-mode-map) (define-key gnus-carpal-mode-map " " 'gnus-carpal-select) (define-key gnus-carpal-mode-map "\r" 'gnus-carpal-select) ! (define-key gnus-carpal-mode-map [mouse-2] 'gnus-carpal-mouse-select)) (defun gnus-carpal-mode () ! "Major mode clicking buttons. All normal editing commands are switched off. \\ *************** *** 742,774 **** (make-local-variable 'gnus-carpal-attached-buffer) (run-hooks 'gnus-carpal-mode-hook)) - (defun gnus-carpal-setup-buffer (type) (let ((buffer (symbol-value (intern (format "gnus-carpal-%s-buffer" type))))) (if (get-buffer buffer) () ! (set-buffer (get-buffer-create buffer)) ! (gnus-carpal-mode) ! (setq gnus-carpal-attached-buffer ! (intern (format "gnus-%s-buffer" type))) ! (gnus-add-current-to-buffer-list) ! (let ((buttons (symbol-value ! (intern (format "gnus-carpal-%s-buffer-buttons" type)))) ! (buffer-read-only nil) ! button) ! (while buttons ! (setq button (car buttons) ! buttons (cdr buttons)) ! (if (stringp button) ! (insert button " ") ! (set-text-properties ! (point) ! (progn (insert (car button)) (point)) ! (list 'gnus-callback (cdr button) ! 'face gnus-carpal-button-face)) ! (insert " "))) ! (let ((fill-column (- (window-width) 2))) ! (fill-region (point-min) (point-max))))))) (defun gnus-carpal-select () "Select the button under point." --- 742,778 ---- (make-local-variable 'gnus-carpal-attached-buffer) (run-hooks 'gnus-carpal-mode-hook)) (defun gnus-carpal-setup-buffer (type) (let ((buffer (symbol-value (intern (format "gnus-carpal-%s-buffer" type))))) (if (get-buffer buffer) () ! (save-excursion ! (set-buffer (get-buffer-create buffer)) ! (gnus-carpal-mode) ! (setq gnus-carpal-attached-buffer ! (intern (format "gnus-%s-buffer" type))) ! (gnus-add-current-to-buffer-list) ! (let ((buttons (symbol-value ! (intern (format "gnus-carpal-%s-buffer-buttons" ! type)))) ! (buffer-read-only nil) ! button) ! (while buttons ! (setq button (car buttons) ! buttons (cdr buttons)) ! (if (stringp button) ! (insert button " ") ! (set-text-properties ! (point) ! (progn (insert (car button)) (point)) ! (list 'gnus-callback (cdr button) ! 'face gnus-carpal-button-face ! 'mouse-face 'highlight)) ! (insert " "))) ! (let ((fill-column (- (window-width) 2))) ! (fill-region (point-min) (point-max))) ! (set-window-point (get-buffer-window (current-buffer)) ! (point-min))))))) (defun gnus-carpal-select () "Select the button under point." *************** *** 779,784 **** --- 783,794 ---- (pop-to-buffer (symbol-value gnus-carpal-attached-buffer)) (call-interactively func)))) + (defun gnus-carpal-mouse-select (event) + "Select the button under the mouse pointer." + (interactive "e") + (mouse-set-point event) + (gnus-carpal-select)) + ;;; ;;; article highlights ;;; *************** *** 809,814 **** --- 819,833 ---- (fun (get-text-property pos 'gnus-callback))) (if fun (funcall fun data)))) + (defun gnus-article-press-button () + "Check text at point for a callback function. + If the text at point has a `gnus-callback' property, + call it with the value of the `gnus-data' text property." + (interactive) + (let* ((data (get-text-property (point) 'gnus-data)) + (fun (get-text-property (point) 'gnus-callback))) + (if fun (funcall fun data)))) + (defun gnus-article-highlight () "Highlight current article. This function calls `gnus-article-highlight-headers', *************** *** 841,846 **** --- 860,866 ---- (beginning-of-line 0) (while (not (bobp)) (let ((alist gnus-header-face-alist) + (buffer-read-only nil) (case-fold-search t) (end (point)) begin entry regexp header-face field-face header-found field-found) *************** *** 931,937 **** (set-marker (make-marker) from)))))))) ! ;;; Extrenal functions: (defun gnus-article-add-button (from to fun &optional data) "Create a button between FROM and TO with callback FUN and data DATA." --- 951,957 ---- (set-marker (make-marker) from)))))))) ! ;;; External functions: (defun gnus-article-add-button (from to fun &optional data) "Create a button between FROM and TO with callback FUN and data DATA." *************** *** 1000,1012 **** (defun gnus-button-message-id (message-id) ;; Push on MESSAGE-ID. (save-excursion - (switch-to-buffer gnus-article-buffer) (set-buffer gnus-summary-buffer) (gnus-summary-refer-article message-id))) ;;; Compatibility Functions: (or (fboundp 'rassoc) (defun rassoc (elt list) "Return non-nil if ELT is `equal' to the cdr of an element of LIST. The value is actually the element of LIST whose cdr is ELT." --- 1020,1032 ---- (defun gnus-button-message-id (message-id) ;; Push on MESSAGE-ID. (save-excursion (set-buffer gnus-summary-buffer) (gnus-summary-refer-article message-id))) ;;; Compatibility Functions: (or (fboundp 'rassoc) + ;; Introduced in Emacs 19.29. (defun rassoc (elt list) "Return non-nil if ELT is `equal' to the cdr of an element of LIST. The value is actually the element of LIST whose cdr is ELT." diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus.el dgnus/lisp/gnus.el *** pub/dgnus/lisp/gnus.el Tue May 9 08:12:00 1995 --- dgnus/lisp/gnus.el Wed May 10 08:02:12 1995 *************** *** 725,731 **** (defvar gnus-window-configuration nil "Obsolete variable. See `gnus-buffer-configuration'.") ! (defconst gnus-buffer-configuration '((group ([group 1.0 point] (if gnus-carpal [group-carpal 4]))) (summary ([summary 1.0 point] --- 725,731 ---- (defvar gnus-window-configuration nil "Obsolete variable. See `gnus-buffer-configuration'.") ! (defvar gnus-buffer-configuration '((group ([group 1.0 point] (if gnus-carpal [group-carpal 4]))) (summary ([summary 1.0 point] *************** *** 778,785 **** (browse . "*Gnus Browse Server*") (edit-group . gnus-group-edit-buffer) (edit-server . gnus-server-edit-buffer) (mail . "*mail*") ! (post . gnus-post-news-buffer))) (defvar gnus-carpal nil "*If non-nil, display clickable icons.") --- 778,790 ---- (browse . "*Gnus Browse Server*") (edit-group . gnus-group-edit-buffer) (edit-server . gnus-server-edit-buffer) + (group-carpal . gnus-carpal-group-buffer) + (summary-carpal . gnus-carpal-summary-buffer) + (server-carpal . gnus-carpal-server-buffer) + (browse-carpal . gnus-carpal-browse-buffer) (mail . "*mail*") ! (post . gnus-post-news-buffer)) ! "Mapping from short symbols to buffer names or buffer variables.") (defvar gnus-carpal nil "*If non-nil, display clickable icons.") *************** *** 1212,1218 **** (gnus-expunge \"X\"))))))") (defvar gnus-visual-mark-article-hook ! (list 'gnus-visual-highlight-selected-summary) "*Hook run after selecting an article in the summary buffer. It is meant to be used for highlighting the article in some way. It is not run if `gnus-visual' is nil.") --- 1217,1223 ---- (gnus-expunge \"X\"))))))") (defvar gnus-visual-mark-article-hook ! (list 'gnus-highlight-selected-summary) "*Hook run after selecting an article in the summary buffer. It is meant to be used for highlighting the article in some way. It is not run if `gnus-visual' is nil.") *************** *** 1244,1256 **** (defvar gnus-save-newsrc-hook nil "*A hook called when saving the newsrc file.") ! (defvar gnus-visual-summary-update-hook ! (list 'gnus-visual-summary-highlight-line) "*A hook called when a summary line is changed. The hook will not be called if `gnus-visual' is nil. ! The default function `gnus-visual-summary-highlight-line' will ! highlight the line according to the `gnus-visual-summary-highlight' variable.") (defvar gnus-mark-article-hook (list 'gnus-summary-mark-unread-as-read) --- 1249,1261 ---- (defvar gnus-save-newsrc-hook nil "*A hook called when saving the newsrc file.") ! (defvar gnus-summary-update-hook ! (list 'gnus-summary-highlight-line) "*A hook called when a summary line is changed. The hook will not be called if `gnus-visual' is nil. ! The default function `gnus-summary-highlight-line' will ! highlight the line according to the `gnus-summary-highlight' variable.") (defvar gnus-mark-article-hook (list 'gnus-summary-mark-unread-as-read) *************** *** 1364,1370 **** (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls & Boys)" "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.66" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1369,1375 ---- (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls & Boys)" "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.67" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 1597,1617 **** (autoload 'gnus-server-make-menu-bar "gnus-vis") (autoload 'gnus-article-make-menu-bar "gnus-vis") (autoload 'gnus-browse-make-menu-bar "gnus-vis") ! (autoload 'gnus-visual-highlight-selected-summary "gnus-vis") ! (autoload 'gnus-visual-summary-highlight-line "gnus-vis") (autoload 'gnus-carpal-setup-buffer "gnus-vis") ;; gnus-vis article (autoload 'gnus-article-push-button "gnus-vis" nil t) (autoload 'gnus-article-highlight "gnus-vis" nil t) (autoload 'gnus-article-hide "gnus-vis" nil t) (autoload 'gnus-article-highlight-headers "gnus-vis" nil t) (autoload 'gnus-article-highlight-signature "gnus-vis" nil t) (autoload 'gnus-article-add-buttons "gnus-vis" nil t) ;; gnus-cite (autoload 'gnus-article-highlight-citation "gnus-cite" nil t) (autoload 'gnus-article-hide-citation-maybe "gnus-cite" nil t) ;; gnus-kill (autoload 'gnus-kill "gnus-kill") --- 1602,1625 ---- (autoload 'gnus-server-make-menu-bar "gnus-vis") (autoload 'gnus-article-make-menu-bar "gnus-vis") (autoload 'gnus-browse-make-menu-bar "gnus-vis") ! (autoload 'gnus-highlight-selected-summary "gnus-vis") ! (autoload 'gnus-summary-highlight-line "gnus-vis") (autoload 'gnus-carpal-setup-buffer "gnus-vis") ;; gnus-vis article (autoload 'gnus-article-push-button "gnus-vis" nil t) + (autoload 'gnus-article-press-button "gnus-vis" nil t) (autoload 'gnus-article-highlight "gnus-vis" nil t) (autoload 'gnus-article-hide "gnus-vis" nil t) (autoload 'gnus-article-highlight-headers "gnus-vis" nil t) (autoload 'gnus-article-highlight-signature "gnus-vis" nil t) (autoload 'gnus-article-add-buttons "gnus-vis" nil t) + (autoload 'gnus-article-add-button "gnus-vis.el") ;; gnus-cite (autoload 'gnus-article-highlight-citation "gnus-cite" nil t) (autoload 'gnus-article-hide-citation-maybe "gnus-cite" nil t) + (autoload 'gnus-article-hide-citation "gnus-cite" nil t) ;; gnus-kill (autoload 'gnus-kill "gnus-kill") *************** *** 2312,2320 **** (memq setting '(group summary article))))) setting (let* ((setting (if (eq setting 'group) 'newsgroup setting)) ! (elem (cdr (assq setting gnus-window-configuration))) (total (apply '+ elem)) (types '(group summary article)) (i 0) perc out) --- 2320,2329 ---- (memq setting '(group summary article))))) setting (let* ((setting (if (eq setting 'group) 'newsgroup setting)) ! (elem (car (cdr (assq setting gnus-window-configuration)))) (total (apply '+ elem)) (types '(group summary article)) + (pbuf (if (eq setting 'group) 'group 'summary)) (i 0) perc out) *************** *** 2322,2333 **** (or (zerop (nth i elem)) (progn (setq perc (/ (* 1.0 (nth 0 elem)) total)) ! (setq out (cons (if (eq setting (nth i types)) (vector (nth i types) perc 'point) (vector (nth i types) perc)) out)))) (setq i (1+ i))) ! (nreverse out)))) (defun gnus-configure-windows (setting) (setq setting (gnus-windows-old-to-new setting)) --- 2331,2342 ---- (or (zerop (nth i elem)) (progn (setq perc (/ (* 1.0 (nth 0 elem)) total)) ! (setq out (cons (if (eq pbuf (nth i types)) (vector (nth i types) perc 'point) (vector (nth i types) perc)) out)))) (setq i (1+ i))) ! (list (nreverse out))))) (defun gnus-configure-windows (setting) (setq setting (gnus-windows-old-to-new setting)) *************** *** 3047,3055 **** did-connect) (unwind-protect (progn ! (switch-to-buffer gnus-group-buffer) ! (gnus-add-current-to-buffer-list) ! (gnus-group-mode) (or dont-connect (setq did-connect (gnus-start-news-server (and arg (not level)))))) --- 3056,3062 ---- did-connect) (unwind-protect (progn ! (gnus-group-setup-buffer) (or dont-connect (setq did-connect (gnus-start-news-server (and arg (not level)))))) *************** *** 3067,3076 **** (sit-for 0)))) (gnus-setup-news nil level) (and gnus-use-dribble-file (gnus-dribble-open)) ! (or t (not gnus-novice-user) ! gnus-expert-user ! (gnus-group-describe-briefly)) ;Show brief help message. ! (gnus-group-list-groups level)))))) (defun gnus-group-startup-message (&optional x y) "Insert startup message in current buffer." --- 3074,3081 ---- (sit-for 0)))) (gnus-setup-news nil level) (and gnus-use-dribble-file (gnus-dribble-open)) ! (gnus-group-list-groups level) ! (gnus-configure-windows 'group)))))) (defun gnus-group-startup-message (&optional x y) "Insert startup message in current buffer." *************** *** 3561,3566 **** --- 3566,3572 ---- ;; prefix) and the list of marked groups. (defun gnus-group-process-prefix (n) (cond (n + (setq n (prefix-numeric-value n)) ;; There is a prefix, so we return a list of the N next ;; groups. (let ((way (if (< n 0) -1 1)) *************** *** 3978,3983 **** --- 3984,3990 ---- (gnus-group-catchup (car groups) all) (gnus-group-update-group-line)) (setq groups (cdr groups))) + (gnus-group-next-unread-group 1) ret))) (defun gnus-group-catchup-current-all (n) *************** *** 4089,4117 **** (or (and (member group gnus-zombie-list) gnus-level-zombie) gnus-level-killed) ! (or (and (gnus-group-group-name) ! (gnus-gethash (gnus-group-group-name) gnus-newsrc-hashtb)) ! (gnus-gethash (car (car gnus-newsrc-alist)) ! gnus-newsrc-hashtb))) (gnus-group-update-group group)) (t (error "No such newsgroup: %s" group))) (gnus-group-position-cursor))) ! (defun gnus-group-transpose-groups (arg) ! "Exchange current newsgroup and previous newsgroup. ! With argument ARG, takes previous newsgroup and moves it past ARG newsgroup." ! (interactive "p") ! ;; BUG: last newsgroup and the last but one cannot be transposed ! ;; since gnus-group-search-forward does not move forward beyond the ! ;; last. If we instead use forward-line, no problem, but I don't ! ;; want to use it for later extension. ! (while (> arg 0) ! (gnus-group-search-forward t t) ! (gnus-group-kill-group 1) ! (gnus-group-search-forward nil t) (gnus-group-yank-group) ! (gnus-group-search-forward nil t) ! (setq arg (1- arg)))) (defun gnus-group-kill-all-zombies () "Kill all zombie newsgroups." --- 4096,4119 ---- (or (and (member group gnus-zombie-list) gnus-level-zombie) gnus-level-killed) ! (and (gnus-group-group-name) ! (gnus-gethash (gnus-group-group-name) gnus-newsrc-hashtb))) (gnus-group-update-group group)) (t (error "No such newsgroup: %s" group))) (gnus-group-position-cursor))) ! (defun gnus-group-transpose-groups (n) ! "Move the current newsgroup up N places. ! If given a negative prefix, move down instead. The difference between ! N and the number of steps taken is retured." ! (interactive "p") ! (or (gnus-group-group-name) ! (error "No group on current line")) ! (gnus-group-kill-group 1) ! (prog1 ! (forward-line (- n)) (gnus-group-yank-group) ! (gnus-group-position-cursor))) (defun gnus-group-kill-all-zombies () "Kill all zombie newsgroups." *************** *** 4185,4197 **** ;; backward until something suitable is found. If there are no ;; other newsgroups in this buffer, just make this newsgroup the ;; first newsgroup. ! (while (and (not (setq prev (gnus-group-group-name))) ! (zerop (forward-line -1)))) ! (if (not prev) ! (setq prev (car (car gnus-newsrc-alist)))) (gnus-group-change-level info (nth 2 info) gnus-level-killed ! (gnus-gethash prev gnus-newsrc-hashtb) t) (gnus-group-insert-group-line-info (nth 1 info)) (setq gnus-list-of-killed-groups --- 4187,4196 ---- ;; backward until something suitable is found. If there are no ;; other newsgroups in this buffer, just make this newsgroup the ;; first newsgroup. ! (setq prev (gnus-group-group-name)) (gnus-group-change-level info (nth 2 info) gnus-level-killed ! (and prev (gnus-gethash prev gnus-newsrc-hashtb)) t) (gnus-group-insert-group-line-info (nth 1 info)) (setq gnus-list-of-killed-groups *************** *** 4264,4270 **** ;; !!! I don't know why the buffer scrolls forward when updating ;; the first line in the group buffer, but it does. So we set the ;; window start forcibly. ! (set-window-start (get-buffer-window (current-buffer)) w-p) (forward-line 1) (gnus-summary-position-cursor) ret)) --- 4263,4269 ---- ;; !!! I don't know why the buffer scrolls forward when updating ;; the first line in the group buffer, but it does. So we set the ;; window start forcibly. ! ; (set-window-start (get-buffer-window (current-buffer)) w-p) (forward-line 1) (gnus-summary-position-cursor) ret)) *************** *** 5101,5107 **** (if (get-buffer buffer) (progn (set-buffer buffer) ! nil) ;; Fix by Sudish Joseph (setq gnus-summary-buffer (set-buffer (get-buffer-create buffer))) (gnus-add-current-to-buffer-list) --- 5100,5106 ---- (if (get-buffer buffer) (progn (set-buffer buffer) ! (not gnus-newsgroup-threads)) ;; Fix by Sudish Joseph (setq gnus-summary-buffer (set-buffer (get-buffer-create buffer))) (gnus-add-current-to-buffer-list) *************** *** 5196,5202 **** (and (eq (gnus-summary-article-mark) gnus-low-score-mark) (gnus-summary-mark-article nil gnus-unread-mark)))) (and gnus-visual ! (run-hooks 'gnus-visual-summary-update-hook)))))) (defun gnus-summary-update-lines (&optional beg end) ;; Rehighlight summary buffer according to `gnus-summary-highlight'. --- 5195,5201 ---- (and (eq (gnus-summary-article-mark) gnus-low-score-mark) (gnus-summary-mark-article nil gnus-unread-mark)))) (and gnus-visual ! (run-hooks 'gnus-summary-update-hook)))))) (defun gnus-summary-update-lines (&optional beg end) ;; Rehighlight summary buffer according to `gnus-summary-highlight'. *************** *** 7179,7197 **** (error "This is a pseudo-article.")) (let ((article (or article (gnus-summary-article-number))) (all-headers (not (not all-headers)))) ;Must be T or NIL. ! (if (or (null gnus-current-article) ! (null gnus-article-current) ! (/= article (cdr gnus-article-current)) ! (not (equal (car gnus-article-current) gnus-newsgroup-name)) ! force) ! ;; The requested article is different from the current article. ! (progn ! (gnus-summary-display-article article all-headers) ! (gnus-configure-windows 'article) ! article) ! (if all-headers (gnus-article-show-all-headers)) ! (gnus-configure-windows 'article) ! nil))) (defun gnus-summary-set-current-mark (&optional current-mark) "Obsolete function." --- 7178,7198 ---- (error "This is a pseudo-article.")) (let ((article (or article (gnus-summary-article-number))) (all-headers (not (not all-headers)))) ;Must be T or NIL. ! (save-excursion ! (set-buffer gnus-summary-buffer) ! (if (or (null gnus-current-article) ! (null gnus-article-current) ! (/= article (cdr gnus-article-current)) ! (not (equal (car gnus-article-current) gnus-newsgroup-name)) ! force) ! ;; The requested article is different from the current article. ! (progn ! (gnus-summary-display-article article all-headers) ! (gnus-configure-windows 'article) ! article) ! (if all-headers (gnus-article-show-all-headers)) ! (gnus-configure-windows 'article) ! nil)))) (defun gnus-summary-set-current-mark (&optional current-mark) "Obsolete function." *************** *** 8643,8649 **** (or headers (error "No expunged articles hidden.")) (goto-char (point-min)) (save-excursion ! (gnus-summary-prepare-threads (nreverse headers) 0))) (goto-char (point-min)) (gnus-summary-position-cursor))) --- 8644,8654 ---- (or headers (error "No expunged articles hidden.")) (goto-char (point-min)) (save-excursion ! (gnus-summary-update-lines ! (point) ! (progn ! (gnus-summary-prepare-threads (nreverse headers) 0) ! (point))))) (goto-char (point-min)) (gnus-summary-position-cursor))) *************** *** 8660,8666 **** (setq headers (cons h headers)))) (setq dormant (cdr dormant))) (or headers (error "No dormant articles hidden.")) ! (save-excursion (gnus-summary-prepare-threads (nreverse headers) 0))) (goto-char (point-min)) (gnus-summary-position-cursor))) --- 8665,8676 ---- (setq headers (cons h headers)))) (setq dormant (cdr dormant))) (or headers (error "No dormant articles hidden.")) ! (save-excursion ! (gnus-summary-update-lines ! (point) ! (progn ! (gnus-summary-prepare-threads (nreverse headers) 0) ! (point))))) (goto-char (point-min)) (gnus-summary-position-cursor))) *************** *** 8686,8692 **** (if all "Mark absolutely all articles as read? " "Mark all unread articles as read? "))) ! (if not-mark (progn (and all (setq gnus-newsgroup-marked nil gnus-newsgroup-dormant nil)) --- 8696,8702 ---- (if all "Mark absolutely all articles as read? " "Mark all unread articles as read? "))) ! (if (and not-mark (not gnus-use-adaptive-scoring)) (progn (and all (setq gnus-newsgroup-marked nil gnus-newsgroup-dormant nil)) *************** *** 9378,9384 **** (define-key gnus-article-mode-map "\C-c\C-M" 'gnus-article-mail-with-original) (define-key gnus-article-mode-map "?" 'gnus-article-describe-briefly) (define-key gnus-article-mode-map [mouse-2] 'gnus-article-push-button) ! (define-key gnus-article-mode-map "\r" 'gnus-article-push-button) ;; Duplicate almost all summary keystrokes in the article mode map. (let ((commands --- 9388,9394 ---- (define-key gnus-article-mode-map "\C-c\C-M" 'gnus-article-mail-with-original) (define-key gnus-article-mode-map "?" 'gnus-article-describe-briefly) (define-key gnus-article-mode-map [mouse-2] 'gnus-article-push-button) ! (define-key gnus-article-mode-map "\r" 'gnus-article-press-button) ;; Duplicate almost all summary keystrokes in the article mode map. (let ((commands *************** *** 9445,9452 **** (save-excursion (set-buffer (get-buffer-create gnus-article-buffer)) (gnus-add-current-to-buffer-list) ! (gnus-article-mode) ! (and gnus-carpal (gnus-carpal-setup-buffer 'article))))) (defun gnus-request-article-this-buffer (article group) "Get an article and insert it into this buffer." --- 9455,9461 ---- (save-excursion (set-buffer (get-buffer-create gnus-article-buffer)) (gnus-add-current-to-buffer-list) ! (gnus-article-mode)))) (defun gnus-request-article-this-buffer (article group) "Get an article and insert it into this buffer." *************** *** 9733,9757 **** (progn (add-text-properties (point) (point-max) '(invisible t))))))) - (defun gnus-article-hide-citation () - "Hide all cited text. - This function uses the famous, extremely intelligent \"shoot in foot\" - algorithm - which is simply deleting all lines that start with - \">\". Your mileage may vary. If you come up with anything better, - please do mail it to me." - (interactive) - (save-excursion - (set-buffer gnus-article-buffer) - (let ((buffer-read-only nil)) - (goto-char 1) - (search-forward "\n\n" nil t) - (while (not (eobp)) - (if (looking-at ">") - (add-text-properties - (point) (save-excursion (forward-line 1) (point)) - '(invisible t))) - (forward-line 1))))) - ;; Written by Per Abrahamsen . (defun gnus-article-treat-overstrike () "Translate overstrikes into bold text." --- 9742,9747 ---- *************** *** 11107,11118 **** (if (eq method gnus-select-method) (setq info (list group level nil)) (setq info (list group level nil nil method))))) ! (setq entry (cons info (if previous (cdr (cdr previous)) ! (cdr gnus-newsrc-alist)))) ! (setcdr (if previous (cdr previous) gnus-newsrc-alist) ! entry) ! (gnus-sethash group (cons num (if previous (cdr previous) ! gnus-newsrc-alist)) gnus-newsrc-hashtb) (if (cdr entry) (setcdr (gnus-gethash (car (car (cdr entry))) --- 11097,11111 ---- (if (eq method gnus-select-method) (setq info (list group level nil)) (setq info (list group level nil nil method))))) ! (or previous ! (setq previous ! (let ((p gnus-newsrc-alist)) ! (while (cdr (cdr p)) ! (setq p (cdr p))) ! p))) ! (setq entry (cons info (cdr (cdr previous)))) ! (setcdr (cdr previous) entry) ! (gnus-sethash group (cons num (cdr previous)) gnus-newsrc-hashtb) (if (cdr entry) (setcdr (gnus-gethash (car (car (cdr entry))) *************** *** 11184,11192 **** ;; Go though `gnus-newsrc-alist' and compare with `gnus-active-hashtb' ;; and compute how many unread articles there are in each group. (defun gnus-get-unread-articles (&optional level) ! (let ((newsrc (cdr gnus-newsrc-alist)) ! (level (or level (1+ gnus-level-subscribed))) ! info group active virtuals method) (message "Checking new news...") (while newsrc (setq info (car newsrc)) --- 11177,11186 ---- ;; Go though `gnus-newsrc-alist' and compare with `gnus-active-hashtb' ;; and compute how many unread articles there are in each group. (defun gnus-get-unread-articles (&optional level) ! (let* ((newsrc (cdr gnus-newsrc-alist)) ! (conditional level) ! (level (or level (1+ gnus-level-subscribed))) ! info group active virtuals method) (message "Checking new news...") (while newsrc (setq info (car newsrc)) *************** *** 11210,11217 **** (gnus-server-to-method method) (nth 4 info))) 'nnvirtual) (setq virtuals (cons info virtuals)) ! (setq active (gnus-activate-newsgroup (car info)))) ! (setq active nil)) (if (and (not gnus-read-active-file) (<= (nth 1 info) level)) (progn --- 11204,11210 ---- (gnus-server-to-method method) (nth 4 info))) 'nnvirtual) (setq virtuals (cons info virtuals)) ! (setq active (gnus-activate-newsgroup (car info))))) (if (and (not gnus-read-active-file) (<= (nth 1 info) level)) (progn *************** *** 11922,11929 **** gnus-newsrc-alist)))))) (setq line (1+ line)) (forward-line 1))) - (setq gnus-newsrc-alist (cdr gnus-newsrc-alist)) (or already-read (setq gnus-newsrc-alist (nreverse gnus-newsrc-alist))) (gnus-make-hashtable-from-newsrc-alist) nil)) --- 11915,11922 ---- gnus-newsrc-alist)))))) (setq line (1+ line)) (forward-line 1))) (or already-read (setq gnus-newsrc-alist (nreverse gnus-newsrc-alist))) + (setq gnus-newsrc-alist (cdr gnus-newsrc-alist)) (gnus-make-hashtable-from-newsrc-alist) nil)) *************** *** 12390,12411 **** (interactive (list (gnus-server-server-name))) (or server (error "No server on current line")) ! (make-local-variable 'gnus-prev-winconf) ! (setq gnus-prev-winconf (current-window-configuration)) ! (get-buffer-create gnus-server-edit-buffer) ! (gnus-configure-windows 'edit-server) ! (gnus-add-current-to-buffer-list) ! (emacs-lisp-mode) ! (use-local-map (copy-keymap (current-local-map))) ! (let ((done-func '(lambda () ! "Exit editing mode and update the information." ! (interactive) ! (gnus-server-edit-server-done 'group)))) ! (setcar (cdr (nth 4 done-func)) server) ! (local-set-key "\C-c\C-c" done-func)) ! (erase-buffer) ! (insert ";; Type `C-c C-c' after you have edited the server.\n\n") ! (insert (pp-to-string (cdr (assoc server gnus-server-alist))))) (defun gnus-server-edit-server-done (server) (interactive) --- 12383,12405 ---- (interactive (list (gnus-server-server-name))) (or server (error "No server on current line")) ! (let ((winconf (current-window-configuration))) ! (get-buffer-create gnus-server-edit-buffer) ! (gnus-configure-windows 'edit-server) ! (gnus-add-current-to-buffer-list) ! (emacs-lisp-mode) ! (make-local-variable 'gnus-prev-winconf) ! (setq gnus-prev-winconf winconf) ! (use-local-map (copy-keymap (current-local-map))) ! (let ((done-func '(lambda () ! "Exit editing mode and update the information." ! (interactive) ! (gnus-server-edit-server-done 'group)))) ! (setcar (cdr (nth 4 done-func)) server) ! (local-set-key "\C-c\C-c" done-func)) ! (erase-buffer) ! (insert ";; Type `C-c C-c' after you have edited the server.\n\n") ! (insert (pp-to-string (cdr (assoc server gnus-server-alist)))))) (defun gnus-server-edit-server-done (server) (interactive) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/nnbabyl.el dgnus/lisp/nnbabyl.el *** pub/dgnus/lisp/nnbabyl.el Tue May 9 08:12:00 1995 --- dgnus/lisp/nnbabyl.el Wed May 10 05:30:28 1995 *************** *** 287,311 **** (let ((buf (current-buffer)) result beg) (and (setq nnbabyl-group-alist (nnmail-get-active)) (save-excursion ! (set-buffer nnbabyl-mbox-buffer) ! (setq beg (goto-char (point-max))) ! (insert-buffer-substring buf) ! (goto-char beg) ! (if (stringp group) ! (progn ! (search-forward "\n\n" nil t) ! (forward-line -1) ! (save-excursion ! (while (re-search-backward "^X-Gnus-Newsgroup: " beg t) ! (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)) (defun nnbabyl-request-replace-article (article group buffer) (nnbabyl-possibly-change-newsgroup group) --- 287,315 ---- (let ((buf (current-buffer)) result beg) (and + (nnbabyl-request-list) (setq nnbabyl-group-alist (nnmail-get-active)) (save-excursion ! (goto-char (point-min)) ! (search-forward "\n\n" nil t) ! (forward-line -1) ! (save-excursion ! (while (re-search-backward "^X-Gnus-Newsgroup: " beg t) ! (delete-region (point) (progn (forward-line 1) (point))))) ! (let ((nnmail-split-methods ! (if (stringp group) (list (list group "")) ! nnmail-split-methods))) (setq result (nnbabyl-save-mail))) ! (set-buffer nnbabyl-mbox-buffer) ! (goto-char (point-max)) ! (search-backward "\n\^_") ! (goto-char (match-end 0)) ! (insert-buffer buf) ! (and last (progn ! (save-buffer) ! (nnmail-save-active ! nnbabyl-group-alist nnbabyl-active-file))) ! result)))) (defun nnbabyl-request-replace-article (article group buffer) (nnbabyl-possibly-change-newsgroup group) *************** *** 354,363 **** (defun nnbabyl-possibly-change-newsgroup (newsgroup) (if (or (not nnbabyl-mbox-buffer) ! (buffer-name nnbabyl-mbox-buffer)) (save-excursion (nnbabyl-read-mbox))) (or nnbabyl-group-alist ! (setq nnbabyl-group-alist (nnmail-get-active))) (if newsgroup (if (assoc newsgroup nnbabyl-group-alist) (setq nnbabyl-current-group newsgroup) --- 358,369 ---- (defun nnbabyl-possibly-change-newsgroup (newsgroup) (if (or (not nnbabyl-mbox-buffer) ! (not (buffer-name nnbabyl-mbox-buffer))) (save-excursion (nnbabyl-read-mbox))) (or nnbabyl-group-alist ! (progn ! (nnbabyl-request-list) ! (setq nnbabyl-group-alist (nnmail-get-active)))) (if newsgroup (if (assoc newsgroup nnbabyl-group-alist) (setq nnbabyl-current-group newsgroup) *************** *** 378,387 **** (defun nnbabyl-insert-newsgroup-line (group-art) (save-excursion (goto-char (point-min)) ! (or (looking-at "\^_") ! (insert "\^_\^L\n0, unseen,,\n*** EOOH ***\n")) (while (looking-at "From ") ! (replace-match "Mail-from: ") (forward-line 1)) (if (search-forward "\n\n" nil t) (progn --- 384,398 ---- (defun nnbabyl-insert-newsgroup-line (group-art) (save-excursion (goto-char (point-min)) ! ;; If there is a C-l at the beginning of the narrowed region, this ! ;; isn't really a "save", but rather a "scan". ! (or (looking-at "\^L") ! (save-excursion ! (insert "\^L\n0, unseen,,\n*** EOOH ***\n") ! (goto-char (point-max)) ! (insert "\^_\n"))) (while (looking-at "From ") ! (replace-match "Mail-from: " t t) (forward-line 1)) (if (search-forward "\n\n" nil t) (progn *************** *** 390,396 **** (insert (format "X-Gnus-Newsgroup: %s:%d %s\n" (car (car group-art)) (cdr (car group-art)) (current-time-string))) ! (setq group-art (cdr group-art))))))) (defun nnbabyl-active-number (group) ;; Find the next article number in GROUP. --- 401,408 ---- (insert (format "X-Gnus-Newsgroup: %s:%d %s\n" (car (car group-art)) (cdr (car group-art)) (current-time-string))) ! (setq group-art (cdr group-art))))) ! t)) (defun nnbabyl-active-number (group) ;; Find the next article number in GROUP. *************** *** 401,408 **** (defun nnbabyl-read-mbox () (nnbabyl-request-list) (setq nnbabyl-group-alist (nnmail-get-active)) ! (if (not (file-exists-p nnbabyl-mbox-file)) ! (write-region 1 1 nnbabyl-mbox-file t 'nomesg)) (if (and nnbabyl-mbox-buffer (get-buffer nnbabyl-mbox-buffer) (buffer-name nnbabyl-mbox-buffer) --- 413,425 ---- (defun nnbabyl-read-mbox () (nnbabyl-request-list) (setq nnbabyl-group-alist (nnmail-get-active)) ! (or (file-exists-p nnbabyl-mbox-file) ! (save-excursion ! (set-buffer (setq nnbabyl-mbox-buffer ! (create-file-buffer nnbabyl-mbox-file))) ! (setq buffer-file-name nnbabyl-mbox-file) ! (insert "BABYL OPTIONS:\n\n\^_") ! (write-region (point-min) (point-max) nnbabyl-mbox-file t 'nomesg))) (if (and nnbabyl-mbox-buffer (get-buffer nnbabyl-mbox-buffer) (buffer-name nnbabyl-mbox-buffer) *************** *** 438,446 **** (save-excursion (save-restriction (goto-char start) ! (narrow-to-region start end) (nnbabyl-save-mail)))))) ! (save-buffer) (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file))))) (defun nnbabyl-get-new-mail () --- 455,463 ---- (save-excursion (save-restriction (goto-char start) ! (narrow-to-region (1+ start) end) (nnbabyl-save-mail)))))) ! (and (buffer-modified-p (current-buffer)) (save-buffer)) (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file))))) (defun nnbabyl-get-new-mail () *************** *** 458,466 **** --- 475,488 ---- (save-excursion (let ((in-buf (nnmail-split-incoming incoming 'nnbabyl-save-mail t))) + (set-buffer in-buf) + (goto-char (point-min)) + (while (search-forward "\n\^_\n" nil t) + (delete-char -1)) (set-buffer nnbabyl-mbox-buffer) (goto-char (point-max)) (search-backward "\n\^_" nil t) + (goto-char (match-end 0)) (insert-buffer-substring in-buf) (kill-buffer in-buf))) (run-hooks 'nnmail-read-incoming-hook) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/nnmail.el dgnus/lisp/nnmail.el *** pub/dgnus/lisp/nnmail.el Tue May 9 08:12:00 1995 --- dgnus/lisp/nnmail.el Wed May 10 05:30:29 1995 *************** *** 375,387 **** "Go through the entire INCOMING file and pick out each individual mail. FUNC will be called with the buffer narrowed to each mail." (let ((delim (concat "^" rmail-unix-mail-delimiter)) ! start) (save-excursion (set-buffer (get-buffer-create " *nnmail incoming*")) (buffer-disable-undo (current-buffer)) (erase-buffer) (insert-file-contents incoming) ! (goto-char 1) (save-excursion (run-hooks 'nnmail-prepare-incoming-hook)) ;; Go to the beginning of the first mail... (if (and (re-search-forward delim nil t) --- 375,387 ---- "Go through the entire INCOMING file and pick out each individual mail. FUNC will be called with the buffer narrowed to each mail." (let ((delim (concat "^" rmail-unix-mail-delimiter)) ! start end) (save-excursion (set-buffer (get-buffer-create " *nnmail incoming*")) (buffer-disable-undo (current-buffer)) (erase-buffer) (insert-file-contents incoming) ! (goto-char (point-min)) (save-excursion (run-hooks 'nnmail-prepare-incoming-hook)) ;; Go to the beginning of the first mail... (if (and (re-search-forward delim nil t) *************** *** 392,397 **** --- 392,399 ---- ;; Skip all the headers in case there are more "From "s... (if (not (search-forward "\n\n" nil t)) (forward-line 1)) + ;; Go to the beginning of the next article - or to the end + ;; of the buffer. (if (re-search-forward delim nil t) (goto-char (match-beginning 0)) (goto-char (point-max))) *************** *** 399,405 **** (save-restriction (narrow-to-region start (point)) (goto-char (point-min)) ! (funcall func))))) (if dont-kill (current-buffer) (kill-buffer (current-buffer)))))) --- 401,409 ---- (save-restriction (narrow-to-region start (point)) (goto-char (point-min)) ! (funcall func) ! (setq end (point-max)))) ! (goto-char end))) (if dont-kill (current-buffer) (kill-buffer (current-buffer)))))) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/nntp.el dgnus/lisp/nntp.el *** pub/dgnus/lisp/nntp.el Tue May 9 08:12:01 1995 --- dgnus/lisp/nntp.el Wed May 10 07:58:32 1995 *************** *** 33,39 **** (autoload 'news-setup "rnewspost") (autoload 'news-reply-mode "rnewspost") (autoload 'nnmail-request-post-buffer "nnmail") ! (autoload 'cancel-timer "timer")) (defvar nntp-server-hook nil "*Hooks for the NNTP server. --- 33,41 ---- (autoload 'news-setup "rnewspost") (autoload 'news-reply-mode "rnewspost") (autoload 'nnmail-request-post-buffer "nnmail") ! (autoload 'cancel-timer "timer") ! (autoload 'telnet "telnet") ! (autoload 'telnet-send-input "telnet")) (defvar nntp-server-hook nil "*Hooks for the NNTP server. *************** *** 179,184 **** --- 181,187 ---- (list 'nntp-connection-timeout nntp-connection-timeout) (list 'nntp-news-default-headers nntp-news-default-headers) (list 'nntp-prepare-server-hook nntp-prepare-server-hook) + (list 'nntp-async-number nntp-async-number) '(nntp-async-process nil) '(nntp-async-buffer nil) '(nntp-async-articles nil) *************** *** 487,506 **** (looking-at "[23]"))) (defun nntp-request-asynchronous (group &optional server articles) ! (if (not (or (nntp-async-server-opened) ! (nntp-async-open-server))) ! (progn ! (message "Can't open second connection to %s" nntp-address) ! (ding) ! (setq nntp-async-articles nil) ! (sit-for 2)) ! (setq nntp-async-articles articles) ! (setq nntp-async-fetched nil) ! (save-excursion ! (set-buffer nntp-async-buffer) ! (erase-buffer)) ! (nntp-async-send-strings "GROUP" group) ! t)) (defun nntp-list-active-group (group &optional server) (nntp-send-command "^.*\r?$" "LIST ACTIVE" group)) --- 490,511 ---- (looking-at "[23]"))) (defun nntp-request-asynchronous (group &optional server articles) ! (and ! nntp-async-number ! (if (not (or (nntp-async-server-opened) ! (nntp-async-open-server))) ! (progn ! (message "Can't open second connection to %s" nntp-address) ! (ding) ! (setq nntp-async-articles nil) ! (sit-for 2)) ! (setq nntp-async-articles articles) ! (setq nntp-async-fetched nil) ! (save-excursion ! (set-buffer nntp-async-buffer) ! (erase-buffer)) ! (nntp-async-send-strings "GROUP" group) ! t))) (defun nntp-list-active-group (group &optional server) (nntp-send-command "^.*\r?$" "LIST ACTIVE" group)) *************** *** 975,980 **** --- 980,1003 ---- (process-send-string proc (mapconcat (lambda (s) s) nntp-rlogin-parameters " ")) (process-send-string proc "\n"))) + + (defun nntp-telnet-to-machine + (let (b) + (telnet "localhost") + (goto-char (point-min)) + (while (not (re-search-forward "^login: *" nil t)) + (sit-for 1) + (goto-char (point-min))) + (goto-char (point-max)) + (insert "larsi") + (telnet-send-input) + (setq b (point)) + (while (not (re-search-forward ">" nil t)) + (sit-for 1) + (goto-char b)) + (goto-char (point-max)) + (insert "ls") + (telnet-send-input))) (defun nntp-close-server-internal (&optional server) "Close connection to news server." diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/texi/gnus.texi dgnus/texi/gnus.texi *** pub/dgnus/texi/gnus.texi Tue May 9 08:12:08 1995 --- dgnus/texi/gnus.texi Wed May 10 06:54:24 1995 *************** *** 1197,1206 **** A foreign group (or any group, really) is specified by a @dfn{name} and a @dfn{select method}. To take the latter first, a select method is a ! list where the first element says what backend to use (eg. nntp, ! nnspool, nnml) and the second element is the @dfn{server name}. There ! may be additional elements in the select method, where the value may ! have special meaning for the backend in question. One could say that a select method defines a @dfn{virtual server} - so we do just that (@pxref{The Server Buffer}). --- 1197,1206 ---- A foreign group (or any group, really) is specified by a @dfn{name} and a @dfn{select method}. To take the latter first, a select method is a ! list where the first element says what backend to use (eg. @code{nntp}, ! @code{nnspool}, @code{nnml}) and the second element is the @dfn{server ! name}. There may be additional elements in the select method, where the ! value may have special meaning for the backend in question. One could say that a select method defines a @dfn{virtual server} - so we do just that (@pxref{The Server Buffer}). *************** *** 1853,1860 **** happily with @code{nnml} and just want to peek at some old @sc{rmail} file you have stashed away with @code{nnbabyl}. All backends have variables called backend-@code{get-new-mail}. If you want to disable ! the @code{nnbabyl} mail reading, you just set ! @code{nnbabyl-get-new-mail} to @code{nil}. @node nnmbox @subsubsection nnmbox --- 1853,1860 ---- happily with @code{nnml} and just want to peek at some old @sc{rmail} file you have stashed away with @code{nnbabyl}. All backends have variables called backend-@code{get-new-mail}. If you want to disable ! the @code{nnbabyl} mail reading, you edit the virtual server for the ! group to have a setting where @code{nnbabyl-get-new-mail} to @code{nil}. @node nnmbox @subsubsection nnmbox *************** *** 1867,1872 **** --- 1867,1874 ---- mail. @code{nnmbox} will add extra headers to each mail article to say which group it belongs in. + Virtual server settings: + @table @code @item nnmbox-mbox-file @vindex nnmbox-mbox-file *************** *** 1893,1898 **** --- 1895,1902 ---- @code{nnbabyl} will add extra headers to each mail article to say which group it belongs in. + Virtual server settings: + @table @code @item nnbabyl-mbox-file @vindex nnbabyl-mbox-file *************** *** 1938,1943 **** --- 1942,1949 ---- @sc{nov} databases for the incoming mails. This makes is the fastest backend when it comes to reading mail. + Virtual server settings: + @table @code @item nnml-directory @vindex nnml-directory *************** *** 1982,1987 **** --- 1988,1995 ---- @code{nnmh} a @emph{much} slower backend than @code{nnml}, but it also makes it easier to write procmail scripts for. + Virtual server settings: + @table @code @item nnmh-directory All @code{nnmh} directories will be located under this directory. *************** *** 2000,2005 **** --- 2008,2015 ---- will add extra headers to keep track of article numbers and arrival dates. + Virtual server settings: + @table @code @item nnfolder-directory All the @code{nnfolder} mail boxes will be stored under this directory. *************** *** 2696,2711 **** This hook is run after selecting an article. It is meant to be used for highlighting the article in some way. It is not run if @code{gnus-visual} is @code{nil}. ! @item gnus-visual-summary-update-hook ! @vindex gnus-visual-summary-update-hook This hook is called when a summary line is changed. It is not run if @code{gnus-visual} is @code{nil}. @item gnus-summary-selected-face @vindex gnus-summary-selected-face This is the face (or @dfn{font} as some people call it) that is used to highlight the current article in the summary buffer. ! @item gnus-visual-summary-highlight ! @vindex gnus-visual-summary-highlight Summary lines are highlighted according to this variable, which is a list where the elements are on the format @code{(FORM . FACE)}. If you would, for instance, like ticked articles to be italic and high-scored --- 2706,2721 ---- This hook is run after selecting an article. It is meant to be used for highlighting the article in some way. It is not run if @code{gnus-visual} is @code{nil}. ! @item gnus-summary-update-hook ! @vindex gnus-summary-update-hook This hook is called when a summary line is changed. It is not run if @code{gnus-visual} is @code{nil}. @item gnus-summary-selected-face @vindex gnus-summary-selected-face This is the face (or @dfn{font} as some people call it) that is used to highlight the current article in the summary buffer. ! @item gnus-summary-highlight ! @vindex gnus-summary-highlight Summary lines are highlighted according to this variable, which is a list where the elements are on the format @code{(FORM . FACE)}. If you would, for instance, like ticked articles to be italic and high-scored *************** *** 2864,2869 **** --- 2874,2885 ---- @vindex gnus-mail-send-method This variable says how a mail should be mailed. It uses the function in the @code{send-mail-function} variable as the default. + + @item gnus-uu-digest-headers + @vindex gnus-uu-digest-headers + List of regexps to match headers included in digested messages. The + headers will be included in the sequence they are matched. + @end table *************** *** 4640,4645 **** --- 4656,4666 ---- @findex gnus-summary-raise-by-subject Increase the current subject permanently (@code{gnus-summary-raise-by-subject}). + @item I s i + @kindex I s i (Summary) + @findex gnus-summary-immediately-raise-by-subject + Increase the current subject immediately + (@code{gnus-summary-immediately-raise-by-subject}). @item I a t @kindex I a t (Summary) @findex gnus-summary-temporarily-raise-by-author *************** *** 4650,4655 **** --- 4671,4681 ---- @findex gnus-summary-raise-by-author Increase the current author permanently (@code{gnus-summary-raise-by-author}). + @item I a i + @kindex I a i (Summary) + @findex gnus-summary-immediately-raise-by-author + Increase the current author immediately + (@code{gnus-summary-immediately-raise-by-author}). @item I b t @kindex I b t (Summary) @findex gnus-summary-temporarily-raise-by-body *************** *** 4661,4666 **** --- 4687,4697 ---- @findex gnus-summary-raise-by-body Increase based on a match on the body of an article (@code{gnus-summary-raise-by-body}). This is a very slow operation + @item I b i + @kindex I b i (Summary) + @findex gnus-summary-immediately-raise-by-body + Increase based on a match on the body of an article + (@code{gnus-summary-immediately-raise-by-body}). This is a very slow operation @item I i t @kindex I i t (Summary) @findex gnus-summary-temporarily-raise-by-id *************** *** 4671,4676 **** --- 4702,4712 ---- @findex gnus-summary-raise-by-id Increase the current message-id permanently (@code{gnus-summary-raise-by-id}). + @item I i i + @kindex I i i (Summary) + @findex gnus-summary-immediately-raise-by-id + Increase the current message-id immediately + (@code{gnus-summary-immediately-raise-by-id}). @item I t t @kindex I t t (Summary) @findex gnus-summary-temporarily-raise-by-thread *************** *** 4681,4686 **** --- 4717,4727 ---- @findex gnus-summary-raise-by-thread Increase the current thread permanently (@code{gnus-summary-raise-by-thread}). + @item I t i + @kindex I t i (Summary) + @findex gnus-summary-immediately-raise-by-thread + Increase the current thread immediately + (@code{gnus-summary-immediately-raise-by-thread}). @item I x t @kindex I x t (Summary) @findex gnus-summary-temporarily-raise-by-xref *************** *** 4691,4696 **** --- 4732,4742 ---- @findex gnus-summary-raise-by-xref Increase the current xref permanently (@code{gnus-summary-raise-by-xref}). + @item I x i + @kindex I x i (Summary) + @findex gnus-summary-immediately-raise-by-xref + Increase the current xref immediately + (@code{gnus-summary-immediately-raise-by-xref}). @item I f t @kindex I f t (Summary) @findex gnus-summary-temporarily-raise-followups-to-author *************** *** 4701,4706 **** --- 4747,4757 ---- @findex gnus-summary-raise-followups-to-author Increase followups to the current author permanently (@code{gnus-summary-raise-followups-to-author}). + @item I f i + @kindex I f i (Summary) + @findex gnus-summary-immediately-raise-followups-to-author + Increase followups to the current author immediately + (@code{gnus-summary-immediately-raise-followups-to-author}). @end table Commands for lowering the score: *************** *** 4716,4721 **** --- 4767,4777 ---- @findex gnus-summary-lower-by-subject Lower the current subject permanently (@code{gnus-summary-lower-by-subject}). + @item L s i + @kindex L s i (Summary) + @findex gnus-summary-immediately-lower-by-subject + Lower the current subject immediately + (@code{gnus-summary-immediately-lower-by-subject}). @item L a t @kindex L a t (Summary) @findex gnus-summary-temporarily-lower-by-author *************** *** 4726,4731 **** --- 4782,4792 ---- @findex gnus-summary-lower-by-author Lower the current author permanently (@code{gnus-summary-lower-by-author}). + @item L a i + @kindex L a i (Summary) + @findex gnus-summary-immediately-lower-by-author + Lower the current author immediately + (@code{gnus-summary-immediately-lower-by-author}). @item L b t @kindex L b t (Summary) @findex gnus-summary-temporarily-lower-by-body *************** *** 4737,4742 **** --- 4798,4808 ---- @findex gnus-summary-lower-by-body Lower based on a match on the article body (@code{gnus-summary-lower-by-body}). This is a very slow operation. + @item L b i + @kindex L b i (Summary) + @findex gnus-summary-immediately-lower-by-body + Lower based on a match on the article body + (@code{gnus-summary-immediately-lower-by-body}). This is a very slow operation. @item L i t @kindex L i t (Summary) @findex gnus-summary-temporarily-lower-by-id *************** *** 4747,4752 **** --- 4813,4823 ---- @findex gnus-summary-lower-by-id Lower the current message-id permanently (@code{gnus-summary-lower-by-id}). + @item L i i + @kindex L i i (Summary) + @findex gnus-summary-immediately-lower-by-id + Lower the current message-id immediately + (@code{gnus-summary-immediately-lower-by-id}). @item L t t @kindex L t t (Summary) @findex gnus-summary-temporarily-lower-by-thread *************** *** 4757,4762 **** --- 4828,4838 ---- @findex gnus-summary-lower-by-thread Lower the current thread permanently (@code{gnus-summary-lower-by-thread}). + @item L t i + @kindex L t i (Summary) + @findex gnus-summary-immediately-lower-by-thread + Lower the current thread immediately + (@code{gnus-summary-immediately-lower-by-thread}). @item L x t @kindex L x t (Summary) @findex gnus-summary-temporarily-lower-by-xref *************** *** 4767,4772 **** --- 4843,4853 ---- @findex gnus-summary-lower-by-xref Lower the current xref permanently (@code{gnus-summary-lower-by-xref}). + @item L x i + @kindex L x i (Summary) + @findex gnus-summary-immediately-lower-by-xref + Lower the current xref immediately + (@code{gnus-summary-immediately-lower-by-xref}). @item L f t @kindex L f t (Summary) @findex gnus-summary-temporarily-lower-followups-to-author *************** *** 4777,4782 **** --- 4858,4868 ---- @findex gnus-summary-lower-followups-to-author Lower followups to the current author permanently (@code{gnus-summary-lower-followups-to-author}). + @item L f i + @kindex L f i (Summary) + @findex gnus-summary-immediately-lower-followups-to-author + Lower followups to the current author immediately + (@code{gnus-summary-immediately-lower-followups-to-author}). @end table @node Score Variables *************** *** 5740,5745 **** --- 5826,5832 ---- @menu * Interactive:: Making Gnus ask you many questions. * Windows Configuration:: Configuring the Gnus buffer windows. + * Buttons:: Get tendonitis in ten easy steps! * Various Various:: Things that are really various. @end menu *************** *** 5867,5872 **** --- 5954,6004 ---- @code{followup}, @code{followup-yank}. @end table + + @node Buttons + @section Buttons + @cindex buttons + @cindex mouse + @cindex click + + Those new-fangled @dfn{mouse} contraptions is very popular with the + young, hep kids who don't want to learn the proper way to do things + these days. Why, I remember way back in the summer of '89, when I was + using Emacs on a Tops 20 system. Three hundred users on one single + machine, and every user was running Simula compilers. Bah! + + Right. + + @vindex gnus-carpal + Well, you can make Gnus display bufferfuls of buttons you can click to + do anything by setting @code{gnus-carpal} to @code{t}. Pretty simple, + really. Tell the chiropractor I sent you. + + + @table @code + @item gnus-carpal-mode-hook + @vindex gnus-carpal-mode-hook + Hook run in all carpal mode buffers. + @item gnus-carpal-button-face + @vindex gnus-carpal-button-face + Face used on buttons. + @item gnus-carpal-group-buffer-buttons + @vindex gnus-carpal-group-buffer-buttons + Buttons in the group buffer. + @item gnus-carpal-summary-buffer-buttons + @vindex gnus-carpal-summary-buffer-buttons + Buttons in the summary buffer. + @item gnus-carpal-server-buffer-buttons + @vindex gnus-carpal-server-buffer-buttons + Buttons in the server buffer. + @item gnus-carpal-browse-buffer-buttons + @vindex gnus-carpal-browse-buffer-buttons + Buttons in the browse buffer. + @end table + + All the @code{buttons} variables are lists. The elements in these list + is either a cons cell where the car contains a text to be displayed and + the cdr contains a function symbol, or a simple string. @node Various Various @section Various Various