*** pub/rgnus/lisp/article.el Sat Nov 16 17:40:32 1996 --- rgnus/lisp/article.el Mon Nov 18 12:16:06 1996 *************** *** 120,126 **** (defcustom gnus-emphasis-alist (let ((format ! "\\(\\s-\\|^\\|[\"\(]\\)\\(%s\\(\\w+\\(\\s-+\\w+\\)*\\)%s\\)\\(\\s-\\|[?!.,;:\"\)]\\)") (types '(("_" "_" underline) ("/" "/" italic) --- 120,126 ---- (defcustom gnus-emphasis-alist (let ((format ! "\\(\\s-\\|^\\|[-\"\(]\\)\\(%s\\(\\w+\\(\\s-+\\w+\\)*\\)%s\\)\\(\\s-\\|[-?!.,;:\"\)]\\)") (types '(("_" "_" underline) ("/" "/" italic) *** pub/rgnus/lisp/gnus-art.el Fri Nov 15 23:41:56 1996 --- rgnus/lisp/gnus-art.el Mon Nov 18 18:57:04 1996 *************** *** 146,153 **** :group 'article :type 'function) ! (defcustom gnus-decode-encoded-word-method (lambda ()) ! "*Function to decode a MIME encoded-words. The function is called from the article buffer." :group 'article :type 'function) --- 146,153 ---- :group 'article :type 'function) ! (defcustom gnus-decode-encoded-word-method 'gnus-article-de-quoted-unreadable ! "*Function to decode MIME encoded words. The function is called from the article buffer." :group 'article :type 'function) *** pub/rgnus/lisp/gnus-gl.el Thu Nov 14 10:08:12 1996 --- rgnus/lisp/gnus-gl.el Sun Nov 17 23:41:40 1996 *************** *** 192,198 **** ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Program global variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ! (defvar grouplens-bbb-token "0" "Current session token number") (defvar grouplens-bbb-process nil --- 192,198 ---- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Program global variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ! (defvar grouplens-bbb-token nil "Current session token number") (defvar grouplens-bbb-process nil *************** *** 316,322 **** grouplens-bbb-token) (defun bbb-extract-token-number () ! (let ((token-pos (search-forward "token=" nil t) )) (when (looking-at "[0-9]+") (buffer-substring token-pos (match-end 0))))) --- 316,322 ---- grouplens-bbb-token) (defun bbb-extract-token-number () ! (let ((token-pos (search-forward "token=" nil t))) (when (looking-at "[0-9]+") (buffer-substring token-pos (match-end 0))))) *************** *** 358,382 **** (defun bbb-get-predictions (midlist groupname) "Ask the bbb for predictions, and build up the score alist." ! (if (or (null grouplens-bbb-token) ! (equal grouplens-bbb-token "0")) ! (progn ! (gnus-message 3 "Error: You are not logged in to a BBB") ! (ding)) ! (gnus-message 5 "Fetching Predictions...") ! (let ((bbb-process (bbb-connect-to-bbbd grouplens-bbb-host ! grouplens-bbb-port))) ! (when bbb-process ! (save-excursion ! (set-buffer (process-buffer bbb-process)) ! (bbb-send-command bbb-process ! (bbb-build-predict-command midlist groupname ! grouplens-bbb-token)) ! (if (not (bbb-read-response bbb-process)) ! (progn ! (gnus-message 1 "Invalid Token, login and try again") ! (ding)) ! (bbb-get-prediction-response bbb-process))))))) (defun bbb-get-all-mids () (mapcar (function (lambda (x) (mail-header-id x))) gnus-newsgroup-headers)) --- 358,379 ---- (defun bbb-get-predictions (midlist groupname) "Ask the bbb for predictions, and build up the score alist." ! (gnus-message 5 "Fetching Predictions...") ! (if grouplens-bbb-token ! (let ((bbb-process (bbb-connect-to-bbbd grouplens-bbb-host ! grouplens-bbb-port))) ! (when bbb-process ! (save-excursion ! (set-buffer (process-buffer bbb-process)) ! (bbb-send-command bbb-process ! (bbb-build-predict-command midlist groupname ! grouplens-bbb-token)) ! (if (bbb-read-response bbb-process) ! (bbb-get-prediction-response bbb-process) ! (gnus-message 1 "Invalid Token, login and try again") ! (ding))))) ! (gnus-message 3 "Error: You are not logged in to a BBB") ! (ding))) (defun bbb-get-all-mids () (mapcar (function (lambda (x) (mail-header-id x))) gnus-newsgroup-headers)) *************** *** 833,841 **** ;; leave the gnus-score-find-score-files variable alone ((eq gnus-grouplens-override-scoring 'separate) (add-hook 'gnus-select-group-hook ! '(lambda () ! (bbb-get-predictions (bbb-get-all-mids) ! gnus-newsgroup-name)))) ;; default is to override (t (setq gnus-score-find-score-files-function --- 830,838 ---- ;; leave the gnus-score-find-score-files variable alone ((eq gnus-grouplens-override-scoring 'separate) (add-hook 'gnus-select-group-hook ! (lambda () ! (bbb-get-predictions (bbb-get-all-mids) ! gnus-newsgroup-name)))) ;; default is to override (t (setq gnus-score-find-score-files-function *** pub/rgnus/lisp/gnus-group.el Sat Nov 16 18:16:04 1996 --- rgnus/lisp/gnus-group.el Sun Nov 17 12:14:04 1996 *************** *** 3401,3409 **** "Change the timestamp of the current group to the current time. This function can be used in hooks like `gnus-select-group-hook' or `gnus-group-catchup-group-hook'." ! (let ((time (current-time))) ! (setcdr (cdr time) nil) ! (gnus-group-set-parameter gnus-newsgroup-name 'timestamp time))) (defsubst gnus-group-timestamp (group) "Return the timestamp for GROUP." --- 3401,3410 ---- "Change the timestamp of the current group to the current time. This function can be used in hooks like `gnus-select-group-hook' or `gnus-group-catchup-group-hook'." ! (when gnus-newsgroup-name ! (let ((time (current-time))) ! (setcdr (cdr time) nil) ! (gnus-group-set-parameter gnus-newsgroup-name 'timestamp time)))) (defsubst gnus-group-timestamp (group) "Return the timestamp for GROUP." *** pub/rgnus/lisp/gnus-score.el Sun Nov 10 05:44:25 1996 --- rgnus/lisp/gnus-score.el Mon Nov 18 21:42:20 1996 *************** *** 2558,2564 **** (setq funcs (list funcs))) ;; Get the initial score files for this group. (when funcs ! (setq score-files (gnus-score-find-alist group))) ;; Add any home adapt files. (let ((home (gnus-home-score-file group t))) (when home --- 2558,2564 ---- (setq funcs (list funcs))) ;; Get the initial score files for this group. (when funcs ! (setq score-files (nreverse (gnus-score-find-alist group)))) ;; Add any home adapt files. (let ((home (gnus-home-score-file group t))) (when home *************** *** 2590,2595 **** --- 2590,2596 ---- (when (stringp (car files)) (setcar files (expand-file-name (car files)))) (pop files))) + (setq score-files (nreverse score-files)) ;; Remove any duplicate score files. (while (and score-files (member (car score-files) (cdr score-files))) *** pub/rgnus/lisp/gnus-start.el Sat Nov 16 11:36:46 1996 --- rgnus/lisp/gnus-start.el Mon Nov 18 21:42:20 1996 *************** *** 30,35 **** --- 30,36 ---- (require 'gnus-int) (require 'gnus-spec) (require 'gnus-range) + (require 'gnus-util) (require 'message) (defcustom gnus-startup-file "~/.newsrc" *************** *** 336,349 **** :group 'gnus-start :type 'hook) ! (defcustom gnus-get-new-news-hook ! (when (gnus-boundp 'display-time-timer) ! '(display-time-event-handler)) "A hook run just before Gnus checks for new news." :group 'gnus-start :type 'hook) ! (defcustom gnus-after-getting-new-news-hook nil "A hook run after Gnus checks for new news." :group 'gnus-start :type 'hook) --- 337,350 ---- :group 'gnus-start :type 'hook) ! (defcustom gnus-get-new-news-hook nil "A hook run just before Gnus checks for new news." :group 'gnus-start :type 'hook) ! (defcustom gnus-after-getting-new-news-hook ! (when (gnus-boundp 'display-time-timer) ! '(display-time-event-handler)) "A hook run after Gnus checks for new news." :group 'gnus-start :type 'hook) *** pub/rgnus/lisp/gnus-sum.el Sat Nov 16 19:19:41 1996 --- rgnus/lisp/gnus-sum.el Mon Nov 18 21:42:26 1996 *************** *** 2477,2491 **** (gnus-tmp-from (mail-header-from gnus-tmp-header)) (gnus-tmp-name (cond - ((string-match "(.+)" gnus-tmp-from) - (substring gnus-tmp-from - (1+ (match-beginning 0)) (1- (match-end 0)))) ((string-match "<[^>]+> *$" gnus-tmp-from) (let ((beg (match-beginning 0))) (or (and (string-match "^\"[^\"]*\"" gnus-tmp-from) (substring gnus-tmp-from (1+ (match-beginning 0)) (1- (match-end 0)))) (substring gnus-tmp-from 0 beg)))) (t gnus-tmp-from))) (gnus-tmp-subject (mail-header-subject gnus-tmp-header)) (gnus-tmp-number (mail-header-number gnus-tmp-header)) --- 2477,2491 ---- (gnus-tmp-from (mail-header-from gnus-tmp-header)) (gnus-tmp-name (cond ((string-match "<[^>]+> *$" gnus-tmp-from) (let ((beg (match-beginning 0))) (or (and (string-match "^\"[^\"]*\"" gnus-tmp-from) (substring gnus-tmp-from (1+ (match-beginning 0)) (1- (match-end 0)))) (substring gnus-tmp-from 0 beg)))) + ((string-match "(.+)" gnus-tmp-from) + (substring gnus-tmp-from + (1+ (match-beginning 0)) (1- (match-end 0)))) (t gnus-tmp-from))) (gnus-tmp-subject (mail-header-subject gnus-tmp-header)) (gnus-tmp-number (mail-header-number gnus-tmp-header)) *************** *** 3552,3566 **** gnus-tmp-from (mail-header-from gnus-tmp-header) gnus-tmp-name (cond - ((string-match "(.+)" gnus-tmp-from) - (substring gnus-tmp-from - (1+ (match-beginning 0)) (1- (match-end 0)))) ((string-match "<[^>]+> *$" gnus-tmp-from) (setq beg-match (match-beginning 0)) (or (and (string-match "^\"[^\"]*\"" gnus-tmp-from) (substring gnus-tmp-from (1+ (match-beginning 0)) (1- (match-end 0)))) (substring gnus-tmp-from 0 beg-match))) (t gnus-tmp-from))) (when (string= gnus-tmp-name "") (setq gnus-tmp-name gnus-tmp-from)) --- 3552,3566 ---- gnus-tmp-from (mail-header-from gnus-tmp-header) gnus-tmp-name (cond ((string-match "<[^>]+> *$" gnus-tmp-from) (setq beg-match (match-beginning 0)) (or (and (string-match "^\"[^\"]*\"" gnus-tmp-from) (substring gnus-tmp-from (1+ (match-beginning 0)) (1- (match-end 0)))) (substring gnus-tmp-from 0 beg-match))) + ((string-match "(.+)" gnus-tmp-from) + (substring gnus-tmp-from + (1+ (match-beginning 0)) (1- (match-end 0)))) (t gnus-tmp-from))) (when (string= gnus-tmp-name "") (setq gnus-tmp-name gnus-tmp-from)) *************** *** 4047,4054 **** (setq articles (delq id articles)))))) (gnus-undo-register `(progn ! (gnus-info-set-marks ,info ,(gnus-info-marks info)) ! (gnus-info-set-read ,info ,(gnus-info-read info)) (gnus-group-update-group group t))) ;; If the read list is nil, we init it. (and active --- 4047,4054 ---- (setq articles (delq id articles)))))) (gnus-undo-register `(progn ! (gnus-info-set-marks ,info ',(gnus-info-marks info)) ! (gnus-info-set-read ,info ',(gnus-info-read info)) (gnus-group-update-group group t))) ;; If the read list is nil, we init it. (and active *************** *** 5332,5338 **** "exiting")) (gnus-summary-next-group nil group backward))) (t ! (when (numberp last-input-event) (gnus-summary-walk-group-buffer gnus-newsgroup-name cmd unread backward)))))))) --- 5332,5338 ---- "exiting")) (gnus-summary-next-group nil group backward))) (t ! (when (gnus-key-press-event-p last-input-event) (gnus-summary-walk-group-buffer gnus-newsgroup-name cmd unread backward)))))))) *************** *** 6018,6033 **** (let ((ref (mail-header-references (gnus-summary-article-header))) (current (gnus-summary-article-number)) (n 0)) ! ;; For each Message-ID in the References header... ! (while (string-match "<[^>]*>" ref) ! (incf n) ! ;; ... fetch that article. ! (gnus-summary-refer-article ! (prog1 (match-string 0 ref) ! (setq ref (substring ref (match-end 0)))))) ! (gnus-summary-goto-subject current) ! (gnus-summary-position-point) ! n)) (defun gnus-summary-refer-article (message-id) "Fetch an article specified by MESSAGE-ID." --- 6018,6036 ---- (let ((ref (mail-header-references (gnus-summary-article-header))) (current (gnus-summary-article-number)) (n 0)) ! (if (or (not ref) ! (equal ref "")) ! (error "No References in the current article") ! ;; For each Message-ID in the References header... ! (while (string-match "<[^>]*>" ref) ! (incf n) ! ;; ... fetch that article. ! (gnus-summary-refer-article ! (prog1 (match-string 0 ref) ! (setq ref (substring ref (match-end 0)))))) ! (gnus-summary-goto-subject current) ! (gnus-summary-position-point) ! n))) (defun gnus-summary-refer-article (message-id) "Fetch an article specified by MESSAGE-ID." *************** *** 8420,8427 **** (push (cons prev (cdr active)) read)) (gnus-undo-register `(progn ! (gnus-info-set-marks ,info ,(gnus-info-marks info)) ! (gnus-info-set-read ,info ,(gnus-info-read info)) (gnus-get-unread-articles-in-group ,info (gnus-active ,group)))) ;; Enter this list into the group info. (gnus-info-set-read --- 8423,8430 ---- (push (cons prev (cdr active)) read)) (gnus-undo-register `(progn ! (gnus-info-set-marks ,info ',(gnus-info-marks info)) ! (gnus-info-set-read ,info ',(gnus-info-read info)) (gnus-get-unread-articles-in-group ,info (gnus-active ,group)))) ;; Enter this list into the group info. (gnus-info-set-read *** pub/rgnus/lisp/gnus-util.el Sat Nov 16 11:36:46 1996 --- rgnus/lisp/gnus-util.el Mon Nov 18 19:25:55 1996 *************** *** 572,578 **** (defun gnus-make-directory (directory) "Make DIRECTORY (and all its parents) if it doesn't exist." ! (when (not (file-exists-p directory)) (make-directory directory t)) t) --- 572,579 ---- (defun gnus-make-directory (directory) "Make DIRECTORY (and all its parents) if it doesn't exist." ! (when (and directory ! (not (file-exists-p directory))) (make-directory directory t)) t) *** pub/rgnus/lisp/gnus-xmas.el Sat Nov 16 11:36:51 1996 --- rgnus/lisp/gnus-xmas.el Sun Nov 17 12:16:37 1996 *************** *** 446,451 **** --- 446,452 ---- (fset 'gnus-article-show-hidden-text 'gnus-xmas-article-show-hidden-text) (fset 'gnus-mode-line-buffer-identification 'gnus-xmas-mode-line-buffer-identification) + (fset 'gnus-key-press-event-p 'key-press-event-p) (add-hook 'gnus-group-mode-hook 'gnus-xmas-group-menu-add) (add-hook 'gnus-summary-mode-hook 'gnus-xmas-summary-menu-add) *** pub/rgnus/lisp/gnus.el Sat Nov 16 11:36:46 1996 --- rgnus/lisp/gnus.el Mon Nov 18 18:57:04 1996 *************** *** 42,48 **** "Score and kill file handling." :group 'gnus ) ! (defconst gnus-version-number "0.63" "Version number for this version of Gnus.") (defconst gnus-version (format "Red Gnus v%s" gnus-version-number) --- 42,48 ---- "Score and kill file handling." :group 'gnus ) ! (defconst gnus-version-number "0.64" "Version number for this version of Gnus.") (defconst gnus-version (format "Red Gnus v%s" gnus-version-number) *************** *** 88,94 **** (defalias 'gnus-character-to-event 'identity) (defalias 'gnus-add-text-properties 'add-text-properties) (defalias 'gnus-put-text-property 'put-text-property) ! (defalias 'gnus-mode-line-buffer-identification 'identity)) ;; The XEmacs people think this is evil, so it must go. (defun custom-face-lookup (&optional fg bg stipple bold italic underline) --- 88,95 ---- (defalias 'gnus-character-to-event 'identity) (defalias 'gnus-add-text-properties 'add-text-properties) (defalias 'gnus-put-text-property 'put-text-property) ! (defalias 'gnus-mode-line-buffer-identification 'identity) ! (defalias 'gnus-key-press-event-p 'numberp)) ;; The XEmacs people think this is evil, so it must go. (defun custom-face-lookup (&optional fg bg stipple bold italic underline) *************** *** 837,848 **** gnus-article-hide-boring-headers gnus-article-treat-overstrike gnus-article-maybe-highlight - gnus-article-de-quoted-unreadable gnus-article-display-x-face) '(gnus-article-hide-headers-if-wanted gnus-article-hide-boring-headers gnus-article-treat-overstrike - gnus-article-de-quoted-unreadable gnus-article-maybe-highlight)) "Controls how the article buffer will look. --- 838,847 ---- *************** *** 1216,1221 **** --- 1215,1221 ---- %t Number of articles under the current thread (number). %e Whether the thread is empty or not (character). %l GroupLens score (string). + %V Total thread score (number). %P The line number (number). %u User defined specifier. The next character in the format string should be a letter. Gnus will call the function gnus-user-format-function-X, *************** *** 1954,1960 **** group) (while (not group) (when (string-match ! "[ `'\"/]\\|^$" (setq group (read-string (concat prefix prompt) "" 'gnus-group-history))) (setq prefix (format "Illegal group name: \"%s\". " group) --- 1954,1960 ---- group) (while (not group) (when (string-match ! "[: `'\"/]\\|^$" (setq group (read-string (concat prefix prompt) "" 'gnus-group-history))) (setq prefix (format "Illegal group name: \"%s\". " group) *** pub/rgnus/lisp/message.el Thu Nov 14 10:08:08 1996 --- rgnus/lisp/message.el Sun Nov 17 23:42:52 1996 *************** *** 36,53 **** (require 'nnheader) (require 'timezone) (require 'easymenu) (if (string-match "XEmacs\\|Lucid" emacs-version) (require 'mail-abbrevs) (require 'mailabbrev)) ! (defvar message-directory "~/Mail/" ! "*Directory from which all other mail file variables are derived.") ! ! (defvar message-max-buffers 10 ! "*How many buffers to keep before starting to kill them off.") ! ! (defvar message-send-rename-function nil ! "Function called to rename the buffer after sending it.") ;;;###autoload (defvar message-fcc-handler-function 'rmail-output --- 36,64 ---- (require 'nnheader) (require 'timezone) (require 'easymenu) + (require 'custom) (if (string-match "XEmacs\\|Lucid" emacs-version) (require 'mail-abbrevs) (require 'mailabbrev)) ! (defgroup message nil ! "Mail and news message composing." ! :group 'emacs) ! ! (defcustom message-directory "~/Mail/" ! "*Directory from which all other mail file variables are derived." ! :group 'message ! :type 'directory) ! ! (defcustom message-max-buffers 10 ! "*How many buffers to keep before starting to kill them off." ! :group 'message ! :type 'integer) ! ! (defcustom message-send-rename-function nil ! "Function called to rename the buffer after sending it." ! :group 'message ! :type 'function) ;;;###autoload (defvar message-fcc-handler-function 'rmail-output *************** *** 55,70 **** This function will be called with the name of the file to store the article in. The default function is `rmail-output' which saves in Unix mailbox format.") ! (defvar message-courtesy-message "The following message is a courtesy copy of an article\nthat has been posted to %s as well.\n\n" "*This is inserted at the start of a mailed copy of a posted message. If the string contains the format spec \"%s\", the Newsgroups the article has been posted to will be inserted there. ! If this variable is nil, no such courtesy message will be added.") ! ! (defvar message-ignored-bounced-headers "^\\(Received\\|Return-Path\\):" ! "*Regexp that matches headers to be removed in resent bounced mail.") ;;;###autoload (defvar message-from-style 'default --- 66,91 ---- This function will be called with the name of the file to store the article in. The default function is `rmail-output' which saves in Unix mailbox format.") + (put 'message-fcc-handler-function + 'custom-type '(radio (function-item rmail-output) + (function :tag "Other"))) + (put 'message-fcc-handler-function + 'factory-value '('rmail-output)) + (custom-add-to-group 'message 'message-fcc-handler-function 'custom-variable) ! (defcustom message-courtesy-message "The following message is a courtesy copy of an article\nthat has been posted to %s as well.\n\n" "*This is inserted at the start of a mailed copy of a posted message. If the string contains the format spec \"%s\", the Newsgroups the article has been posted to will be inserted there. ! If this variable is nil, no such courtesy message will be added." ! :group 'message ! :type 'string) ! ! (defcustom message-ignored-bounced-headers "^\\(Received\\|Return-Path\\):" ! "*Regexp that matches headers to be removed in resent bounced mail." ! :group 'message ! :type 'regexp) ;;;###autoload (defvar message-from-style 'default *************** *** 79,86 **** --- 100,116 ---- Otherwise, most addresses look like `angles', but they look like `parens' if `angles' would need quoting and `parens' would not.") + (put 'message-from-style + 'custom-type '(choice (const :tag "simple" nil) + (const parens) + (const angles) + (const default))) + (put 'message-from-style + 'factory-value '('default)) + (custom-add-to-group 'message 'message-from-style 'custom-variable) (defvar message-syntax-checks nil + ;; Guess this one shouldn't be easy to customize... "Controls what syntax checks should not be performed on outgoing posts. To disable checking of long signatures, for instance, add `(signature . disabled)' to this list. *************** *** 92,187 **** approved sender empty empty-headers message-id from subject shorten-followup-to existing-newsgroups.") ! (defvar message-required-news-headers '(From Newsgroups Subject Date Message-ID (optional . Organization) Lines (optional . X-Newsreader)) ! "*Headers to be generated or prompted for when posting an article. RFC977 and RFC1036 require From, Date, Newsgroups, Subject, Message-ID. Organization, Lines, In-Reply-To, Expires, and X-Newsreader are optional. If don't you want message to insert some ! header, remove it from this list.") ! (defvar message-required-mail-headers '(From Subject Date (optional . In-Reply-To) Message-ID Lines (optional . X-Mailer)) ! "*Headers to be generated or prompted for when mailing a message. RFC822 required that From, Date, To, Subject and Message-ID be ! included. Organization, Lines and X-Mailer are optional.") ! (defvar message-deletable-headers '(Message-ID Date Lines) ! "*Headers to be deleted if they already exist and were generated by message previously.") ! ! (defvar message-ignored-news-headers "^NNTP-Posting-Host:\\|^Xref:\\|^Bcc:\\|^Gcc:\\|^Fcc:\\|^Resent-Fcc:" ! "*Regexp of headers to be removed unconditionally before posting.") ! ! (defvar message-ignored-mail-headers "^Gcc:\\|^Fcc:\\|^Resent-Fcc:" ! "*Regexp of headers to be removed unconditionally before mailing.") ! (defvar message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|Return-Path:\\|^Supersedes:" "*Header lines matching this regexp will be deleted before posting. It's best to delete old Path and Date headers before posting to avoid ! any confusion.") ;;;###autoload (defvar message-signature-separator "^-- *$" "Regexp matching the signature separator.") ! (defvar message-interactive nil "Non-nil means when sending a message wait for and display errors. ! nil means let mailer mail back a message to report errors.") ! (defvar message-generate-new-buffers t "*Non-nil means that a new message buffer will be created whenever `mail-setup' is called. If this is a function, call that function with three parameters: The type, the to address and the group name. (Any of these may be nil.) The function ! should return the new buffer name.") ! ! (defvar message-kill-buffer-on-exit nil ! "*Non-nil means that the message buffer will be killed after sending a message.") (defvar gnus-local-organization) ! (defvar message-user-organization (or (and (boundp 'gnus-local-organization) gnus-local-organization) (getenv "ORGANIZATION") t) "*String to be used as an Organization header. ! If t, use `message-user-organization-file'.") ;;;###autoload (defvar message-user-organization-file "/usr/lib/news/organization" "*Local news organization file.") ! (defvar message-autosave-directory "~/" ; (concat (file-name-as-directory message-directory) "drafts/") "*Directory where message autosaves buffers. ! If nil, message won't autosave.") ! (defvar message-forward-start-separator "------- Start of forwarded message -------\n" ! "*Delimiter inserted before forwarded messages.") ! (defvar message-forward-end-separator "------- End of forwarded message -------\n" ! "*Delimiter inserted after forwarded messages.") ! (defvar message-signature-before-forwarded-message t ! "*If non-nil, put the signature before any included forwarded message.") ! ! (defvar message-included-forward-headers "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-\\|^Message-ID:\\|^References:" ! "*Regexp matching headers to be included in forwarded messages.") ! ! (defvar message-ignored-resent-headers "^Return-receipt" ! "*All headers that match this regexp will be deleted when resending a message.") ! ! (defvar message-ignored-cited-headers "." ! "*Delete these headers from the messages you yank.") ! ! (defvar message-cancel-message "I am canceling my own article." ! "Message to be inserted in the cancel message.") ;; Useful to set in site-init.el ;;;###autoload --- 122,266 ---- approved sender empty empty-headers message-id from subject shorten-followup-to existing-newsgroups.") ! (defcustom message-required-news-headers '(From Newsgroups Subject Date Message-ID (optional . Organization) Lines (optional . X-Newsreader)) ! "Headers to be generated or prompted for when posting an article. RFC977 and RFC1036 require From, Date, Newsgroups, Subject, Message-ID. Organization, Lines, In-Reply-To, Expires, and X-Newsreader are optional. If don't you want message to insert some ! header, remove it from this list." ! :group 'message ! :type 'sexp) ! (defcustom message-required-mail-headers '(From Subject Date (optional . In-Reply-To) Message-ID Lines (optional . X-Mailer)) ! "Headers to be generated or prompted for when mailing a message. RFC822 required that From, Date, To, Subject and Message-ID be ! included. Organization, Lines and X-Mailer are optional." ! :group 'message ! :type 'sexp) ! ! (defcustom message-deletable-headers '(Message-ID Date Lines) ! "Headers to be deleted if they already exist and were generated by message previously." ! :group 'message ! :type 'sexp) ! (defcustom message-ignored-news-headers "^NNTP-Posting-Host:\\|^Xref:\\|^Bcc:\\|^Gcc:\\|^Fcc:\\|^Resent-Fcc:" ! "*Regexp of headers to be removed unconditionally before posting." ! :group 'message ! :type 'regexp) ! ! (defcustom message-ignored-mail-headers "^Gcc:\\|^Fcc:\\|^Resent-Fcc:" ! "*Regexp of headers to be removed unconditionally before mailing." ! :group 'message ! :type 'regexp) ! (defcustom message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|Return-Path:\\|^Supersedes:" "*Header lines matching this regexp will be deleted before posting. It's best to delete old Path and Date headers before posting to avoid ! any confusion." ! :group 'message ! :type 'regexp) ;;;###autoload (defvar message-signature-separator "^-- *$" "Regexp matching the signature separator.") + (put 'message-signature-separator + 'custom-type 'regexp) + (put 'message-signature-separator + 'factory-value '("^-- *$")) + (custom-add-to-group 'message 'message-signature-separator 'custom-variable) ! (defcustom message-interactive nil "Non-nil means when sending a message wait for and display errors. ! nil means let mailer mail back a message to report errors." ! :group 'message ! :type 'boolean) ! (defcustom message-generate-new-buffers t "*Non-nil means that a new message buffer will be created whenever `mail-setup' is called. If this is a function, call that function with three parameters: The type, the to address and the group name. (Any of these may be nil.) The function ! should return the new buffer name." ! :group 'message ! :type '(choice (const :tag "off" nil) ! (const :tag "on" t) ! (function fun))) ! ! (defcustom message-kill-buffer-on-exit nil ! "*Non-nil means that the message buffer will be killed after sending a message." ! :group 'message ! :type 'boolean) (defvar gnus-local-organization) ! (defcustom message-user-organization (or (and (boundp 'gnus-local-organization) gnus-local-organization) (getenv "ORGANIZATION") t) "*String to be used as an Organization header. ! If t, use `message-user-organization-file'." ! :group 'message ! :type '(choice string ! (const :tag "consult file" t))) ;;;###autoload (defvar message-user-organization-file "/usr/lib/news/organization" "*Local news organization file.") + (put 'message-user-organization-file + 'custom-type 'file) + (put 'message-user-organization-file + 'factory-value '("/usr/lib/news/organization")) + (custom-add-to-group 'message 'message-user-organization-file 'custom-variable) ! (defcustom message-autosave-directory "~/" ; (concat (file-name-as-directory message-directory) "drafts/") "*Directory where message autosaves buffers. ! If nil, message won't autosave." ! :group 'message ! :type 'directory) ! (defcustom message-forward-start-separator "------- Start of forwarded message -------\n" ! "*Delimiter inserted before forwarded messages." ! :group 'message ! :type 'string) ! (defcustom message-forward-end-separator "------- End of forwarded message -------\n" ! "*Delimiter inserted after forwarded messages." ! :group 'message ! :type 'string) ! ! (defcustom message-signature-before-forwarded-message t ! "*If non-nil, put the signature before any included forwarded message." ! :group 'message ! :type 'boolean) ! (defcustom message-included-forward-headers "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-\\|^Message-ID:\\|^References:" ! "*Regexp matching headers to be included in forwarded messages." ! :group 'message ! :type 'regexp) ! ! (defcustom message-ignored-resent-headers "^Return-receipt" ! "*All headers that match this regexp will be deleted when resending a message." ! :group 'message ! :type 'regexp) ! ! (defcustom message-ignored-cited-headers "." ! "*Delete these headers from the messages you yank." ! :group 'message ! :type 'regexp) ! ! (defcustom message-cancel-message "I am canceling my own article." ! "Message to be inserted in the cancel message." ! :group 'message ! :type 'string) ;; Useful to set in site-init.el ;;;###autoload *************** *** 192,281 **** Legal values include `message-send-mail-with-sendmail' (the default), `message-send-mail-with-mh' and `message-send-mail-with-qmail'.") ! (defvar message-send-news-function 'message-send-news "Function to call to send the current buffer as news. The headers should be delimited by a line whose contents match the ! variable `mail-header-separator'.") ! (defvar message-reply-to-function nil "Function that should return a list of headers. This function should pick out addresses from the To, Cc, and From headers ! and respond with new To and Cc headers.") ! (defvar message-wide-reply-to-function nil "Function that should return a list of headers. This function should pick out addresses from the To, Cc, and From headers ! and respond with new To and Cc headers.") ! (defvar message-followup-to-function nil "Function that should return a list of headers. This function should pick out addresses from the To, Cc, and From headers ! and respond with new To and Cc headers.") ! (defvar message-use-followup-to 'ask "*Specifies what to do with Followup-To header. If nil, ignore the header. If it is t, use its value, but query before using the \"poster\" value. If it is the symbol `ask', query the user whether to ignore the \"poster\" value. If it is the symbol `use', ! always use the value.") ;; qmail-related stuff ! (defvar message-qmail-inject-program "/var/qmail/bin/qmail-inject" ! "Location of the qmail-inject program.") ! (defvar message-qmail-inject-args nil "Arguments passed to qmail-inject programs. This should be a list of strings, one string for each argument. For e.g., if you wish to set the envelope sender address so that bounces go to the right place or to deal with listserv's usage of that address, you ! might set this variable to '(\"-f\" \"you@some.where\").") (defvar gnus-post-method) (defvar gnus-select-method) ! (defvar message-post-method (cond ((and (boundp 'gnus-post-method) gnus-post-method) gnus-post-method) ((boundp 'gnus-select-method) gnus-select-method) (t '(nnspool ""))) ! "Method used to post news.") ! ! (defvar message-generate-headers-first nil ! "*If non-nil, generate all possible headers before composing.") ! (defvar message-setup-hook nil "Normal hook, run each time a new outgoing message is initialized. ! The function `message-setup' runs this hook.") ! (defvar message-signature-setup-hook nil "Normal hook, run each time a new outgoing message is initialized. It is run after the headers have been inserted and before ! the signature is inserted.") ! ! (defvar message-mode-hook nil ! "Hook run in message mode buffers.") ! ! (defvar message-header-hook nil ! "Hook run in a message mode buffer narrowed to the headers.") ! ! (defvar message-header-setup-hook nil ! "Hook called narrowed to the headers when setting up a message buffer.") ;;;###autoload (defvar message-citation-line-function 'message-insert-citation-line "*Function called to insert the \"Whomever writes:\" line.") ;;;###autoload (defvar message-yank-prefix "> " "*Prefix inserted on the lines of yanked messages. nil means use indentation.") ! (defvar message-indentation-spaces 3 "*Number of spaces to insert at the beginning of each cited line. ! Used by `message-yank-original' via `message-yank-cite'.") ;;;###autoload (defvar message-cite-function --- 271,415 ---- Legal values include `message-send-mail-with-sendmail' (the default), `message-send-mail-with-mh' and `message-send-mail-with-qmail'.") + (put 'message-send-mail-function + 'custom-type '(radio (function-item message-send-mail-with-sendmail) + (function-item message-send-mail-with-mh) + (function-item message-send-mail-with-qmail) + (function :tag "Other"))) + (put 'message-send-mail-function + 'factory-value '('rmail-output)) + (custom-add-to-group 'message 'message-send-mail-function 'custom-variable) + ! (defcustom message-send-news-function 'message-send-news "Function to call to send the current buffer as news. The headers should be delimited by a line whose contents match the ! variable `mail-header-separator'." ! :group 'message ! :type 'function) ! (defcustom message-reply-to-function nil "Function that should return a list of headers. This function should pick out addresses from the To, Cc, and From headers ! and respond with new To and Cc headers." ! :group 'message ! :type 'function) ! (defcustom message-wide-reply-to-function nil "Function that should return a list of headers. This function should pick out addresses from the To, Cc, and From headers ! and respond with new To and Cc headers." ! :group 'message ! :type 'function) ! (defcustom message-followup-to-function nil "Function that should return a list of headers. This function should pick out addresses from the To, Cc, and From headers ! and respond with new To and Cc headers." ! :group 'message ! :type 'function) ! (defcustom message-use-followup-to 'ask "*Specifies what to do with Followup-To header. If nil, ignore the header. If it is t, use its value, but query before using the \"poster\" value. If it is the symbol `ask', query the user whether to ignore the \"poster\" value. If it is the symbol `use', ! always use the value." ! :group 'message ! :type '(choice (const :tag "ignore" nil) ! (const use) ! (const ask))) ;; qmail-related stuff ! (defcustom message-qmail-inject-program "/var/qmail/bin/qmail-inject" ! "Location of the qmail-inject program." ! :group 'message ! :type 'file) ! (defcustom message-qmail-inject-args nil "Arguments passed to qmail-inject programs. This should be a list of strings, one string for each argument. For e.g., if you wish to set the envelope sender address so that bounces go to the right place or to deal with listserv's usage of that address, you ! might set this variable to '(\"-f\" \"you@some.where\")." ! :group 'message ! :type '(repeat string)) (defvar gnus-post-method) (defvar gnus-select-method) ! (defcustom message-post-method (cond ((and (boundp 'gnus-post-method) gnus-post-method) gnus-post-method) ((boundp 'gnus-select-method) gnus-select-method) (t '(nnspool ""))) ! "Method used to post news." ! :group 'message ! ;; This should be the `gnus-select-method' widget, but that might ! ;; create a dependence to `gnus.el'. ! :type 'sexp) ! ! (defcustom message-generate-headers-first nil ! "*If non-nil, generate all possible headers before composing." ! :group 'message ! :type 'boolean) ! (defcustom message-setup-hook nil "Normal hook, run each time a new outgoing message is initialized. ! The function `message-setup' runs this hook." ! :group 'message ! :type 'hook) ! (defcustom message-signature-setup-hook nil "Normal hook, run each time a new outgoing message is initialized. It is run after the headers have been inserted and before ! the signature is inserted." ! :group 'message ! :type 'hook) ! ! (defcustom message-mode-hook nil ! "Hook run in message mode buffers." ! :group 'message ! :type 'hook) ! ! (defcustom message-header-hook nil ! "Hook run in a message mode buffer narrowed to the headers." ! :group 'message ! :type 'hook) ! ! (defcustom message-header-setup-hook nil ! "Hook called narrowed to the headers when setting up a message ! buffer." ! :group 'message ! :type 'hook) ;;;###autoload (defvar message-citation-line-function 'message-insert-citation-line "*Function called to insert the \"Whomever writes:\" line.") + (put 'message-citation-line-function + 'custom-type 'function) + (put 'message-citation-line-function + 'factory-value '('message-insert-citation-line)) + (custom-add-to-group 'message 'message-citation-line-function 'custom-variable) + ;;;###autoload (defvar message-yank-prefix "> " "*Prefix inserted on the lines of yanked messages. nil means use indentation.") + (put 'message-yank-prefix + 'custom-type 'string) + (put 'message-yank-prefix + 'factory-value '("> ")) + (custom-add-to-group 'message 'message-yank-prefix 'custom-variable) ! (defcustom message-indentation-spaces 3 "*Number of spaces to insert at the beginning of each cited line. ! Used by `message-yank-original' via `message-yank-cite'." ! :group 'message ! :type 'integer) ;;;###autoload (defvar message-cite-function *************** *** 284,289 **** --- 418,430 ---- mail-citation-hook 'message-cite-original) "*Function for citing an original message.") + (put 'message-cite-function + 'custom-type '(radio (function-item message-cite-original) + (function-item sc-cite-original) + (function :tag "Other"))) + (put 'message-cite-function + 'factory-value '('message-cite-original)) + (custom-add-to-group 'message 'message-cite-function 'custom-variable) ;;;###autoload (defvar message-indent-citation-function 'message-indent-citation *************** *** 291,296 **** --- 432,442 ---- This can also be a list of functions. Each function can find the citation between (point) and (mark t). And each function should leave point and mark around the citation text as modified.") + (put 'message-indent-citation-function + 'custom-type 'function) + (put 'message-indent-citation-function + 'factory-value '('message-indent-citation)) + (custom-add-to-group 'message 'message-indent-citation-function 'custom-variable) (defvar message-abbrevs-loaded nil) *************** *** 300,319 **** If t, the `message-signature-file' file will be inserted instead. If a function, the result from the function will be used instead. If a form, the result from the form will be used instead.") ;;;###autoload (defvar message-signature-file "~/.signature" "*File containing the text inserted at end of message buffer.") ! (defvar message-distribution-function nil ! "*Function called to return a Distribution header.") ! ! (defvar message-expires 14 ! "*Number of days before your article expires.") ! ! (defvar message-user-path nil "If nil, use the NNTP server name in the Path header. ! If stringp, use this; if non-nil, use no host name (user name only).") (defvar message-reply-buffer nil) (defvar message-reply-headers nil) --- 446,483 ---- If t, the `message-signature-file' file will be inserted instead. If a function, the result from the function will be used instead. If a form, the result from the form will be used instead.") + (put 'message-signature + 'custom-type 'sexp) + (put 'message-signature + 'factory-value '(t)) + (custom-add-to-group 'message 'message-signature 'custom-variable) ;;;###autoload (defvar message-signature-file "~/.signature" "*File containing the text inserted at end of message buffer.") + (put 'message-signature-file + 'custom-type 'file) + (put 'message-signature-file + 'factory-value '("~/.signature")) + (custom-add-to-group 'message 'message-signature-file 'custom-variable) + + (defcustom message-distribution-function nil + "*Function called to return a Distribution header." + :group 'message + :type 'function) + + (defcustom message-expires 14 + "*Number of days before your article expires." + :group 'message + :type 'integer) ! (defcustom message-user-path nil "If nil, use the NNTP server name in the Path header. ! If stringp, use this; if non-nil, use no host name (user name only)." ! :group 'message ! :type '(choice (const :tag "nntp" nil) ! (string :tag "name") ! (sexp :tag "none" :format "%t" t))) (defvar message-reply-buffer nil) (defvar message-reply-headers nil) *************** *** 330,349 **** (defvar message-postpone-actions nil "A list of actions to be performed after postponing a message.") ! (defvar message-default-headers nil "*A string containing header lines to be inserted in outgoing messages. It is inserted before you edit the message, so you can edit or delete ! these lines.") ! ! (defvar message-default-mail-headers nil ! "*A string of header lines to be inserted in outgoing mails.") ! ! (defvar message-default-news-headers nil ! "*A string of header lines to be inserted in outgoing news articles.") ;; Note: could use /usr/ucb/mail instead of sendmail; ;; options -t, and -v if not interactive. ! (defvar message-mailer-swallows-blank-line (if (and (string-match "sparc-sun-sunos\\(\\'\\|[^5]\\)" system-configuration) (file-readable-p "/etc/sendmail.cf") --- 494,520 ---- (defvar message-postpone-actions nil "A list of actions to be performed after postponing a message.") ! (defcustom message-default-headers "" "*A string containing header lines to be inserted in outgoing messages. It is inserted before you edit the message, so you can edit or delete ! these lines." ! :group 'message ! :type 'string) ! ! (defcustom message-default-mail-headers "" ! "*A string of header lines to be inserted in outgoing mails." ! :group 'message ! :type 'string) ! ! (defcustom message-default-news-headers "" ! "*A string of header lines to be inserted in outgoing news ! articles." ! :group 'message ! :type 'string) ;; Note: could use /usr/ucb/mail instead of sendmail; ;; options -t, and -v if not interactive. ! (defcustom message-mailer-swallows-blank-line (if (and (string-match "sparc-sun-sunos\\(\\'\\|[^5]\\)" system-configuration) (file-readable-p "/etc/sendmail.cf") *************** *** 364,370 **** "Set this non-nil if the system's mailer runs the header and body together. \(This problem exists on Sunos 4 when sendmail is run in remote mode.) The value should be an expression to test whether the problem will ! actually occur.") ;;; Internal variables. ;;; Well, not really internal. --- 535,543 ---- "Set this non-nil if the system's mailer runs the header and body together. \(This problem exists on Sunos 4 when sendmail is run in remote mode.) The value should be an expression to test whether the problem will ! actually occur." ! :group 'message ! :type 'sexp) ;;; Internal variables. ;;; Well, not really internal. *************** *** 404,420 **** "Alist of mail and news faces for facemenu. The cdr of ech entry is a function for applying the face to a region.") ! (defvar message-send-hook nil ! "Hook run before sending messages.") ! ! (defvar message-send-mail-hook nil ! "Hook run before sending mail messages.") ! ! (defvar message-send-news-hook nil ! "Hook run before sending news messages.") ! ! (defvar message-sent-hook nil ! "Hook run after sending messages.") ;;; Internal variables. --- 577,602 ---- "Alist of mail and news faces for facemenu. The cdr of ech entry is a function for applying the face to a region.") ! (defcustom message-send-hook nil ! "Hook run before sending messages." ! :group 'message ! :options '(ispell-message) ! :type 'hook) ! ! (defcustom message-send-mail-hook nil ! "Hook run before sending mail messages." ! :group 'message ! :type 'hook) ! ! (defcustom message-send-news-hook nil ! "Hook run before sending news messages." ! :group 'message ! :type 'hook) ! ! (defcustom message-sent-hook nil ! "Hook run after sending messages." ! :group 'message ! :type 'hook) ;;; Internal variables. *** pub/rgnus/lisp/messagexmas.el Wed Jul 17 23:48:37 1996 --- rgnus/lisp/messagexmas.el Mon Nov 18 02:16:50 1996 *************** *** 27,33 **** (require 'nnheader) ! (defvar message-xmas-dont-activate-region nil "If t, don't activate region after yanking.") (defvar message-xmas-glyph-directory nil --- 27,33 ---- (require 'nnheader) ! (defvar message-xmas-dont-activate-region t "If t, don't activate region after yanking.") (defvar message-xmas-glyph-directory nil *** pub/rgnus/lisp/nnfolder.el Fri Nov 8 05:57:06 1996 --- rgnus/lisp/nnfolder.el Sat Nov 16 23:05:46 1996 *************** *** 140,147 **** (deffoo nnfolder-open-server (server &optional defs) (nnoo-change-server 'nnfolder server defs) (when (not (file-exists-p nnfolder-directory)) ! (ignore-errors ! (gnus-make-directory nnfolder-directory))) (cond ((not (file-exists-p nnfolder-directory)) (nnfolder-close-server) --- 140,146 ---- (deffoo nnfolder-open-server (server &optional defs) (nnoo-change-server 'nnfolder server defs) (when (not (file-exists-p nnfolder-directory)) ! (gnus-make-directory nnfolder-directory)) (cond ((not (file-exists-p nnfolder-directory)) (nnfolder-close-server) *************** *** 582,588 **** (goto-char (point-max)) (unless (eolp) (insert "\n")) ! (insert "\n") (insert-buffer-substring obuf beg end) (set-buffer obuf))) --- 581,588 ---- (goto-char (point-max)) (unless (eolp) (insert "\n")) ! (unless (bobp) ! (insert "\n")) (insert-buffer-substring obuf beg end) (set-buffer obuf))) *** pub/rgnus/lisp/nnmail.el Sat Nov 16 18:27:12 1996 --- rgnus/lisp/nnmail.el Sun Nov 17 02:23:15 1996 *************** *** 29,38 **** (require 'timezone) (require 'message) (eval-when-compile (require 'cl)) ! (defvar nnmail-split-methods '(("mail.misc" "")) ! "*Incoming mail will be split according to this variable. If you'd like, for instance, one mail group for mail from the \"4ad-l\" mailing list, one group for junk mail and one for everything --- 29,43 ---- (require 'timezone) (require 'message) (eval-when-compile (require 'cl)) + (require 'custom) ! (defgroup gnus-mail nil ! "Mailreading.." ! :group 'gnus) ! ! (defcustom nnmail-split-methods '(("mail.misc" "")) ! "Incoming mail will be split according to this variable. If you'd like, for instance, one mail group for mail from the \"4ad-l\" mailing list, one group for junk mail and one for everything *************** *** 56,90 **** The last element should always have \"\" as the regexp. ! This variable can also have a function as its value.") ;; Suggested by Erik Selberg . ! (defvar nnmail-crosspost t ! "*If non-nil, do crossposting if several split methods match the mail. ! If nil, the first match found will be used.") ;; Added by gord@enci.ucalgary.ca (Gordon Matzigkeit). ! (defvar nnmail-keep-last-article nil ! "*If non-nil, nnmail will never delete the last expired article in a directory. You may need to set this variable if other programs are putting ! new mail into folder numbers that Gnus has marked as expired.") ! (defvar nnmail-use-long-file-names nil ! "*If non-nil the mail backends will use long file and directory names. If nil, groups like \"mail.misc\" will end up in directories like ! \"mail/misc/\".") ! ! (defvar nnmail-default-file-modes 384 ! "Set the mode bits of all new mail files to this integer.") ! (defvar nnmail-expiry-wait 7 "*Expirable articles that are older than this will be expired. This variable can either be a number (which will be interpreted as a number of days) -- this doesn't have to be an integer. This variable ! can also be `immediate' and `never'.") ! (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 --- 61,111 ---- The last element should always have \"\" as the regexp. ! This variable can also have a function as its value." ! :group 'gnus-mail ! :type '(choice (repeat :tag "Alist" (group (string :tag "Name") regexp)) ! (function-item nnmail-split-fancy) ! (function :tag "Other"))) ;; Suggested by Erik Selberg . ! (defcustom nnmail-crosspost t ! "If non-nil, do crossposting if several split methods match the mail. ! If nil, the first match found will be used." ! :group 'gnus-mail ! :type 'boolean) ;; Added by gord@enci.ucalgary.ca (Gordon Matzigkeit). ! (defcustom nnmail-keep-last-article nil ! "If non-nil, nnmail will never delete the last expired article in a directory. You may need to set this variable if other programs are putting ! new mail into folder numbers that Gnus has marked as expired." ! :group 'gnus-mail ! :type 'boolean) ! (defcustom nnmail-use-long-file-names nil ! "If non-nil the mail backends will use long file and directory names. If nil, groups like \"mail.misc\" will end up in directories like ! \"mail/misc/\"." ! :group 'gnus-mail ! :type 'boolean) ! ! (defcustom nnmail-default-file-modes 384 ! "Set the mode bits of all new mail files to this integer." ! :group 'gnus-mail ! :type 'integer) ! (defcustom nnmail-expiry-wait 7 "*Expirable articles that are older than this will be expired. This variable can either be a number (which will be interpreted as a number of days) -- this doesn't have to be an integer. This variable ! can also be `immediate' and `never'." ! :group 'gnus-mail ! :type '(choice (const immediate) ! (integer :tag "days") ! (const never))) ! (defcustom 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 *************** *** 92,105 **** Eg.: ! (setq nnmail-expiry-wait-function (lambda (newsgroup) (cond ((string-match \"private\" newsgroup) 31) ((string-match \"junk\" newsgroup) 1) ((string-match \"important\" newsgroup) 'never) ! (t 7))))") ! (defvar nnmail-spool-file (or (getenv "MAIL") (concat "/usr/spool/mail/" (user-login-name))) "Where the mail backends will look for incoming mail. --- 113,129 ---- Eg.: ! \(setq nnmail-expiry-wait-function (lambda (newsgroup) (cond ((string-match \"private\" newsgroup) 31) ((string-match \"junk\" newsgroup) 1) ((string-match \"important\" newsgroup) 'never) ! (t 7))))" ! :group 'gnus-mail ! :type '(choice (const :tag "nnmail-expiry-wait" nil) ! (function :format "%v" nnmail-))) ! (defcustom nnmail-spool-file (or (getenv "MAIL") (concat "/usr/spool/mail/" (user-login-name))) "Where the mail backends will look for incoming mail. *************** *** 108,156 **** If this variable is a list, all files mentioned in this list will be used as incoming mailboxes. If this variable is a directory (i. e., it's name ends with a \"/\"), ! treat all files in that directory as incoming spool files.") ! (defvar nnmail-crash-box "~/.gnus-crash-box" ! "*File where Gnus will store mail while processing it.") ! ! (defvar nnmail-use-procmail nil "*If non-nil, the mail backends will look in `nnmail-procmail-directory' for spool files. ! The file(s) in `nnmail-spool-file' will also be read.") ! (defvar nnmail-procmail-directory "~/incoming/" "*When using procmail (and the like), incoming mail is put in this directory. ! The Gnus mail backends will read the mail from this directory.") ! (defvar nnmail-procmail-suffix "\\.spool" "*Suffix of files created by procmail (and the like). This variable might be a suffix-regexp to match the suffixes of ! several files - eg. \".spool[0-9]*\".") ! ! (defvar nnmail-resplit-incoming nil ! "*If non-nil, re-split incoming procmail sorted mail.") ! (defvar nnmail-delete-file-function 'delete-file ! "Function called to delete files in some mail backends.") ! ! (defvar nnmail-crosspost-link-function 'add-name-to-file "Function called to create a copy of a file. This is `add-name-to-file' by default, which means that crossposts will use hard links. If your file system doesn't allow hard ! links, you could set this variable to `copy-file' instead.") ! (defvar nnmail-movemail-program "movemail" "*A command to be executed to move mail from the inbox. The default is \"movemail\". This can also be a function. In that case, the function will be called with two parameters -- the name of the INBOX file, and the file ! to be moved to.") ! ! (defvar nnmail-pop-password-required nil ! "*Non-nil if a password is required when reading mail using POP.") ! ! (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 something like \"/usr/spool/mail/$user\") to the user's home directory. This hook is called after the incoming mail box has been --- 132,205 ---- If this variable is a list, all files mentioned in this list will be used as incoming mailboxes. If this variable is a directory (i. e., it's name ends with a \"/\"), ! treat all files in that directory as incoming spool files." ! :group 'gnus-mail ! :type 'file) ! ! (defcustom nnmail-crash-box "~/.gnus-crash-box" ! "File where Gnus will store mail while processing it." ! :group 'gnus-mail ! :type 'file) ! (defcustom nnmail-use-procmail nil "*If non-nil, the mail backends will look in `nnmail-procmail-directory' for spool files. ! The file(s) in `nnmail-spool-file' will also be read." ! :group 'gnus-mail ! :type 'boolean) ! (defcustom nnmail-procmail-directory "~/incoming/" "*When using procmail (and the like), incoming mail is put in this directory. ! The Gnus mail backends will read the mail from this directory." ! :group 'gnus-mail ! :type 'directory) ! (defcustom nnmail-procmail-suffix "\\.spool" "*Suffix of files created by procmail (and the like). This variable might be a suffix-regexp to match the suffixes of ! several files - eg. \".spool[0-9]*\"." ! :group 'gnus-mail ! :type 'regexp) ! ! (defcustom nnmail-resplit-incoming nil ! "*If non-nil, re-split incoming procmail sorted mail." ! :group 'gnus-mail ! :type 'boolean) ! ! (defcustom nnmail-delete-file-function 'delete-file ! "Function called to delete files in some mail backends." ! :group 'gnus-mail ! :type 'function) ! (defcustom nnmail-crosspost-link-function 'add-name-to-file "Function called to create a copy of a file. This is `add-name-to-file' by default, which means that crossposts will use hard links. If your file system doesn't allow hard ! links, you could set this variable to `copy-file' instead." ! :group 'gnus-mail ! :type '(radio (function-item add-name-to-file) ! (function-item copy-file) ! (function :tag "Other"))) ! (defcustom nnmail-movemail-program "movemail" "*A command to be executed to move mail from the inbox. The default is \"movemail\". This can also be a function. In that case, the function will be called with two parameters -- the name of the INBOX file, and the file ! to be moved to." ! :group 'gnus-mail ! :type 'string) ! ! (defcustom nnmail-pop-password-required nil ! "*Non-nil if a password is required when reading mail using POP." ! :group 'gnus-mail ! :type 'boolean) ! ! (defcustom nnmail-read-incoming-hook ! (if (eq system-type 'windows-nt) ! '(nnheader-ms-strip-cr) ! 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 something like \"/usr/spool/mail/$user\") to the user's home directory. This hook is called after the incoming mail box has been *************** *** 174,224 **** ;; Update the displayed time, since that will clear out ;; the flag that says you have mail. (when (eq (process-status \"display-time\") 'run) ! (display-time-filter display-time-process \"\"))))") ! ! (when (eq system-type 'windows-nt) ! (add-hook 'nnmail-prepare-incoming-hook 'nnheader-ms-strip-cr)) ;; Suggested by Erik Selberg . ! (defvar nnmail-prepare-incoming-hook nil ! "*Hook called before treating incoming mail. ! The hook is run in a buffer with all the new, incoming mail.") ! (defvar nnmail-prepare-incoming-header-hook nil ! "*Hook called narrowed to the headers of each message. This can be used to remove excessive spaces (and stuff like ! that) from the headers before splitting and saving the messages.") ! ! (defvar nnmail-prepare-incoming-message-hook nil ! "*Hook called narrowed to each message.") ! (defvar nnmail-list-identifiers nil "Regexp that match list identifiers to be removed. ! This can also be a list of regexps.") ! ! (defvar nnmail-pre-get-new-mail-hook nil ! "Hook called just before starting to handle new incoming mail.") ! (defvar nnmail-post-get-new-mail-hook nil ! "Hook called just after finishing handling new incoming mail.") ! ! (defvar nnmail-split-hook nil "Hook called before deciding where to split an article. The functions in this hook are free to modify the buffer contents in any way they choose -- the buffer contents are ! discarded after running the split process.") ;; Suggested by Mejia Pablo J . ! (defvar nnmail-tmp-directory nil ! "*If non-nil, use this directory for temporary storage when reading incoming mail.") ! (defvar nnmail-large-newsgroup 50 "*The number of the articles which indicates a large newsgroup. If the number of the articles is greater than the value, verbose ! messages will be shown to indicate the current status.") ! (defvar nnmail-split-fancy "mail.misc" ! "*Incoming mail can be split according to this fancy variable. To enable this, set `nnmail-split-methods' to `nnmail-split-fancy'. The format is this variable is SPLIT, where SPLIT can be one of --- 223,292 ---- ;; Update the displayed time, since that will clear out ;; the flag that says you have mail. (when (eq (process-status \"display-time\") 'run) ! (display-time-filter display-time-process \"\"))))" ! :group 'gnus-mail ! :type 'hook) ;; Suggested by Erik Selberg . ! (defcustom nnmail-prepare-incoming-hook nil ! "Hook called before treating incoming mail. ! The hook is run in a buffer with all the new, incoming mail." ! :group 'gnus-mail ! :type 'hook) ! (defcustom nnmail-prepare-incoming-header-hook nil ! "Hook called narrowed to the headers of each message. This can be used to remove excessive spaces (and stuff like ! that) from the headers before splitting and saving the messages." ! :group 'gnus-mail ! :type 'hook) ! ! (defcustom nnmail-prepare-incoming-message-hook nil ! "Hook called narrowed to each message." ! :group 'gnus-mail ! :type 'hook) ! (defcustom nnmail-list-identifiers nil "Regexp that match list identifiers to be removed. ! This can also be a list of regexps." ! :group 'gnus-mail ! :type '(choice regexp ! (repeat regexp))) ! ! (defcustom nnmail-pre-get-new-mail-hook nil ! "Hook called just before starting to handle new incoming mail." ! :group 'gnus-mail ! :type 'hook) ! ! (defcustom nnmail-post-get-new-mail-hook nil ! "Hook called just after finishing handling new incoming mail." ! :group 'gnus-mail ! :type 'hook) ! (defcustom nnmail-split-hook nil "Hook called before deciding where to split an article. The functions in this hook are free to modify the buffer contents in any way they choose -- the buffer contents are ! discarded after running the split process." ! :group 'gnus-mail ! :type 'hook) ;; Suggested by Mejia Pablo J . ! (defcustom nnmail-tmp-directory nil ! "*If non-nil, use this directory for temporary storage when reading incoming mail." ! :group 'gnus-mail ! :type '(choice (const :tag "default" nil) ! (directory :format "%v"))) ! (defcustom nnmail-large-newsgroup 50 "*The number of the articles which indicates a large newsgroup. If the number of the articles is greater than the value, verbose ! messages will be shown to indicate the current status." ! :group 'gnus-mail ! :type 'integer) ! (defcustom nnmail-split-fancy "mail.misc" ! "Incoming mail can be split according to this fancy variable. To enable this, set `nnmail-split-methods' to `nnmail-split-fancy'. The format is this variable is SPLIT, where SPLIT can be one of *************** *** 269,293 **** ;; People... (any \"larsi@ifi\\\\.uio\\\\.no\" \"people.Lars Magne Ingebrigtsen\")) ;; Unmatched mail goes to the catch all group. ! \"misc.misc\"))") ! (defvar nnmail-split-abbrev-alist '((any . "from\\|to\\|cc\\|sender\\|apparently-to\\|resent-from\\|resent-to\\|resent-cc") (mail . "mailer-daemon\\|postmaster\\|uucp")) ! "*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.") ! (defvar nnmail-message-id-cache-length 1000 "*The approximate number of Message-IDs nnmail will keep in its cache. If this variable is nil, no checking on duplicate messages will be ! performed.") ! ! (defvar nnmail-message-id-cache-file "~/.nnmail-cache" ! "*The file name of the nnmail Message-ID cache.") ! (defvar nnmail-treat-duplicates 'warn "*If non-nil, nnmail keep a cache of Message-IDs to discover mail duplicates. Three values are legal: nil, which means that nnmail is not to keep a Message-ID cache; `warn', which means that nnmail should insert extra --- 337,374 ---- ;; People... (any \"larsi@ifi\\\\.uio\\\\.no\" \"people.Lars Magne Ingebrigtsen\")) ;; Unmatched mail goes to the catch all group. ! \"misc.misc\"))" ! :group 'gnus-mail ! ;; Sigh! ! :type 'sexp) ! (defcustom nnmail-split-abbrev-alist '((any . "from\\|to\\|cc\\|sender\\|apparently-to\\|resent-from\\|resent-to\\|resent-cc") (mail . "mailer-daemon\\|postmaster\\|uucp")) ! "Alist of abbreviations allowed in `nnmail-split-fancy'." ! :group 'gnus-mail ! :type '(repeat (cons :format "%v" symbol regexp))) ! ! (defcustom nnmail-delete-incoming nil ! "*If non-nil, the mail backends will delete incoming files after ! splitting." ! :group 'gnus-mail ! :type 'boolean) ! (defcustom nnmail-message-id-cache-length 1000 "*The approximate number of Message-IDs nnmail will keep in its cache. If this variable is nil, no checking on duplicate messages will be ! performed." ! :group 'gnus-mail ! :type '(choice (const :tag "disable" nil) ! (integer :format "%v"))) ! ! (defcustom nnmail-message-id-cache-file "~/.nnmail-cache" ! "*The file name of the nnmail Message-ID cache." ! :group 'gnus-mail ! :type 'file) ! (defcustom nnmail-treat-duplicates 'warn "*If non-nil, nnmail keep a cache of Message-IDs to discover mail duplicates. Three values are legal: nil, which means that nnmail is not to keep a Message-ID cache; `warn', which means that nnmail should insert extra *************** *** 296,302 **** This variable can also be a function. It will be called from a buffer narrowed to the article in question with the Message-ID as a ! parameter. It should return nil, `warn' or `delete'.") ;;; Internal variables. --- 377,387 ---- This variable can also be a function. It will be called from a buffer narrowed to the article in question with the Message-ID as a ! parameter. It should return nil, `warn' or `delete'." ! :group 'gnus-mail ! :type '(choice (const :tag "off" nil) ! (const warn) ! (const delete))) ;;; Internal variables. *** pub/rgnus/lisp/ChangeLog Sat Nov 16 19:19:41 1996 --- rgnus/lisp/ChangeLog Mon Nov 18 22:25:37 1996 *************** *** 1,3 **** --- 1,77 ---- + Mon Nov 18 21:42:40 1996 Loren Schall + + * gnus-sum.el (gnus-summary-insert-line): Pick apart the From + header in reversed order. + + Mon Nov 18 02:00:33 1996 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-refer-references): Protect against nil + References. + + * gnus-score.el (gnus-all-score-files): Remove duplicate score + files from the end first. + + * gnus-start.el (gnus-after-getting-new-news-hook, + gnus-get-new-news-hook): Switched defaults. + + * gnus-score.el (gnus-all-score-files): Returned score files in + reverse order. + + * gnus-util.el (gnus-make-directory): Protect against nil dirs. + + * gnus-art.el (gnus-decode-encoded-word-method): Default to + 'gnus-article-de-quoted-unreadable. + + * gnus.el (gnus-read-group): Prohibit : in group name. + (gnus-article-display-hook): Removed + `gnus-article-de-quoted-unreadable'. + + * article.el (gnus-emphasis-alist): Accept "-" as word marker. + + * messagexmas.el (message-xmas-dont-activate-region): Changed + default to t. + + Sun Nov 17 01:09:21 1996 Per Abrahamsen + + * message.el: Added customize support. + + Sun Nov 17 23:42:03 1996 Raja R. Harinath + + * gnus-gl.el (bbb-extract-token-number): Fix. + + Sun Nov 17 12:18:27 1996 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-next-article): Use it. + (gnus-group-make-articles-read): Quote undo forms. + (gnus-update-read-articles): Ditto. + + * gnus.el (gnus-key-press-event-p): New alias. + + Sat Nov 16 22:05:24 1996 Steven L Baur + + * gnus-sum.el (gnus-summary-next-article): XEmacs doesn't use + integers for keyboard events. + + Sun Nov 17 12:09:44 1996 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-set-timestamp): Protect against nil + gnus-newsgroup-name. + + Sun Nov 17 01:09:21 1996 Per Abrahamsen + + * nnmail.el: Added customize support. + + Sat Nov 16 22:59:47 1996 Lars Magne Ingebrigtsen + + * gnus.el (gnus-summary-line-format): Dox fix. + + * nnfolder.el (nnfolder-save-mail): Would insert extra newline at + the start. + + Sat Nov 16 19:43:22 1996 Lars Magne Ingebrigtsen + + * gnus.el: Red Gnus v0.63 is released. + Sat Nov 16 11:32:43 1996 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-next-article): Ignore non-keyboard *** pub/rgnus/texi/gnus.texi Sat Nov 16 19:42:03 1996 --- rgnus/texi/gnus.texi Mon Nov 18 22:32:09 1996 *************** *** 1,7 **** \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Red Gnus 0.63 Manual @synindex fn cp @synindex vr cp @synindex pg cp --- 1,7 ---- \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Red Gnus 0.64 Manual @synindex fn cp @synindex vr cp @synindex pg cp *************** *** 287,293 **** @tex @titlepage ! @title Red Gnus 0.63 Manual @author by Lars Magne Ingebrigtsen @page --- 287,293 ---- @tex @titlepage ! @title Red Gnus 0.64 Manual @author by Lars Magne Ingebrigtsen @page *************** *** 323,329 **** spool or your mbox file. All at the same time, if you want to push your luck. ! This manual corresponds to Red Gnus 0.63 @end ifinfo --- 323,329 ---- spool or your mbox file. All at the same time, if you want to push your luck. ! This manual corresponds to Red Gnus 0.64 @end ifinfo