*** pub/dgnus/lisp/custom.el Wed Jun 7 16:15:50 1995 --- dgnus/lisp/custom.el Thu Jun 8 16:25:55 1995 *************** *** 417,423 **** (defun custom-field-accept (field value &optional original) "Accept FIELD VALUE. ! If optional ORIGINAL is non-nil, concider VALUE for the original value." (funcall (custom-property (custom-field-custom field) 'accept) field value original)) --- 417,423 ---- (defun custom-field-accept (field value &optional original) "Accept FIELD VALUE. ! If optional ORIGINAL is non-nil, consider VALUE for the original value." (funcall (custom-property (custom-field-custom field) 'accept) field value original)) *************** *** 944,950 **** ;; The Customization major mode and interactive commands. (defvar custom-mode-map nil ! "Keymap for Custum Mode.") (if custom-mode-map nil (setq custom-mode-map (make-sparse-keymap)) --- 944,950 ---- ;; The Customization major mode and interactive commands. (defvar custom-mode-map nil ! "Keymap for Custom Mode.") (if custom-mode-map nil (setq custom-mode-map (make-sparse-keymap)) *** pub/dgnus/lisp/gnus-cite.el Wed Jun 7 16:15:50 1995 --- dgnus/lisp/gnus-cite.el Thu Jun 8 16:25:55 1995 *************** *** 129,139 **** Attribution lines are highlighted with the sameface as the corresponding citation merged with `gnus-cite-attribution-face'. ! Text is concidered cited if at least `gnus-cite-minimum-match-count' lines matches `gnus-cite-prefix-regexp' with the same prefix. Lines matching `gnus-cite-attribution-postfix' and perhaps ! `gnus-cite-attribution-prefix' are concidered attribution lines." (interactive) ;; Create dark or light faces if necessary. (cond ((eq gnus-cite-face-list 'light) --- 129,139 ---- Attribution lines are highlighted with the sameface as the corresponding citation merged with `gnus-cite-attribution-face'. ! Text is considered cited if at least `gnus-cite-minimum-match-count' lines matches `gnus-cite-prefix-regexp' with the same prefix. Lines matching `gnus-cite-attribution-postfix' and perhaps ! `gnus-cite-attribution-prefix' are considered attribution lines." (interactive) ;; Create dark or light faces if necessary. (cond ((eq gnus-cite-face-list 'light) *** pub/dgnus/lisp/gnus-ems.el Wed Jun 7 16:15:50 1995 --- dgnus/lisp/gnus-ems.el Thu Jun 8 16:24:57 1995 *************** *** 98,104 **** ((and (not (string-match "28.9" emacs-version)) (not (string-match "29" emacs-version))) ! (setq gnus-hidden-properties '(invisible t))) ((boundp 'MULE) (provide 'gnusutil)) --- 98,107 ---- ((and (not (string-match "28.9" emacs-version)) (not (string-match "29" emacs-version))) ! (setq gnus-hidden-properties '(invisible t)) ! (or (fboundp 'buffer-substring-no-properties) ! (defun buffer-substring-no-properties (beg end) ! (format "%s" (buffer-substring beg end))))) ((boundp 'MULE) (provide 'gnusutil)) *** pub/dgnus/lisp/gnus-kill.el Wed Jun 7 16:15:50 1995 --- dgnus/lisp/gnus-kill.el Thu Jun 8 16:25:56 1995 *************** *** 338,344 **** ;; from the `gnus-newsgroup-headers' list that the score functions ;; will see. This is probably pretty wasteful when it comes to ;; conses, but is, I think, faster than having to assq in every ! ;; single score funtion. (let ((files kill-files)) (while files (if (file-exists-p (car files)) --- 338,344 ---- ;; from the `gnus-newsgroup-headers' list that the score functions ;; will see. This is probably pretty wasteful when it comes to ;; conses, but is, I think, faster than having to assq in every ! ;; single score function. (let ((files kill-files)) (while files (if (file-exists-p (car files)) *** pub/dgnus/lisp/gnus-msg.el Wed Jun 7 16:15:50 1995 --- dgnus/lisp/gnus-msg.el Fri Jun 9 19:52:58 1995 *************** *** 159,164 **** --- 159,169 ---- If this variable is t, Gnus will check everything it can. If it is a list, then those elements in that list will be checked.") + (defvar gnus-delete-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:" + "*Header lines matching this regexp will be deleted before posting. + It's best to delete old Path and Date headers before psoting to avoid + any confusion.") + (defvar gnus-auto-mail-to-author nil "*If non-nil, mail the authors of articles a copy of your follow-ups. If this variable is `ask', the user will be prompted for whether to *************** *** 332,344 **** header line with the old Message-ID." (interactive) (gnus-set-global-variables) ! (if (not (string-equal (downcase (mail-strip-quoted-names (header-from gnus-current-headers))) (downcase (mail-strip-quoted-names (gnus-inews-user-name))))) (error "This article is not yours.")) - (gnus-summary-select-article t) (save-excursion (set-buffer gnus-article-buffer) (let ((buffer-read-only nil)) --- 337,349 ---- header line with the old Message-ID." (interactive) (gnus-set-global-variables) ! (gnus-summary-select-article t) ! (if (or (string-equal (downcase (mail-strip-quoted-names (header-from gnus-current-headers))) (downcase (mail-strip-quoted-names (gnus-inews-user-name))))) (error "This article is not yours.")) (save-excursion (set-buffer gnus-article-buffer) (let ((buffer-read-only nil)) *************** *** 357,363 **** (replace-match "Supersedes: " t t)) (search-forward "\n\n") (forward-line -1) ! (insert mail-header-separator)))) ;;;###autoload --- 362,375 ---- (replace-match "Supersedes: " t t)) (search-forward "\n\n") (forward-line -1) ! (insert mail-header-separator) ! ! (forward-line -1) ! (narrow-to-region (point-min) (point)) ! (goto-char (point-min)) ! (and gnus-delete-supersedes-headers ! (delete-matching-lines gnus-delete-supersedes-headers)) ! (widen)))) ;;;###autoload *************** *** 969,975 **** (goto-char (point-min)) (and (re-search-forward (concat "^" (symbol-name (car headers)) ": *") nil t) ! (get-text-property (match-end 0) 'gnus-delete) (gnus-delete-line)) (setq headers (cdr headers)))) ;; Insert new Sender if the From is strange. --- 981,987 ---- (goto-char (point-min)) (and (re-search-forward (concat "^" (symbol-name (car headers)) ": *") nil t) ! (get-text-property (1+ (match-end 0)) 'gnus-deletable) (gnus-delete-line)) (setq headers (cdr headers)))) ;; Insert new Sender if the From is strange. *************** *** 1261,1266 **** --- 1273,1281 ---- "~/.organization"))) (and (stringp organization) (> (length organization) 0) + (or (file-exists-p organization) + (string-match " " organization) + (not (string-match "^/usr/lib/" organization))) (save-excursion (gnus-set-work-buffer) (if (file-exists-p organization) *** pub/dgnus/lisp/gnus-score.el Wed Jun 7 16:15:52 1995 --- dgnus/lisp/gnus-score.el Fri Jun 9 19:53:00 1995 *************** *** 80,86 **** where HEADER is the header being scored, MATCH is the string we are looking for, TYPE is a flag indicating whether it should use regexp or substring matching, SCORE is the score to add and DATE is the date ! of the last succesful match.") (defvar gnus-score-cache nil) (defvar gnus-scores-articles nil) --- 80,86 ---- where HEADER is the header being scored, MATCH is the string we are looking for, TYPE is a flag indicating whether it should use regexp or substring matching, SCORE is the score to add and DATE is the date ! of the last successful match.") (defvar gnus-score-cache nil) (defvar gnus-scores-articles nil) *************** *** 250,261 **** (if mimic (message "%c %c %c %c" prefix hchar tchar pchar) (message ""))))) ;; We have all the data, so we enter this score. (if end () (gnus-summary-score-entry (nth 1 entry) ; Header ! (gnus-summary-header (or (nth 2 entry) (nth 1 entry))) ; Match type ; Type (if (eq 's score) nil score) ; Score (if (eq 'perm temporary) ; Temp --- 250,263 ---- (if mimic (message "%c %c %c %c" prefix hchar tchar pchar) (message ""))))) + ;; We have all the data, so we enter this score. (if end () (gnus-summary-score-entry (nth 1 entry) ; Header ! (if (string= (nth 2 entry) "") "" ! (gnus-summary-header (or (nth 2 entry) (nth 1 entry)))) ; Match type ; Type (if (eq 's score) nil score) ; Score (if (eq 'perm temporary) ; Temp *************** *** 981,995 **** (save-restriction (let* ((buffer-read-only nil) (articles gnus-scores-articles) ! (last (header-number ! (gnus-last-element (car gnus-scores-articles)))) (all-scores scores) (request-func (cond ((string= "head" (downcase header)) 'gnus-request-head) ((string= "body" (downcase header)) 'gnus-request-body) (t 'gnus-request-article))) ! alike last this art entries alist ofunc article) ;; Not all backends support partial fetching. In that case, ;; we just fetch the entire article. (or (gnus-check-backend-function request-func gnus-newsgroup-name) --- 983,996 ---- (save-restriction (let* ((buffer-read-only nil) (articles gnus-scores-articles) ! (last (header-number (car (car gnus-scores-articles)))) (all-scores scores) (request-func (cond ((string= "head" (downcase header)) 'gnus-request-head) ((string= "body" (downcase header)) 'gnus-request-body) (t 'gnus-request-article))) ! alike this art entries alist ofunc article) ;; Not all backends support partial fetching. In that case, ;; we just fetch the entire article. (or (gnus-check-backend-function request-func gnus-newsgroup-name) *** pub/dgnus/lisp/gnus-soup.el Wed Jun 7 16:15:52 1995 --- dgnus/lisp/gnus-soup.el Fri Jun 9 19:53:00 1995 *************** *** 359,364 **** --- 359,365 ---- (string-to-int (gnus-soup-unique-prefix dir)) files))) (dir (expand-file-name dir))) + (setq gnus-soup-areas nil) (message "Packing %s..." packer) (if (zerop (call-process "sh" nil nil nil "-c" (concat "cd " dir " ; " packer))) *************** *** 500,506 **** (and (file-exists-p (concat dir gnus-soup-prefix-file)) (condition-case nil (load-file (concat dir gnus-soup-prefix-file)) ! (setq error nil))) (setq gnus-soup-last-prefix (cons (setq entry (cons dir (or gnus-soup-prev-prefix 0))) gnus-soup-last-prefix))) --- 501,507 ---- (and (file-exists-p (concat dir gnus-soup-prefix-file)) (condition-case nil (load-file (concat dir gnus-soup-prefix-file)) ! (error nil))) (setq gnus-soup-last-prefix (cons (setq entry (cons dir (or gnus-soup-prev-prefix 0))) gnus-soup-last-prefix))) *** pub/dgnus/lisp/gnus-uu.el Wed Jun 7 16:15:52 1995 --- dgnus/lisp/gnus-uu.el Fri Jun 9 19:53:02 1995 *************** *** 73,79 **** your needs. First we have `gnus-uu-user-view-rules', which is the variable gnus-uu first consults when trying to decide how to view a file. If this variable contains no matches, gnus-uu examines the ! default rule vaiable provided in this package. If gnus-uu finds no match here, it uses `gnus-uu-user-view-rules-end' to try to make a match.") --- 73,79 ---- your needs. First we have `gnus-uu-user-view-rules', which is the variable gnus-uu first consults when trying to decide how to view a file. If this variable contains no matches, gnus-uu examines the ! default rule variable provided in this package. If gnus-uu finds no match here, it uses `gnus-uu-user-view-rules-end' to try to make a match.") *************** *** 185,191 **** (defvar gnus-uu-view-and-save nil "*Non-nil means that the user will always be asked to save a file after viewing it. ! If the variable is nil, the suer will only be asked to save if the viewing is unsuccessful. Default is nil.") (defvar gnus-uu-ignore-default-view-rules nil --- 185,191 ---- (defvar gnus-uu-view-and-save nil "*Non-nil means that the user will always be asked to save a file after viewing it. ! If the variable is nil, the user will only be asked to save if the viewing is unsuccessful. Default is nil.") (defvar gnus-uu-ignore-default-view-rules nil *************** *** 211,217 **** Default is nil.") (defvar gnus-uu-correct-stripped-uucode nil ! "*Non-nil means that gnus-uu will *try* to fix uuencoded files that have had traling spaces deleted. Default is nil.") (defvar gnus-uu-save-in-digest nil --- 211,217 ---- Default is nil.") (defvar gnus-uu-correct-stripped-uucode nil ! "*Non-nil means that gnus-uu will *try* to fix uuencoded files that have had trailing spaces deleted. Default is nil.") (defvar gnus-uu-save-in-digest nil *************** *** 331,337 **** (defun gnus-uu-decode-unshar (n) "Unshars the current article." (interactive "P") ! (gnus-uu-decode-with-method 'gnus-uu-unshar-article n)) (defun gnus-uu-decode-unshar-and-save (n dir) "Unshars and saves the current article." --- 331,337 ---- (defun gnus-uu-decode-unshar (n) "Unshars the current article." (interactive "P") ! (gnus-uu-decode-with-method 'gnus-uu-unshar-article n nil nil 'scan)) (defun gnus-uu-decode-unshar-and-save (n dir) "Unshars and saves the current article." *************** *** 340,346 **** (read-file-name "Unshar and save in dir: " gnus-uu-default-dir gnus-uu-default-dir t))) ! (gnus-uu-decode-with-method 'gnus-uu-unshar-article n dir)) (defun gnus-uu-decode-save (n file) "Saves the current article." --- 340,346 ---- (read-file-name "Unshar and save in dir: " gnus-uu-default-dir gnus-uu-default-dir t))) ! (gnus-uu-decode-with-method 'gnus-uu-unshar-article n dir nil 'scan)) (defun gnus-uu-decode-save (n file) "Saves the current article." *************** *** 576,593 **** ;; Internal functions. ! (defun gnus-uu-decode-with-method (method n &optional save not-insert) (gnus-uu-initialize) (if save (setq gnus-uu-default-dir save)) (let ((articles (gnus-uu-get-list-of-articles n)) files) (setq files (gnus-uu-grab-articles articles method t)) (and save (gnus-uu-save-files files save)) (setq files (gnus-uu-unpack-files files)) (gnus-uu-add-file (mapcar (lambda (file) (cdr (assq 'name file))) files)) (setq files (nreverse (gnus-uu-get-actions files))) (or not-insert (gnus-summary-insert-pseudos files)))) (defun gnus-uu-save-files (files dir) (let ((len (length files)) to-file file) --- 576,610 ---- ;; Internal functions. ! (defun gnus-uu-decode-with-method (method n &optional save not-insert scan) (gnus-uu-initialize) (if save (setq gnus-uu-default-dir save)) (let ((articles (gnus-uu-get-list-of-articles n)) files) (setq files (gnus-uu-grab-articles articles method t)) + (let ((gnus-current-article (car articles))) + (and scan (setq files (gnus-uu-scan-directory gnus-uu-work-dir)))) (and save (gnus-uu-save-files files save)) (setq files (gnus-uu-unpack-files files)) (gnus-uu-add-file (mapcar (lambda (file) (cdr (assq 'name file))) files)) (setq files (nreverse (gnus-uu-get-actions files))) (or not-insert (gnus-summary-insert-pseudos files)))) + ;; Return a list of files in dir. + (defun gnus-uu-scan-directory (dir) + (let ((files (directory-files dir t)) + dirs out) + (while files + (cond ((string-match "/\\.\\.?$" (car files))) + ((file-directory-p (car files)) + (setq dirs (cons (car files) dirs))) + (t (setq out (cons (list (cons 'name (car files)) + (cons 'article gnus-current-article)) + out)))) + (setq files (cdr files))) + (apply 'nconc out (mapcar (lambda (d) (gnus-uu-scan-directory d)) + dirs)))) + (defun gnus-uu-save-files (files dir) (let ((len (length files)) to-file file) *************** *** 599,605 **** (concat dir (file-name-nondirectory file)) dir)) (and (or (not (file-exists-p to-file)) ! (gnus-y-or-n-p (format "%s exists; overwrite? " to-file))) (copy-file file to-file 1 t)))) (setq files (cdr files))) (message "Saved %d file%s" len (if (> len 1) "s" "")))) --- 616,623 ---- (concat dir (file-name-nondirectory file)) dir)) (and (or (not (file-exists-p to-file)) ! (gnus-y-or-n-p (format "%s exists; overwrite? " ! to-file))) (copy-file file to-file 1 t)))) (setq files (cdr files))) (message "Saved %d file%s" len (if (> len 1) "s" "")))) *************** *** 1441,1460 **** (defun gnus-uu-initialize () (setq gnus-uu-highest-article-number 1) (gnus-uu-check-for-generated-files) ! (setq gnus-uu-tmp-dir (expand-file-name gnus-uu-tmp-dir)) ! (if (string-match "[^/]$" gnus-uu-tmp-dir) ! (setq gnus-uu-tmp-dir (concat gnus-uu-tmp-dir "/"))) (if (not (file-directory-p gnus-uu-tmp-dir)) (error "Temp directory %s doesn't exist" gnus-uu-tmp-dir) (if (not (file-writable-p gnus-uu-tmp-dir)) (error "Temp directory %s can't be written to" gnus-uu-tmp-dir))) (setq gnus-uu-work-dir ! (concat gnus-uu-tmp-dir (make-temp-name "gnus"))) (gnus-uu-add-file gnus-uu-work-dir) (if (not (file-directory-p gnus-uu-work-dir)) (make-directory gnus-uu-work-dir)) (set-file-modes gnus-uu-work-dir 448) ! (setq gnus-uu-work-dir (concat gnus-uu-work-dir "/"))) ;; Kills the temporary uu buffers, kills any processes, etc. (defun gnus-uu-clean-up () --- 1459,1479 ---- (defun gnus-uu-initialize () (setq gnus-uu-highest-article-number 1) (gnus-uu-check-for-generated-files) ! (setq gnus-uu-tmp-dir (file-name-as-directory ! (expand-file-name gnus-uu-tmp-dir))) ! (if (not (file-directory-p gnus-uu-tmp-dir)) (error "Temp directory %s doesn't exist" gnus-uu-tmp-dir) (if (not (file-writable-p gnus-uu-tmp-dir)) (error "Temp directory %s can't be written to" gnus-uu-tmp-dir))) + (setq gnus-uu-work-dir ! (make-temp-name (concat gnus-uu-tmp-dir "gnus"))) (gnus-uu-add-file gnus-uu-work-dir) (if (not (file-directory-p gnus-uu-work-dir)) (make-directory gnus-uu-work-dir)) (set-file-modes gnus-uu-work-dir 448) ! (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir))) ;; Kills the temporary uu buffers, kills any processes, etc. (defun gnus-uu-clean-up () *** pub/dgnus/lisp/gnus-vis.el Wed Jun 7 16:15:52 1995 --- dgnus/lisp/gnus-vis.el Fri Jun 9 19:53:04 1995 *************** *** 68,74 **** (defvar gnus-header-face-alist '(("" bold italic)) "Alist of headers and faces used for highlighting them. The entries in the list has the form `(REGEXP NAME CONTENT)', where ! REGEXP is a regeular expression matching the beginning of the header, NAME is the face used for highlighting the header name and CONTENT is the face used for highlighting the header content. --- 68,74 ---- (defvar gnus-header-face-alist '(("" bold italic)) "Alist of headers and faces used for highlighting them. The entries in the list has the form `(REGEXP NAME CONTENT)', where ! REGEXP is a regular expression matching the beginning of the header, NAME is the face used for highlighting the header name and CONTENT is the face used for highlighting the header content. *************** *** 473,479 **** ["Hide citation" gnus-article-hide-citation t] ["Treat overstrike" gnus-article-treat-overstrike t] ["Remove carriage return" gnus-article-remove-cr t] ! ["Remove quoted-unreadble" gnus-article-de-quoted-unreadable t] )) ) --- 473,479 ---- ["Hide citation" gnus-article-hide-citation t] ["Treat overstrike" gnus-article-treat-overstrike t] ["Remove carriage return" gnus-article-remove-cr t] ! ["Remove quoted-unreadable" gnus-article-de-quoted-unreadable t] )) ) *************** *** 560,566 **** ("matching" . gnus-group-list-matching) ("post" . gnus-group-post-news) ("mail" . gnus-group-mail) ! ("new news" . gnus-group-get-new-news) ("browse foreign" . gnus-group-browse-foreign) ("exit" . gnus-group-exit))) --- 560,566 ---- ("matching" . gnus-group-list-matching) ("post" . gnus-group-post-news) ("mail" . gnus-group-mail) ! ("rescan" . gnus-group-get-new-news) ("browse foreign" . gnus-group-browse-foreign) ("exit" . gnus-group-exit))) *** pub/dgnus/lisp/gnus.el Wed Jun 7 16:15:53 1995 --- dgnus/lisp/gnus.el Fri Jun 9 19:53:10 1995 *************** *** 128,134 **** (defvar gnus-secondary-select-methods nil "*A list of secondary methods that will be used for reading news. ! This is a list where each element is a complete select methdod (see `gnus-select-method'). If, for instance, you want to read your mail with the nnml backend, --- 128,134 ---- (defvar gnus-secondary-select-methods nil "*A list of secondary methods that will be used for reading news. ! This is a list where each element is a complete select method (see `gnus-select-method'). If, for instance, you want to read your mail with the nnml backend, *************** *** 204,210 **** If the name of a group is matched by REGEXP, the corresponding scorefiles will be used for that group. The first match found is used, subsequent matching entries are ignored (to ! use mutliple matches, see gnus-score-file-multiple-match-alist). These score files are loaded in addition to any files returned by gnus-score-find-score-files-function (which see).") --- 204,210 ---- If the name of a group is matched by REGEXP, the corresponding scorefiles will be used for that group. The first match found is used, subsequent matching entries are ignored (to ! use multiple matches, see gnus-score-file-multiple-match-alist). These score files are loaded in addition to any files returned by gnus-score-find-score-files-function (which see).") *************** *** 408,414 **** unrelated articles that have subject that happen to begin with the same few characters will be incorrectly gathered. ! If this variable is `fuzzy', Gnus will use a fuzzy algortihm when comparing subjects.") ;; Added by Per Abrahamsen . --- 408,414 ---- unrelated articles that have subject that happen to begin with the same few characters will be incorrectly gathered. ! If this variable is `fuzzy', Gnus will use a fuzzy algorithm when comparing subjects.") ;; Added by Per Abrahamsen . *************** *** 585,591 **** "*A regexp to match uninteresting newsgroups in the active file. Any lines in the active file matching this regular expression are removed from the newsgroup list before anything else is done to it, ! thus making them effectively non-existant.") (defvar gnus-ignored-headers "^Path:\\|^Posting-Version:\\|^Article-I.D.:\\|^Expires:\\|^Date-Received:\\|^References:\\|^Control:\\|^Xref:\\|^Lines:\\|^Posted:\\|^Relay-Version:\\|^Message-ID:\\|^Nf-ID:\\|^Nf-From:\\|^Approved:\\|^Sender:\\|^Received:\\|^Mail-from:" --- 585,591 ---- "*A regexp to match uninteresting newsgroups in the active file. Any lines in the active file matching this regular expression are removed from the newsgroup list before anything else is done to it, ! thus making them effectively non-existent.") (defvar gnus-ignored-headers "^Path:\\|^Posting-Version:\\|^Article-I.D.:\\|^Expires:\\|^Date-Received:\\|^References:\\|^Control:\\|^Xref:\\|^Lines:\\|^Posted:\\|^Relay-Version:\\|^Message-ID:\\|^Nf-ID:\\|^Nf-From:\\|^Approved:\\|^Sender:\\|^Received:\\|^Mail-from:" *************** *** 1283,1289 **** (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls & Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "(ding) Gnus v0.83" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1283,1289 ---- (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls & Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "(ding) Gnus v0.84" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 1598,1604 **** (autoload 'gnus-current-score-file-nondirectory "gnus-score") (autoload 'gnus-score-adaptive "gnus-score") (autoload 'gnus-score-remove-lines-adaptive "gnus-score") - (autoload 'gnus-possibly-score-headers "gnus-score") (autoload 'gnus-score-find-trace "gnus-score") ;; gnus-edit --- 1598,1603 ---- *************** *** 1763,1774 **** (setq name (substring name 1 (1- (match-end 0)))))) ;; If not, then "address (name)" is used. (or name ! (and (or (string-match "(.+)" from) ! ;; Fix by MORIOKA Tomohiko . ! ;; XOVER might not support folded From headers. ! (string-match "(.*" from)) (setq name (substring from (1+ (match-beginning 0)) ! (1- (match-end 0)))))) ;; Fix by Hallvard B Furuseth . (list (or name from) (or address from)))) --- 1762,1775 ---- (setq name (substring name 1 (1- (match-end 0)))))) ;; If not, then "address (name)" is used. (or name ! (and (string-match "(.+)" from) (setq name (substring from (1+ (match-beginning 0)) ! (1- (match-end 0))))) ! ;; Fix by MORIOKA Tomohiko . ! ;; XOVER might not support folded From headers. ! (and (string-match "(.*" from) ! (setq name (substring from (1+ (match-beginning 0)) ! (match-end 0))))) ;; Fix by Hallvard B Furuseth . (list (or name from) (or address from)))) *************** *** 2196,2207 **** (save-excursion (gnus-set-work-buffer) (insert subject) ! (gnus-simplify-buffer-fuzzy) (buffer-string)))) (defun gnus-simplify-buffer-fuzzy () (goto-char (point-min)) ! (while (re-search-forward "^[ \t]*re:[ \t]*" nil t) (replace-match "" t t)) (goto-char (point-min)) (while (re-search-forward "[ \t\n]*([^()]*)[ \t\n]*$" nil t) --- 2197,2210 ---- (save-excursion (gnus-set-work-buffer) (insert subject) ! (inline gnus-simplify-buffer-fuzzy) (buffer-string)))) (defun gnus-simplify-buffer-fuzzy () (goto-char (point-min)) ! ;; Fix by Stainless Steel Rat . ! (while (re-search-forward "^[ \t]*\\(re\\|fwd\\)[[{(^0-9]*[])}]?[:;][ \t]*" ! nil t) (replace-match "" t t)) (goto-char (point-min)) (while (re-search-forward "[ \t\n]*([^()]*)[ \t\n]*$" nil t) *************** *** 2218,2224 **** ;; Add the current buffer to the list of buffers to be killed on exit. (defun gnus-add-current-to-buffer-list () ! (setq gnus-buffer-list (cons (current-buffer) gnus-buffer-list))) (defun gnus-string> (s1 s2) (not (or (string< s1 s2) --- 2221,2228 ---- ;; Add the current buffer to the list of buffers to be killed on exit. (defun gnus-add-current-to-buffer-list () ! (or (memq (current-buffer) gnus-buffer-list) ! (setq gnus-buffer-list (cons (current-buffer) gnus-buffer-list)))) (defun gnus-string> (s1 s2) (not (or (string< s1 s2) *************** *** 3183,3189 **** (and gnus-carpal (gnus-carpal-setup-buffer 'group))))) (defun gnus-group-list-groups (level &optional unread) ! "List newsgroups with level LEVEL or lower that have unread alticles. Default is all subscribed groups. If argument UNREAD is non-nil, groups with no unread articles are also listed." (interactive (list (and current-prefix-arg --- 3187,3193 ---- (and gnus-carpal (gnus-carpal-setup-buffer 'group))))) (defun gnus-group-list-groups (level &optional unread) ! "List newsgroups with level LEVEL or lower that have unread articles. Default is all subscribed groups. If argument UNREAD is non-nil, groups with no unread articles are also listed." (interactive (list (and current-prefix-arg *************** *** 3332,3338 **** (if (not method-only-group) () (or entry ! (error "Trying to change non-existant group %s" method-only-group)) ;; We have recevied parts of the actual group info - either the ;; select method or the group parameters. We first check ;; whether we have to extend the info, and if so, do that. --- 3336,3342 ---- (if (not method-only-group) () (or entry ! (error "Trying to change non-existent group %s" method-only-group)) ;; We have recevied parts of the actual group info - either the ;; select method or the group parameters. We first check ;; whether we have to extend the info, and if so, do that. *************** *** 3564,3570 **** If ALL is non-nil, just find any newsgroup. If LEVEL is non-nil, find group with level LEVEL, or higher if no such group exists. ! If FIRST-TOO, the current line is also eligeble as a target." (let ((way (if backward -1 1)) (low 10) (beg (point)) --- 3568,3574 ---- If ALL is non-nil, just find any newsgroup. If LEVEL is non-nil, find group with level LEVEL, or higher if no such group exists. ! If FIRST-TOO, the current line is also eligible as a target." (let ((way (if backward -1 1)) (low 10) (beg (point)) *************** *** 4203,4211 **** (if (not entry) () (gnus-update-read-articles ! group ! (and (not all) (append (cdr (assq 'tick marked)) ! (cdr (assq 'dormant marked)))) nil (and (not all) (cdr (assq 'tick marked)))) (and all marked (setcar (nthcdr 3 (nth 2 entry)) --- 4207,4214 ---- (if (not entry) () (gnus-update-read-articles ! group (and (not all) (append (cdr (assq 'tick marked)) ! (cdr (assq 'dormant marked)))) nil (and (not all) (cdr (assq 'tick marked)))) (and all marked (setcar (nthcdr 3 (nth 2 entry)) *************** *** 4306,4312 **** (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")) --- 4309,4315 ---- (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 returned." (interactive "p") (or (gnus-group-group-name) (error "No group on current line")) *************** *** 4515,4521 **** ;; Suggested by Per Abrahamsen . (defun gnus-group-describe-all-groups (force) ! "Pop up a buffer with descriptons of all newsgroups." (interactive "P") (and force (setq gnus-description-hashtb nil)) (if (not (or gnus-description-hashtb --- 4518,4524 ---- ;; Suggested by Per Abrahamsen . (defun gnus-group-describe-all-groups (force) ! "Pop up a buffer with descriptions of all newsgroups." (interactive "P") (and force (setq gnus-description-hashtb nil)) (if (not (or gnus-description-hashtb *************** *** 4580,4586 **** (pop-to-buffer obuf))) (defun gnus-group-description-apropos (regexp) ! "List all newsgroups that have names or desccriptions that match a regexp." (interactive "sGnus description apropos (regexp): ") (if (not (or gnus-description-hashtb (gnus-read-all-descriptions-files))) --- 4583,4589 ---- (pop-to-buffer obuf))) (defun gnus-group-description-apropos (regexp) ! "List all newsgroups that have names or descriptions that match a regexp." (interactive "sGnus description apropos (regexp): ") (if (not (or gnus-description-hashtb (gnus-read-all-descriptions-files))) *************** *** 5986,5992 **** (defun gnus-thread-sort-by-score (h1 h2) "Sort threads by root article score. ! Unscored articles will be counted as havin a score of zero." (let ((h1 (gnus-thread-header h1)) (h2 (gnus-thread-header h2))) (let ((s1 (assq (header-number h1) gnus-newsgroup-scored)) --- 5989,5995 ---- (defun gnus-thread-sort-by-score (h1 h2) "Sort threads by root article score. ! Unscored articles will be counted as having a score of zero." (let ((h1 (gnus-thread-header h1)) (h2 (gnus-thread-header h2))) (let ((s1 (assq (header-number h1) gnus-newsgroup-scored)) *************** *** 5996,6002 **** (defun gnus-thread-sort-by-total-score (h1 h2) "Sort threads by the sum of all scores in the thread. ! Unscored articles will be counted as havin a score of zero." (> (gnus-thread-total-score h1) (gnus-thread-total-score h2))) (defun gnus-thread-total-score (thread) --- 5999,6005 ---- (defun gnus-thread-sort-by-total-score (h1 h2) "Sort threads by the sum of all scores in the thread. ! Unscored articles will be counted as having a score of zero." (> (gnus-thread-total-score h1) (gnus-thread-total-score h2))) (defun gnus-thread-total-score (thread) *************** *** 6180,6189 **** gnus-fetch-old-headers gnus-newsgroup-headers (/= (header-number (car gnus-newsgroup-headers)) (car articles)) ! (progn ! (setcar (symbol-value ! (intern (header-id (car gnus-newsgroup-headers)) ! gnus-newsgroup-dependencies)) nil) (setq gnus-newsgroup-headers (cdr gnus-newsgroup-headers)))) ;; Remove cancelled articles from the list of unread articles. (setq gnus-newsgroup-unreads --- 6183,6192 ---- gnus-fetch-old-headers gnus-newsgroup-headers (/= (header-number (car gnus-newsgroup-headers)) (car articles)) ! (let ((val (gnus-gethash ! (downcase (header-id (car gnus-newsgroup-headers))) ! gnus-newsgroup-dependencies))) ! (and val (setcar val nil)) (setq gnus-newsgroup-headers (cdr gnus-newsgroup-headers)))) ;; Remove cancelled articles from the list of unread articles. (setq gnus-newsgroup-unreads *************** *** 8380,8386 **** (gnus-request-expire-articles gnus-newsgroup-expirable gnus-newsgroup-name)) ;; We go through the old list of expirable, and mark all ! ;; really expired articles as non-existant. (while expirable (or (memq (car expirable) gnus-newsgroup-expirable) (gnus-summary-mark-as-read (car expirable) gnus-canceled-mark)) --- 8383,8389 ---- (gnus-request-expire-articles gnus-newsgroup-expirable gnus-newsgroup-name)) ;; We go through the old list of expirable, and mark all ! ;; really expired articles as non-existent. (while expirable (or (memq (car expirable) gnus-newsgroup-expirable) (gnus-summary-mark-as-read (car expirable) gnus-canceled-mark)) *************** *** 9903,9908 **** --- 9906,9912 ---- (if (get-buffer gnus-article-buffer) (save-excursion (set-buffer gnus-article-buffer) + (gnus-add-current-to-buffer-list) (or (eq major-mode 'gnus-article-mode) (gnus-article-mode))) (save-excursion *************** *** 10525,10531 **** (goto-char (point-min)) (if (re-search-forward "^Date:[ \t]\\(.*\\)$" nil t) (let ((buffer-read-only nil) ! (date (buffer-substring (match-beginning 1) (match-end 1)))) (delete-region (match-beginning 1) (match-end 1)) (insert (timezone-make-date-arpa-standard --- 10529,10536 ---- (goto-char (point-min)) (if (re-search-forward "^Date:[ \t]\\(.*\\)$" nil t) (let ((buffer-read-only nil) ! (date (buffer-substring-no-properties ! (match-beginning 1) (match-end 1)))) (delete-region (match-beginning 1) (match-end 1)) (insert (timezone-make-date-arpa-standard *************** *** 11381,11390 **** ;; First we check the two user variables. (cond ((and gnus-options-subscribe ! (string-match gnus-options-not-subscribe group)) 'subscribe) ((and gnus-options-not-subscribe ! (string-match gnus-options-subscribe group)) 'ignore) ;; Then we go through the list that was retrieved from the .newsrc ;; file. This list has elements on the form --- 11386,11395 ---- ;; First we check the two user variables. (cond ((and gnus-options-subscribe ! (string-match gnus-options-subscribe group)) 'subscribe) ((and gnus-options-not-subscribe ! (string-match gnus-options-not-subscribe group)) 'ignore) ;; Then we go through the list that was retrieved from the .newsrc ;; file. This list has elements on the form *************** *** 12423,12429 **** (prev gnus-newsrc-alist) entry mentry) (while rc ! (or (assoc (car (car rc)) newsrc) (if (setq entry (assoc (car (car prev)) newsrc)) (setcdr (setq mentry (memq entry newsrc)) (cons (car rc) (cdr mentry))) --- 12428,12435 ---- (prev gnus-newsrc-alist) entry mentry) (while rc ! (or (assoc (car (car rc)) newsrc) ; It's already in the alist. ! (null (nth 4 (car rc))) ; It's a native group. (if (setq entry (assoc (car (car prev)) newsrc)) (setcdr (setq mentry (memq entry newsrc)) (cons (car rc) (cdr mentry))) *************** *** 12437,12444 **** ;; Finally, if we read some options lines, we parse them. (or (string= gnus-newsrc-options "") ! (gnus-newsrc-parse-options gnus-newsrc-options)) ! )) ;; Parse options lines to find "options -n !all rec.all" and stuff. ;; The return value will be a list on the form --- 12443,12449 ---- ;; Finally, if we read some options lines, we parse them. (or (string= gnus-newsrc-options "") ! (gnus-newsrc-parse-options gnus-newsrc-options)))) ;; Parse options lines to find "options -n !all rec.all" and stuff. ;; The return value will be a list on the form *************** *** 12610,12616 **** gnus-secondary-select-methods))) (while methods (gnus-read-descriptions-file (car methods)) ! (setq methods (cdr methods))))) (defun gnus-read-descriptions-file (&optional method) (let ((method (or method gnus-select-method))) --- 12615,12622 ---- gnus-secondary-select-methods))) (while methods (gnus-read-descriptions-file (car methods)) ! (setq methods (cdr methods))) ! t)) (defun gnus-read-descriptions-file (&optional method) (let ((method (or method gnus-select-method))) *************** *** 13147,13153 **** (defun gnus-score-find-single (group) "Return list containing the score file for GROUP." ! (list (gnus-score-file-name group))) (defun gnus-score-find-hierarchical (group) "Return list of score files for GROUP. --- 13153,13160 ---- (defun gnus-score-find-single (group) "Return list containing the score file for GROUP." ! (list (gnus-score-file-name group gnus-adaptive-file-suffix) ! (gnus-score-file-name group))) (defun gnus-score-find-hierarchical (group) "Return list of score files for GROUP. *************** *** 13158,13164 **** (setq start (match-beginning 0)) (setq all (cons (substring group 0 start) all))) (setq all (cons group all)) ! (mapcar 'gnus-score-file-name (nreverse all)))) (defvar gnus-score-file-alist-cache nil) --- 13165,13174 ---- (setq start (match-beginning 0)) (setq all (cons (substring group 0 start) all))) (setq all (cons group all)) ! (nconc ! (mapcar 'gnus-score-file-name (setq all (nreverse all)) ! gnus-adaptive-file-suffix) ! (mapcar 'gnus-score-file-name all)))) (defvar gnus-score-file-alist-cache nil) *** pub/dgnus/lisp/nnbabyl.el Wed Jun 7 16:15:53 1995 --- dgnus/lisp/nnbabyl.el Fri Jun 9 19:53:10 1995 *************** *** 497,502 **** --- 497,503 ---- "Read new incoming mail." (let* ((spools (nnmail-get-spool-files group)) (all-spools spools) + (group-in group) incoming incomings) (nnbabyl-read-mbox) (if (or (not nnbabyl-get-new-mail) (not nnmail-spool-file)) *************** *** 515,521 **** (car spools) (concat nnbabyl-mbox-file "-Incoming"))) (setq incomings (cons incoming incomings)) (save-excursion ! (setq group (nnmail-get-split-group (car spools) group)) (let* ((nnmail-prepare-incoming-hook (cons 'nnbabyl-remove-incoming-delims nnmail-prepare-incoming-hook)) --- 516,522 ---- (car spools) (concat nnbabyl-mbox-file "-Incoming"))) (setq incomings (cons incoming incomings)) (save-excursion ! (setq group (nnmail-get-split-group (car spools) group-in)) (let* ((nnmail-prepare-incoming-hook (cons 'nnbabyl-remove-incoming-delims nnmail-prepare-incoming-hook)) *** pub/dgnus/lisp/nneething.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nneething.el Fri Jun 9 19:53:10 1995 *************** *** 89,95 **** (setq article (car sequence)) (setq file (nneething-file-name article)) ! (if (file-exists-p file) (progn (insert (format "221 %d Article retrieved.\n" article)) (nneething-insert-head file) --- 89,96 ---- (setq article (car sequence)) (setq file (nneething-file-name article)) ! (if (and (file-exists-p file) ! (> (nth 7 (file-attributes file)) 0)) (progn (insert (format "221 %d Article retrieved.\n" article)) (nneething-insert-head file) *************** *** 296,314 **** (setq case-fold-search nil) (buffer-disable-undo (current-buffer)) (erase-buffer) ! (if (not (file-exists-p file)) ! () ! (if (or (not (file-regular-p file)) ! (progn ! (nnheader-insert-head file) ! (if (nnheader-article-p) ! (progn ! (delete-region (point) (point-max)) ! nil)))) ! (progn ! (erase-buffer) ! (nneething-make-head file))) ! t))) (defun nneething-number-to-file (number) (car (rassq number nneething-map))) --- 297,322 ---- (setq case-fold-search nil) (buffer-disable-undo (current-buffer)) (erase-buffer) ! (cond ! ((not (file-exists-p file)) ! ;; The file do not exist. ! nil) ! ((not (file-regular-p file)) ! ;; It's a dir, so we fudge a head. ! (nneething-make-head file) t) ! (t ! ;; We examine the file. ! (nnheader-insert-head file) ! (if (nnheader-article-p) ! (delete-region ! (progn ! (goto-char (point-min)) ! (or (and (search-forward "\n\n" nil t) ! (1- (point))) ! (point-max))) ! (point-max)) ! (erase-buffer) ! (nneething-make-head file) t))))) (defun nneething-number-to-file (number) (car (rassq number nneething-map))) *** pub/dgnus/lisp/nnfolder.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nnfolder.el Fri Jun 9 19:53:11 1995 *************** *** 55,61 **** (defvar nnfolder-always-close nil "If non-nil, nnfolder attempts to only ever have one mbox open at a time. This is a straight space/performance trade off, as the mboxes will have to ! be scaned every time they are read in. If nil (default), nnfolder will attempt to keep the buffers around (saving the nnfolder's buffer upon group close, but not killing it), speeding some things up tremendously, especially such things as moving mail. All buffers always get killed upon server close.") --- 55,61 ---- (defvar nnfolder-always-close nil "If non-nil, nnfolder attempts to only ever have one mbox open at a time. This is a straight space/performance trade off, as the mboxes will have to ! be scanned every time they are read in. If nil (default), nnfolder will attempt to keep the buffers around (saving the nnfolder's buffer upon group close, but not killing it), speeding some things up tremendously, especially such things as moving mail. All buffers always get killed upon server close.") *************** *** 619,624 **** --- 619,625 ---- "Read new incoming mail." (let* ((spools (nnmail-get-spool-files group)) (all-spools spools) + (group-in group) incomings incoming) (if (or (not nnfolder-get-new-mail) (not nnmail-spool-file)) () *************** *** 637,643 **** (nnmail-move-inbox (car spools) (concat nnfolder-directory "Incoming"))) (setq incomings (cons incoming incomings)) ! (setq group (nnmail-get-split-group (car spools) group)) (nnmail-split-incoming incoming 'nnfolder-save-mail nil group))) (setq spools (cdr spools))) ;; If we did indeed read any incoming spools, we save all info. --- 638,644 ---- (nnmail-move-inbox (car spools) (concat nnfolder-directory "Incoming"))) (setq incomings (cons incoming incomings)) ! (setq group (nnmail-get-split-group (car spools) group-in)) (nnmail-split-incoming incoming 'nnfolder-save-mail nil group))) (setq spools (cdr spools))) ;; If we did indeed read any incoming spools, we save all info. *** pub/dgnus/lisp/nnmail.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nnmail.el Fri Jun 9 19:53:11 1995 *************** *** 70,76 **** "*Articles that are older than `nnmail-expiry-wait' days will be expired.") (defvar nnmail-expiry-wait-function nil ! "*Variable that holds funtion to specify how old articles should be before they are expired. The function will be called with the name of the group that the expiry is to be performed in, and it should return an integer that says how many days an article can be stored before it is considered --- 70,76 ---- "*Articles that are older than `nnmail-expiry-wait' days will be expired.") (defvar nnmail-expiry-wait-function nil ! "*Variable that holds function to specify how old articles should be before they are expired. The function will be called with the name of the group that the expiry is to be performed in, and it should return an integer that says how many days an article can be stored before it is considered *************** *** 102,107 **** --- 102,110 ---- (defvar nnmail-procmail-suffix ".spool" "*Suffix of files created by procmail (and the like).") + (defvar nnmail-resplit-incoming nil + "*If non-nil, re-split incoming procmail sorted mail.") + (defvar nnmail-read-incoming-hook nil "*Hook that will be run after the incoming mail has been transferred. The incoming mail is moved from `nnmail-spool-file' (which normally is *************** *** 181,187 **** (defvar nnmail-split-abbrev-alist '((any . "from\\|to\\|cc\\|sender\\|apparently-to") (mail . "mailer-daemon\\|postmaster")) ! "*Alist of abbrevations allowed in `nnmail-split-fancy'.") (defvar nnmail-delete-incoming nil "*If non-nil, the mail backends will delete incoming files after splitting. --- 184,190 ---- (defvar nnmail-split-abbrev-alist '((any . "from\\|to\\|cc\\|sender\\|apparently-to") (mail . "mailer-daemon\\|postmaster")) ! "*Alist of abbreviations allowed in `nnmail-split-fancy'.") (defvar nnmail-delete-incoming nil "*If non-nil, the mail backends will delete incoming files after splitting. *************** *** 377,384 **** ;; No output => movemail won nil (set-buffer errors) ! (subst-char-in-region (point-min) (point-max) ! ?\n ?\ ) (goto-char (point-max)) (skip-chars-backward " \t") (delete-region (point) (point-max)) --- 380,386 ---- ;; No output => movemail won nil (set-buffer errors) ! (subst-char-in-region (point-min) (point-max) ?\n ?\ ) (goto-char (point-max)) (skip-chars-backward " \t") (delete-region (point) (point-max)) *************** *** 461,467 **** (let ((delim (concat "^" rmail-unix-mail-delimiter)) ;; If this is a group-specific split, we bind the split ;; methods to just this group. ! (nnmail-split-methods (if (and group (eq nnmail-spool-file 'procmail)) (list (list group "")) nnmail-split-methods)) start end content-length do-search) --- 463,471 ---- (let ((delim (concat "^" rmail-unix-mail-delimiter)) ;; If this is a group-specific split, we bind the split ;; methods to just this group. ! (nnmail-split-methods (if (and group ! (eq nnmail-spool-file 'procmail) ! (not nnmail-resplit-incoming)) (list (list group "")) nnmail-split-methods)) start end content-length do-search) *** pub/dgnus/lisp/nnmbox.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nnmbox.el Fri Jun 9 19:53:12 1995 *************** *** 451,456 **** --- 451,457 ---- "Read new incoming mail." (let* ((spools (nnmail-get-spool-files group)) (all-spools spools) + (group-in group) incoming incomings) (nnmbox-read-mbox) (if (or (not nnmbox-get-new-mail) (not nnmail-spool-file)) *************** *** 468,474 **** (nnmail-move-inbox (car spools) (concat nnmbox-mbox-file "-Incoming"))) (save-excursion ! (setq group (nnmail-get-split-group (car spools) group)) (let ((in-buf (nnmail-split-incoming incoming 'nnmbox-save-mail t group))) (set-buffer nnmbox-mbox-buffer) --- 469,475 ---- (nnmail-move-inbox (car spools) (concat nnmbox-mbox-file "-Incoming"))) (save-excursion ! (setq group (nnmail-get-split-group (car spools) group-in)) (let ((in-buf (nnmail-split-incoming incoming 'nnmbox-save-mail t group))) (set-buffer nnmbox-mbox-buffer) *** pub/dgnus/lisp/nnmh.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nnmh.el Fri Jun 9 19:53:12 1995 *************** *** 196,202 **** (save-excursion (set-buffer nntp-server-buffer) (erase-buffer) ! (setq dir nnmh-directory))) (setq dir (expand-file-name dir)) ;; Recurse down all directories. (let ((dirs (and (file-readable-p dir) --- 196,202 ---- (save-excursion (set-buffer nntp-server-buffer) (erase-buffer) ! (setq dir (file-name-as-directory nnmh-directory)))) (setq dir (expand-file-name dir)) ;; Recurse down all directories. (let ((dirs (and (file-readable-p dir) *************** *** 222,228 **** (format "%s %d %d y\n" (progn ! (string-match (expand-file-name nnmh-directory) dir) (nnmail-replace-chars-in-string (substring dir (match-end 0)) ?/ ?.)) (apply (function max) files) --- 222,229 ---- (format "%s %d %d y\n" (progn ! (string-match (file-name-as-directory ! (expand-file-name nnmh-directory)) dir) (nnmail-replace-chars-in-string (substring dir (match-end 0)) ?/ ?.)) (apply (function max) files) *************** *** 392,397 **** --- 393,399 ---- "Read new incoming mail." (let* ((spools (nnmail-get-spool-files group)) (all-spools spools) + (group-in group) incoming incomings) (if (or (not nnmh-get-new-mail) (not nnmail-spool-file)) () *************** *** 411,417 **** (nnmail-move-inbox (car spools) (concat nnmh-directory "Incoming"))) (setq incomings (cons incoming incomings)) ! (setq group (nnmail-get-split-group (car spools) group)) (nnmail-split-incoming incoming 'nnmh-save-mail nil group))) (setq spools (cdr spools))) ;; If we did indeed read any incoming spools, we save all info. --- 413,419 ---- (nnmail-move-inbox (car spools) (concat nnmh-directory "Incoming"))) (setq incomings (cons incoming incomings)) ! (setq group (nnmail-get-split-group (car spools) group-in)) (nnmail-split-incoming incoming 'nnmh-save-mail nil group))) (setq spools (cdr spools))) ;; If we did indeed read any incoming spools, we save all info. *** pub/dgnus/lisp/nnml.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nnml.el Fri Jun 9 19:53:12 1995 *************** *** 481,486 **** --- 481,487 ---- "Read new incoming mail." (let* ((spools (nnmail-get-spool-files group)) (all-spools spools) + (group-in group) incoming incomings) (if (or (not nnml-get-new-mail) (not nnmail-spool-file)) () *************** *** 501,507 **** (setq incoming (nnmail-move-inbox (car spools) (concat nnml-directory "Incoming"))) ! (setq group (nnmail-get-split-group (car spools) group)) (nnmail-split-incoming incoming 'nnml-save-mail nil group) (setq incomings (cons incoming incomings)))) (setq spools (cdr spools))) --- 502,508 ---- (setq incoming (nnmail-move-inbox (car spools) (concat nnml-directory "Incoming"))) ! (setq group (nnmail-get-split-group (car spools) group-in)) (nnmail-split-incoming incoming 'nnml-save-mail nil group) (setq incomings (cons incoming incomings)))) (setq spools (cdr spools))) *** pub/dgnus/lisp/nnsoup.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nnsoup.el Fri Jun 9 19:53:13 1995 *************** *** 234,245 **** () (let ((area (cdr (assoc group nnsoup-group-alist))) min max) ! (setq min (car (car (car area)))) ! (while (cdr area) ! (setq area (cdr area))) ! (setq max (cdr (car (car area)))) ! (insert (format "211 %d %d %d %s\n" ! (max (1+ (- max min)) 0) min max group)))) t) (defun nnsoup-close-group (group &optional server) --- 234,248 ---- () (let ((area (cdr (assoc group nnsoup-group-alist))) min max) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (setq min (car (car (car area)))) ! (while (cdr area) ! (setq area (cdr area))) ! (setq max (cdr (car (car area)))) ! (insert (format "211 %d %d %d %s\n" ! (max (1+ (- max min)) 0) min max group))))) t) (defun nnsoup-close-group (group &optional server) *************** *** 405,410 **** --- 408,414 ---- ?c) (file-exists-p (nnsoup-file prefix))) (set-buffer (nnsoup-index-buffer prefix)) + (widen) (goto-char (point-min)) (forward-line (- article (car (car area)))) (setq beg (read (current-buffer))) *** pub/dgnus/lisp/nnspool.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nnspool.el Thu Jun 8 16:26:01 1995 *************** *** 266,272 **** t) (defun nnspool-request-list (&optional server) ! "List active newsgoups." (save-excursion (nnspool-find-file nnspool-active-file))) --- 266,272 ---- t) (defun nnspool-request-list (&optional server) ! "List active newsgroups." (save-excursion (nnspool-find-file nnspool-active-file))) *** pub/dgnus/lisp/nntp.el Wed Jun 7 16:15:54 1995 --- dgnus/lisp/nntp.el Thu Jun 8 16:26:02 1995 *************** *** 56,62 **** (defvar nntp-server-opened-hook nil "*Hook used for sending commands to the server at startup. ! The default value is `nntp-send-mode-reader', whick makes an innd server spawn an nnrpd server. Another useful function to put in this hook might be `nntp-send-authinfo', which will prompt for a password to allow posting from the server. Note that this is only necessary to --- 56,62 ---- (defvar nntp-server-opened-hook nil "*Hook used for sending commands to the server at startup. ! The default value is `nntp-send-mode-reader', which makes an innd server spawn an nnrpd server. Another useful function to put in this hook might be `nntp-send-authinfo', which will prompt for a password to allow posting from the server. Note that this is only necessary to *************** *** 200,206 **** '(nntp-current-group ""))) ! ;;; Interface funtions. (defun nntp-retrieve-headers (sequence &optional newsgroup server) "Retrieve the headers to the articles in SEQUENCE." --- 200,206 ---- '(nntp-current-group ""))) ! ;;; Interface functions. (defun nntp-retrieve-headers (sequence &optional newsgroup server) "Retrieve the headers to the articles in SEQUENCE." *** pub/dgnus/lisp/ChangeLog Wed Jun 7 16:16:01 1995 --- dgnus/lisp/ChangeLog Fri Jun 9 19:53:14 1995 *************** *** 1,3 **** --- 1,58 ---- + Fri Jun 9 00:07:16 1995 Lars Ingebrigtsen + + * nneething.el (nneething-retrieve-headers): Check for empty + files. + + * gnus-msg.el (gnus-inews-insert-headers): Did not delete the + required headers. + (gnus-inews-organization): Be a bit more clever about missing + files. + + * gnus-score.el (gnus-score-body): Didn't work at all. + + * gnus-msg.el (gnus-summary-supersede-article): Did not select + article before superseding. + (gnus-summary-supersede-article): Delete certain headers before + superseding. + (gnus-delete-supersedes-headers): New variable. + + Thu Jun 8 20:15:24 1995 Lars Ingebrigtsen + + * nnmh.el (nnmh-request-list): Would add a "." to the group name + if nnmh-directory didn't end with /. + + * nnmail.el (nnmail-resplit-incoming): New variable. + + * nnml.el (nnml-get-new-mail): Wrong group name. + + * gnus.el (gnus-simplify-subject-fuzzy): Inline + simplify-buffer-fuzzy. + (gnus-simplify-buffer-fuzzy): New Re: match. + + * gnus-uu.el (gnus-uu-initialize): Make a more unique temp name. + (gnus-uu-decode-unshar-and-save): Start working. + + * gnus.el (gnus-score-find-single): Find both SCORE and ADAPT + file. + (gnus-score-find-hierarchical): Ditto. + + Thu Jun 8 15:38:58 1995 Lars Magne Ingebrigtsen + + * gnus.el (gnus-newsrc-to-gnus-format): Don't enter native groups + from the .eld files of they do not exist in the .newsrc file. + + * gnus.el: Doc string typo corrections galore courtesy of Frank D. + Cringle. + + * gnus-ems.el: Bind buffer-substring-no-properties if not bound. + + * gnus.el (gnus-select-newsgroup): Did the wrong thing to remove + (gnus-matches-options-n): Reversed match, sort of. + (gnus-extract-address-components): Didn't treat chopped-off lines + well. + (gnus-read-all-descriptions-files): Returned nil. + (gnus-gmt-to-local): Wouldn't strip props before calling timzone. + Wed Jun 7 15:04:20 1995 Lars Magne Ingebrigtsen * gnus.el (gnus-select-newsgroup): Don't add an extra 1 if there *************** *** 13,18 **** --- 68,75 ---- file-readable because of os/2 bug. (gnus-select-newsgroup): Didn't remove the first fetched article when not using nov. + + * gnus.el: 0.83 is released. Wed Jun 7 12:59:46 1995 Lars Ingebrigtsen *** pub/dgnus/texi/gnus.texi Wed Jun 7 16:16:02 1995 --- dgnus/texi/gnus.texi Fri Jun 9 19:53:16 1995 *************** *** 1,7 **** \input texinfo @c -*-texinfo-*- @comment %**start of header (This is for running Texinfo on a region.) @setfilename gnus ! @settitle (ding) Gnus 0.80 Manual @synindex fn cp @synindex vr cp @synindex pg cp --- 1,7 ---- \input texinfo @c -*-texinfo-*- @comment %**start of header (This is for running Texinfo on a region.) @setfilename gnus ! @settitle (ding) Gnus 0.84 Manual @synindex fn cp @synindex vr cp @synindex pg cp *************** *** 90,98 **** * Key Index:: Key Index. @end menu - This manual hasn't been prperly proff-read yet, so typos abound, and - misleading information is sure to exist. - @node History @chapter History --- 90,95 ---- *************** *** 100,106 **** @sc{gnus} was written by Masanobu UMEDA. When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and decided to rewrite Gnus. ! The recommended pronounciation of the name this program is "ding guh-noose", with "ding" being half-sung in a loud, high-pitched voice, and "guh-noose" being grumbled and a disaffected fashion. Any irritation and/or damage this name may cause you is not the --- 97,103 ---- @sc{gnus} was written by Masanobu UMEDA. When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and decided to rewrite Gnus. ! The recommended pronunciation of the name this program is "ding guh-noose", with "ding" being half-sung in a loud, high-pitched voice, and "guh-noose" being grumbled and a disaffected fashion. Any irritation and/or damage this name may cause you is not the *************** *** 129,135 **** @node Compatibility @section Compatibility ! @cindex compatability (ding) Gnus was designed to be fully compatible with @sc{gnus}. Almost all key bindings have been kept. More key bindings have been added, of course, but only in one or two obscure cases have old bindings been --- 126,132 ---- @node Compatibility @section Compatibility ! @cindex compatibility (ding) Gnus was designed to be fully compatible with @sc{gnus}. Almost all key bindings have been kept. More key bindings have been added, of course, but only in one or two obscure cases have old bindings been *************** *** 234,244 **** @item Brian Edmonds has written @code{gnus-bbdb}, as well as other bits and pieces. @item Kevin Davidson came up with the name @dfn{ding}, so blame him. @item ! Stainless Steel Rat, Jack Vinson, Daniel Quinlan, Ilja Weis and Andrew ! Eskilsson have all contributed code and suggestions. @end itemize --- 231,243 ---- @item Brian Edmonds has written @code{gnus-bbdb}, as well as other bits and pieces. + @item + Ricardo Nassif did the proof-reading. @item Kevin Davidson came up with the name @dfn{ding}, so blame him. @item ! Stainless Steel Rat, Jack Vinson, Daniel Quinlan, Ilja Weis, Frank D. Cringle ! and Andrew Eskilsson have all contributed code and suggestions. @end itemize *************** *** 256,278 **** looking for any hilit-specific functions in the @code{*Backtrace*} buffer. If such a reference exists, you should be using the code below. ! On the other hand, @code{gnus-visual} makes no attempt to highlight the ! article buffer, while hilit does a very good job of this. There is a ! compatibility problem here though, since hilit uses ! @code{gnus-article-prepare-hook} to do its magic. This hook is executed ! @emph{before} headers are hidden, via ! @code{gnus-article-hide-headers-if-wanted} which is run from ! @code{gnus-article-display-hook}. The act of hiding the headers undoes ! all of the hilighting already done. A similar effect occurred in vanilla ! @sc{gnus 4.1} if @code{gnus-show-mime} was set to @code{t}, since ! @sc{mime} processing, too, is done after this hook is executed. ! ! The solution here is to use @code{gnus-article-display-hook} for ! highlighting (and for all purposes where you used ! @code{gnus-article-prepare-hook} earlier). This hook is run after ! @sc{mime} processing, and is the last thing done before actually ! displaying the article. Add the code below to your @file{.gnus} file to ! get the right functions onto the right hooks. @lisp (add-hook 'gnus-startup-hook --- 255,265 ---- looking for any hilit-specific functions in the @code{*Backtrace*} buffer. If such a reference exists, you should be using the code below. ! You can also get @code{gnus-visual} to highlight the article buffer, so ! you should get rid of all hilit-specific Gnus calls. ! ! Add the code below to your @file{.gnus} file to remove all the hilit ! crud: @lisp (add-hook 'gnus-startup-hook *************** *** 283,288 **** --- 270,276 ---- (remove-hook 'gnus-summary-prepare-hook 'hilit-rehighlight-buffer-quietly) (remove-hook 'gnus-summary-prepare-hook 'hilit-install-line-hooks) + (setq gnus-mark-article-hook '(gnus-summary-mark-unread-as-read)) ;; this is too early for the purpose of highlighting (remove-hook 'gnus-article-prepare-hook 'hilit-rehighlight-buffer-quietly) *************** *** 475,481 **** @vindex gnus-secondary-servers You can also make Gnus prompt you interactively for the name of an @sc{nntp} server. If you give a non-numerical prefix to @code{gnus} ! (ie. @kbd{C-u M-x gnus}), Gnus will let you choose between the servers in the @code{gnus-secondary-servers} list (if any). You can also just type in the name of any server you feel like visiting. --- 463,469 ---- @vindex gnus-secondary-servers You can also make Gnus prompt you interactively for the name of an @sc{nntp} server. If you give a non-numerical prefix to @code{gnus} ! (i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers in the @code{gnus-secondary-servers} list (if any). You can also just type in the name of any server you feel like visiting. *************** *** 517,523 **** something useful. Since she hasn't, Gnus will just subscribe you to a few randomly picked ! groups (ie. @samp{*.newusers}). (@dfn{Random} is here defined as "whatever Lars thinks you should read".) You'll also be subscribed to the Gnus documentation group, which should --- 505,511 ---- something useful. Since she hasn't, Gnus will just subscribe you to a few randomly picked ! groups (i.e., @samp{*.newusers}). (@dfn{Random} is here defined as "whatever Lars thinks you should read".) You'll also be subscribed to the Gnus documentation group, which should *************** *** 537,543 **** Gnus, being the trusting sort of program, will ask whether to proceed without a native select method if that server can't be contacted. This ! will happen whether the server doesn't actually exist (ie. you have given the wrong address) or the server has just momentarily taken ill for some reason or other. --- 525,531 ---- Gnus, being the trusting sort of program, will ask whether to proceed without a native select method if that server can't be contacted. This ! will happen whether the server doesn't actually exist (i.e., you have given the wrong address) or the server has just momentarily taken ill for some reason or other. *************** *** 991,997 **** @kindex RET (Group) @findex gnus-group-select-group Select the current group and switch to the summary buffer ! (@code{gnus-group-select-group}). Takes the same aguments as @code{gnus-group-read-group} - the only difference is that this command does not display the first unread article automatically upon group entry. --- 979,985 ---- @kindex RET (Group) @findex gnus-group-select-group Select the current group and switch to the summary buffer ! (@code{gnus-group-select-group}). Takes the same arguments as @code{gnus-group-read-group} - the only difference is that this command does not display the first unread article automatically upon group entry. *************** *** 1580,1586 **** (@pxref{Selecting a Group}. One limitation, however - all groups that are included in a virtual ! group has to be alive (ie. subscribed or unsubscribed). Killed or zombie groups can't be component groups for nnvirtual groups. @node nnkiboze --- 1568,1574 ---- (@pxref{Selecting a Group}. One limitation, however - all groups that are included in a virtual ! group has to be alive (i.e., subscribed or unsubscribed). Killed or zombie groups can't be component groups for nnvirtual groups. @node nnkiboze *************** *** 1667,1673 **** group, @code{nneething} must create "headers" that Gnus can use. After all, Gnus is a newsreader, in case you're forgetting. @code{nneething} does this in a two-step process. First, it snoops each file in question. ! If the file looks like an article (ie. the first few lines look like headers), it will use this as the head. If this is just some random file without a head (eg. a C source file), @code{nneething} will cobble up a header out of thin air. It will use file ownership, name and date and do --- 1655,1661 ---- group, @code{nneething} must create "headers" that Gnus can use. After all, Gnus is a newsreader, in case you're forgetting. @code{nneething} does this in a two-step process. First, it snoops each file in question. ! If the file looks like an article (i.e., the first few lines look like headers), it will use this as the head. If this is just some random file without a head (eg. a C source file), @code{nneething} will cobble up a header out of thin air. It will use file ownership, name and date and do *************** *** 1684,1690 **** Gnus is not dired, really, and does not intend to be, either. There are two overall modes to this action - ephemeral or solid. When ! doing the ephemeral thing (ie. @kbd{G D} from the group buffer), Gnus will not store information on what files you have read, and what files are new, and so on. If you create a solid @code{nneething} group the normal way with @kbd{G m}, Gnus will store a mapping table between --- 1672,1678 ---- Gnus is not dired, really, and does not intend to be, either. There are two overall modes to this action - ephemeral or solid. When ! doing the ephemeral thing (i.e., @kbd{G D} from the group buffer), Gnus will not store information on what files you have read, and what files are new, and so on. If you create a solid @code{nneething} group the normal way with @kbd{G m}, Gnus will store a mapping table between *************** *** 1786,1792 **** @vindex nnmail-tmp-directory @code{nnmail-tmp-directory} says where to move the incoming mail to while processing it. This is usually done in the same directory that ! the mail backend habitates (ie. @file{~/Mail/}), but if this variable is non-@code{nil}, it will be used instead. @vindex nnmail-delete-incoming --- 1774,1780 ---- @vindex nnmail-tmp-directory @code{nnmail-tmp-directory} says where to move the incoming mail to while processing it. This is usually done in the same directory that ! the mail backend inhabits (i.e., @file{~/Mail/}), but if this variable is non-@code{nil}, it will be used instead. @vindex nnmail-delete-incoming *************** *** 1824,1830 **** @lisp (setq nnmail-split-methods '(("mail.junk" "^From:.*Lars Ingebrigtsen") ! ("mail.crazzy" "^Subject:.*die\\|^Organization:.*flabby") ("mail.other" ""))) @end lisp --- 1812,1818 ---- @lisp (setq nnmail-split-methods '(("mail.junk" "^From:.*Lars Ingebrigtsen") ! ("mail.crazy" "^Subject:.*die\\|^Organization:.*flabby") ("mail.other" ""))) @end lisp *************** *** 1870,1876 **** Let's look at an example value of this variable first: @lisp ! ;; Messages from the mailer deamon are not crossposted to any of ;; the ordinary groups. Warnings are put in a separate group ;; from real errors. (| ("from" mail (| ("subject" "warn.*" "mail.warning") --- 1858,1864 ---- Let's look at an example value of this variable first: @lisp ! ;; Messages from the mailer daemon are not crossposted to any of ;; the ordinary groups. Warnings are put in a separate group ;; from real errors. (| ("from" mail (| ("subject" "warn.*" "mail.warning") *************** *** 1966,1971 **** --- 1954,1964 ---- the incoming mail in, append @code{nnmail-procmail-suffix} to the group name. The mail backends will read the mail from these files. + @vindex nnail-resplit-incoming + When Gnus reads a file called @file{mail.misc.spool}, this mail will be + put in the @code{mail.misc}, as one would expect. However, if you want + Gnus to split the mail the normal way, you could set + @code{nnail-resplit-incoming} to @code{t}. @node Expiring Old Mail Articles @subsubsection Expiring Old Mail Articles *************** *** 2220,2226 **** @item nnmh-be-safe @vindex nnmh-be-safe ! If non-@code{nil}, @code{nnmh} will go to ridiculous lenghts to make sure that the articles in the folder is actually what Gnus think they are. It will check date stamps, and stat everything in sight, so setting this to @code{t} will mean a serious slow-down. If you never --- 2213,2219 ---- @item nnmh-be-safe @vindex nnmh-be-safe ! If non-@code{nil}, @code{nnmh} will go to ridiculous lengths to make sure that the articles in the folder is actually what Gnus think they are. It will check date stamps, and stat everything in sight, so setting this to @code{t} will mean a serious slow-down. If you never *************** *** 2340,2346 **** List all groups that have unread articles (@code{gnus-group-list-groups}). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it ! only lists groups of level five or lower (ie. just subscribed groups). @item L @itemx A u @kindex A u (Group) --- 2333,2339 ---- List all groups that have unread articles (@code{gnus-group-list-groups}). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it ! only lists groups of level five or lower (i.e., just subscribed groups). @item L @itemx A u @kindex A u (Group) *************** *** 2349,2355 **** List all groups, whether they have unread articles or not (@code{gnus-group-list-all-groups}). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, ! it lists groups of level seven or lower (ie. just subscribed and unsubscribed groups). @item A k @kindex A k (Group) --- 2342,2348 ---- List all groups, whether they have unread articles or not (@code{gnus-group-list-all-groups}). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, ! it lists groups of level seven or lower (i.e., just subscribed and unsubscribed groups). @item A k @kindex A k (Group) *************** *** 2627,2633 **** * Choosing Articles:: Reading articles. * Paging the Article:: Scrolling the current article. * Reply Followup and Post:: Posting articles. ! * Cancelling and Superseding:: "Whoops, I shouldn't have called him that." * Ticking and Marking:: Marking articles as read, expirable, etc. * Threading:: How threads are made. * Asynchronous Fetching:: Gnus might be able to pre-fetch articles. --- 2620,2626 ---- * Choosing Articles:: Reading articles. * Paging the Article:: Scrolling the current article. * Reply Followup and Post:: Posting articles. ! * Canceling and Superseding:: "Whoops, I shouldn't have called him that." * Ticking and Marking:: Marking articles as read, expirable, etc. * Threading:: How threads are made. * Asynchronous Fetching:: Gnus might be able to pre-fetch articles. *************** *** 2735,2741 **** @item r @code{References}. @item t ! Number of articles in the current subthread. Using this spec will slow down summary buffer generation somewhat. @item u User defined specifier. The next character in the format string should --- 2728,2734 ---- @item r @code{References}. @item t ! Number of articles in the current sub-thread. Using this spec will slow down summary buffer generation somewhat. @item u User defined specifier. The next character in the format string should *************** *** 3095,3101 **** @item gnus-reply-to-function @vindex gnus-reply-to-function Gnus uses the normal methods to determine where replies are to go, but ! you can change the behaviour to suit your needs by fiddling with this variable. If you want the replies to go to the @samp{Sender} instead of the --- 3088,3094 ---- @item gnus-reply-to-function @vindex gnus-reply-to-function Gnus uses the normal methods to determine where replies are to go, but ! you can change the behavior to suit your needs by fiddling with this variable. If you want the replies to go to the @samp{Sender} instead of the *************** *** 3150,3156 **** @vindex gnus-mail-reply-method @item gnus-mail-reply-method ! This function is used to compose replys. The three functions avaibale are: @findex gnus-mail-reply-using-vm --- 3143,3149 ---- @vindex gnus-mail-reply-method @item gnus-mail-reply-method ! This function is used to compose replies. The three functions avaibale are: @findex gnus-mail-reply-using-vm *************** *** 3301,3307 **** @vindex gnus-followup-to-function This variable is most useful in mail groups, where "following up" really means sending a mail to a list address. Gnus uses the normal methods to ! determine where follow-ups are to go, but you can change the behaviour to suit your needs by fiddling with this variable. If you want the followups to go to the @samp{Sender} instead of the --- 3294,3300 ---- @vindex gnus-followup-to-function This variable is most useful in mail groups, where "following up" really means sending a mail to a list address. Gnus uses the normal methods to ! determine where follow-ups are to go, but you can change the behavior to suit your needs by fiddling with this variable. If you want the followups to go to the @samp{Sender} instead of the *************** *** 3392,3398 **** @item gnus-inews-article-hook @vindex gnus-inews-article-hook This hook is called right before the article is posted. By default it ! handles FCC processing (ie. saving the article to a file.) @item gnus-inews-article-header-hook @vindex gnus-inews-article-header-hook --- 3385,3391 ---- @item gnus-inews-article-hook @vindex gnus-inews-article-hook This hook is called right before the article is posted. By default it ! handles FCC processing (i.e., saving the article to a file.) @item gnus-inews-article-header-hook @vindex gnus-inews-article-header-hook *************** *** 3412,3420 **** @item subject-cmsg Check the subject for commands. @item multiple-headers ! Check for the existance of multiple equal headers. @item sendsys ! Check for the existance of version and sendsys commands. @item message-id Check whether the @code{Message-ID} looks ok. @item from --- 3405,3413 ---- @item subject-cmsg Check the subject for commands. @item multiple-headers ! Check for the existence of multiple equal headers. @item sendsys ! Check for the existence of version and sendsys commands. @item message-id Check whether the @code{Message-ID} looks ok. @item from *************** *** 3515,3521 **** Here are two example values of this variable: @samp{"larsi@@ifi.uio.no (Lars Magne Ingebrigtsen)"} and @samp{"Lars Magne Ingebrigtsen "}. The latter version is recommended, but the name ! has to be quoted if it contains non-alphanumerical characters - @samp{"\"Lars M. Ingebrigtsen\" "}. @item mail-default-headers --- 3508,3514 ---- Here are two example values of this variable: @samp{"larsi@@ifi.uio.no (Lars Magne Ingebrigtsen)"} and @samp{"Lars Magne Ingebrigtsen "}. The latter version is recommended, but the name ! has to be quoted if it contains non-alpha-numerical characters - @samp{"\"Lars M. Ingebrigtsen\" "}. @item mail-default-headers *************** *** 3553,3561 **** (add-hook 'mail-send-hook 'ispell-message) ;for mail posts via sendmail @end lisp ! @node Cancelling and Superseding ! @section Cancelling Articles ! @cindex cancelling articles @cindex superseding articles Have you ever written something, and then decided that you really, --- 3546,3554 ---- (add-hook 'mail-send-hook 'ispell-message) ;for mail posts via sendmail @end lisp ! @node Canceling and Superseding ! @section Canceling Articles ! @cindex canceling articles @cindex superseding articles Have you ever written something, and then decided that you really, *************** *** 3568,3574 **** Find the article you wish to cancel (you can only cancel your own articles, so don't try any funny stuff). Then press @kbd{C} or @kbd{S c} (@code{gnus-summary-cancel-article}). Your article will be ! cancelled - machines all over the world will be deleting your article. Be aware, however, that not all sites honor cancels, so your article may live on here and there, while most sites will delete the article in --- 3561,3567 ---- Find the article you wish to cancel (you can only cancel your own articles, so don't try any funny stuff). Then press @kbd{C} or @kbd{S c} (@code{gnus-summary-cancel-article}). Your article will be ! canceled - machines all over the world will be deleting your article. Be aware, however, that not all sites honor cancels, so your article may live on here and there, while most sites will delete the article in *************** *** 3585,3591 **** where you can edit the article all you want before sending it off the usual way. ! The same goes for superseding as for cancelling, only more so: Some sites do not honor superseding. On those sites, it will appear that you have posted almost the same article twice. --- 3578,3591 ---- where you can edit the article all you want before sending it off the usual way. ! @vindex gnus-delete-supersedes-headers ! You probably want to delete some of the old headers before sending the ! superseding article - @code{Path} and @code{Date} are probably ! incorrect. Set @code{gnus-delete-supersedes-headers} to a regexp to ! match the lines you want removed. The default is ! @samp{"^Path:\\|^Date"}. ! ! The same goes for superseding as for canceling, only more so: Some sites do not honor superseding. On those sites, it will appear that you have posted almost the same article twice. *************** *** 3597,3603 **** the @samp{Message-ID} header to a @samp{Cancel} or @samp{Supersedes} header by substituting one of those words for @samp{Message-ID}. Then just press @kbd{C-c C-c} to send the article as you would do normally. ! The previous article will be cancelled/superseded. Just remember, kids: There is no 'c' in 'supersede'. --- 3597,3603 ---- the @samp{Message-ID} header to a @samp{Cancel} or @samp{Supersedes} header by substituting one of those words for @samp{Message-ID}. Then just press @kbd{C-c C-c} to send the article as you would do normally. ! The previous article will be canceled/superseded. Just remember, kids: There is no 'c' in 'supersede'. *************** *** 3680,3686 **** @item C Marked as read by a catchup (@code{gnus-catchup-mark}). @item G ! Cancelled article (@code{gnus-cancelled-mark}) @end table All these marks just mean that the article is marked as read, really. --- 3680,3686 ---- @item C Marked as read by a catchup (@code{gnus-catchup-mark}). @item G ! Canceled article (@code{gnus-cancelled-mark}) @end table All these marks just mean that the article is marked as read, really. *************** *** 3935,3940 **** --- 3935,3942 ---- @node Customizing Threading @subsection Customizing Threading @cindex customizing threading + @cindex < + @cindex > @table @code @item gnus-show-threads *************** *** 3980,3991 **** something. This variable says what fudging method Gnus should use. There are four possible values: @table @code @item adopt Gnus will make the first of the orphaned articles the parent. This parent will adopt all the other articles. The adopted articles will be ! marked as such by pointy brackets instead of the standard square ! brackets. This is the default method. @item dummy Gnus will create a dummy summary line that will pretend to be the parent. This dummy line does not correspond to any real article, so --- 3982,3995 ---- something. This variable says what fudging method Gnus should use. There are four possible values: + @cindex adopting articles + @table @code @item adopt Gnus will make the first of the orphaned articles the parent. This parent will adopt all the other articles. The adopted articles will be ! marked as such by pointy brackets (@samp{<>}) instead of the standard ! square brackets (@samp{[]]). This is the default method. @item dummy Gnus will create a dummy summary line that will pretend to be the parent. This dummy line does not correspond to any real article, so *************** *** 4019,4025 **** in a new thread. @item gnus-thread-indent-level @vindex gnus-thread-indent-level ! This is a number that says how much each subthread should be indented. The default is @samp{4}. @end table --- 4023,4029 ---- in a new thread. @item gnus-thread-indent-level @vindex gnus-thread-indent-level ! This is a number that says how much each sub-thread should be indented. The default is @samp{4}. @end table *************** *** 4033,4039 **** @kindex T k (Summary) @kindex M-C-k (Summary) @findex gnus-summary-kill-thread ! Mark all articles in the current subthread as read (@code{gnus-summary-kill-thread}). If the prefix argument is positive, remove all marks instead. If the prefix argument is negative, tick articles instead. --- 4037,4043 ---- @kindex T k (Summary) @kindex M-C-k (Summary) @findex gnus-summary-kill-thread ! Mark all articles in the current sub-thread as read (@code{gnus-summary-kill-thread}). If the prefix argument is positive, remove all marks instead. If the prefix argument is negative, tick articles instead. *************** *** 4200,4206 **** picture? The @code{gnus-jog-cache} command will go through all subscribed newsgroups, request all unread articles, and store them in the cache. You should only ever, ever ever ever, use this command if 1) ! your connetion to the @sc{nntp} server is really, really, really slow and 2) you have a really, really, really huge disk. Seriously. --- 4204,4210 ---- picture? The @code{gnus-jog-cache} command will go through all subscribed newsgroups, request all unread articles, and store them in the cache. You should only ever, ever ever ever, use this command if 1) ! your connection to the @sc{nntp} server is really, really, really slow and 2) you have a really, really, really huge disk. Seriously. *************** *** 4343,4349 **** @cindex saving articles Gnus can save articles in a number of ways. Below is the documentation ! for saving articles in a fairly straight-forward fashion (ie. little processing of the article is done before it is saved). For a different approach (uudecoding, unsharing) you should use @code{gnus-uu} (@pxref{Decoding Articles}). --- 4347,4353 ---- @cindex saving articles Gnus can save articles in a number of ways. Below is the documentation ! for saving articles in a fairly straight-forward fashion (i.e., little processing of the article is done before it is saved). For a different approach (uudecoding, unsharing) you should use @code{gnus-uu} (@pxref{Decoding Articles}). *************** *** 4470,4476 **** @menu * Uuencoded Articles:: Uudecode articles. * Shared Articles:: Unshar articles. ! * PostScript Files:: Split PoscScript. @end menu All these functions use the process/prefix convention --- 4474,4480 ---- @menu * Uuencoded Articles:: Uudecode articles. * Shared Articles:: Unshar articles. ! * PostScript Files:: Split PostScript. @end menu All these functions use the process/prefix convention *************** *** 4649,4655 **** Files with a @sc{mime} type matching this variable won't be viewed. Note that Gnus tries to guess what type the file is based on the name. @code{gnus-uu} is not a @sc{mime} package (yet), so this is slightly ! kludgy. @item gnus-uu-tmp-dir @vindex gnus-uu-tmp-dir --- 4653,4659 ---- Files with a @sc{mime} type matching this variable won't be viewed. Note that Gnus tries to guess what type the file is based on the name. @code{gnus-uu} is not a @sc{mime} package (yet), so this is slightly ! kludgey. @item gnus-uu-tmp-dir @vindex gnus-uu-tmp-dir *************** *** 5068,5074 **** @item s Score on the subject line. @item x ! Score on the Xref line - ie. the cross-posting line. @item t Score on thread - the References line. @item d --- 5072,5078 ---- @item s Score on the subject line. @item x ! Score on the Xref line - i.e., the cross-posting line. @item t Score on thread - the References line. @item d *************** *** 5095,5102 **** @end table @item ! The fourth and final key says whether this is a temporary (ie. expiring) ! score entry, or a permanent (ie. non-expiring) score entry, or whether it is to be done immediately, without adding to the score file. @table @kbd @item t --- 5099,5106 ---- @end table @item ! The fourth and final key says whether this is a temporary (i.e., expiring) ! score entry, or a permanent (i.e., non-expiring) score entry, or whether it is to be done immediately, without adding to the score file. @table @kbd @item t *************** *** 5418,5424 **** random number of header/score pairs. To take @code{gnus-del-mark} as an example - this alist says that all ! articles that have that mark (ie. are marked with @samp{D}) will have a score entry added to lower based on the @code{From} header by -4, and lowered by @code{Subject} by -1. Change this to fit your prejudices. --- 5422,5428 ---- random number of header/score pairs. To take @code{gnus-del-mark} as an example - this alist says that all ! articles that have that mark (i.e., are marked with @samp{D}) will have a score entry added to lower based on the @code{From} header by -4, and lowered by @code{Subject} by -1. Change this to fit your prejudices. *************** *** 6371,6377 **** lines of the summary and article buffers. The information Gnus wishes to display (eg. the subject of the article) is often longer than the mode lines, and therefore have to be cut off at some point. This ! variable says how long the other elements on the line is (ie. the non-info part). If you put additional elements on the mode line (eg. a clock), you should modify this variable: @c Hook written by Keinonen Kari . --- 6375,6381 ---- lines of the summary and article buffers. The information Gnus wishes to display (eg. the subject of the article) is often longer than the mode lines, and therefore have to be cut off at some point. This ! variable says how long the other elements on the line is (i.e., the non-info part). If you put additional elements on the mode line (eg. a clock), you should modify this variable: @c Hook written by Keinonen Kari . *************** *** 6384,6395 **** @item gnus-visual @vindex gnus-visual ! If @code{nil}, Gnus won't attempt to create menus or use fancy colours or fonts. This will also inhibit loading the @file{gnus-visual.el} file. @item gnus-mouse-face @vindex gnus-mouse-face ! This is the face (ie. font) used for mouse highlighting in Gnus. No mouse highlights will be done if @code{gnus-visual} is @code{nil}. @end table --- 6388,6399 ---- @item gnus-visual @vindex gnus-visual ! If @code{nil}, Gnus won't attempt to create menus or use fancy colors or fonts. This will also inhibit loading the @file{gnus-visual.el} file. @item gnus-mouse-face @vindex gnus-mouse-face ! This is the face (i.e., font) used for mouse highlighting in Gnus. No mouse highlights will be done if @code{gnus-visual} is @code{nil}. @end table *************** *** 6583,6585 **** --- 6587,6591 ---- @c Local Variables: @c outline-regexp: "@chap\\|@\\(sub\\)*section\\|@appendix \\|@appendix\\(sub\\)*sec\\|\^L" @c End: + +