*** pub/qgnus/lisp/gnus-agent.el Sun Sep 21 23:59:20 1997 --- qgnus/lisp/gnus-agent.el Sat Oct 4 01:03:19 1997 *************** *** 62,70 **** (defvar gnus-agent-file-name nil) (defvar gnus-agent-send-mail-function nil) - (defvar gnus-plugged t - "Whether Gnus is plugged or not.") - ;; Dynamic variables (defvar gnus-headers) (defvar gnus-score) --- 62,67 ---- *************** *** 118,123 **** --- 115,147 ---- "The full path of the Gnus agent library FILE." (concat (gnus-agent-directory) "agent.lib/" file)) + ;;; Fetching setup functions. + + (defun gnus-agent-start-fetch () + "Initialize data structures for efficient fetching." + (gnus-agent-open-history) + (setq gnus-agent-current-history (gnus-agent-history-buffer))) + + (defun gnus-agent-stop-fetch () + "Save all data structures and clean up." + (gnus-agent-save-history) + (gnus-agent-close-history) + (setq gnus-agent-spam-hashtb nil) + (save-excursion + (set-buffer nntp-server-buffer) + (widen))) + + (defmacro gnus-agent-with-fetch (&rest forms) + "Do FORMS safely." + `(unwind-protect + (progn + (gnus-agent-start-fetch) + ,@forms) + (gnus-agent-stop-fetch))) + + (put 'gnus-agent-with-fetch 'lisp-indent-function 0) + (put 'gnus-agent-with-fetch 'edebug-form-spec '(body)) + ;;; ;;; Mode infestation ;;; *************** *** 521,551 **** ;;; ;;; Fetching ;;; - - (defun gnus-agent-start-fetch () - "Initialize data structures for efficient fetching." - (gnus-agent-open-history) - (setq gnus-agent-current-history (gnus-agent-history-buffer))) - - (defun gnus-agent-stop-fetch () - "Save all data structures and clean up." - (gnus-agent-save-history) - (gnus-agent-close-history) - (setq gnus-agent-spam-hashtb nil) - (save-excursion - (set-buffer nntp-server-buffer) - (widen))) - - (defmacro gnus-agent-with-fetch (&rest forms) - "Do FORMS safely." - `(unwind-protect - (progn - (gnus-agent-start-fetch) - ,@forms) - (gnus-agent-stop-fetch))) - - (put 'gnus-agent-with-fetch 'lisp-indent-function 0) - (put 'gnus-agent-with-fetch 'edebug-form-spec '(body)) (defun gnus-agent-fetch-articles (group articles) "Fetch ARTICLES from GROUP and put them into the agent." --- 545,550 ---- *** pub/qgnus/lisp/gnus-art.el Sat Sep 27 05:18:44 1997 --- qgnus/lisp/gnus-art.el Sat Oct 4 01:03:21 1997 *************** *** 95,101 **** "^Date-Received:" "^References:" "^Control:" "^Xref:" "^Lines:" "^Posted:" "^Relay-Version:" "^Message-ID:" "^Nf-ID:" "^Nf-From:" "^Approved:" "^Sender:" "^Received:" "^Mail-from:") ! "All headers that match this regexp will be hidden. This variable can also be a list of regexps of headers to be ignored. If `gnus-visible-headers' is non-nil, this variable will be ignored." :type '(choice :custom-show nil --- 95,101 ---- "^Date-Received:" "^References:" "^Control:" "^Xref:" "^Lines:" "^Posted:" "^Relay-Version:" "^Message-ID:" "^Nf-ID:" "^Nf-From:" "^Approved:" "^Sender:" "^Received:" "^Mail-from:") ! "All headers that start with this regexp will be hidden. This variable can also be a list of regexps of headers to be ignored. If `gnus-visible-headers' is non-nil, this variable will be ignored." :type '(choice :custom-show nil *************** *** 1953,1961 **** (progn (save-excursion (set-buffer summary-buffer) (setq gnus-last-article gnus-current-article - gnus-newsgroup-history (cons gnus-current-article - gnus-newsgroup-history) gnus-current-article 0 gnus-current-headers nil gnus-article-current nil) --- 1953,1960 ---- (progn (save-excursion (set-buffer summary-buffer) + (push article gnus-newsgroup-history) (setq gnus-last-article gnus-current-article gnus-current-article 0 gnus-current-headers nil gnus-article-current nil) *************** *** 1973,1981 **** ;; `gnus-current-article' must be an article number. (save-excursion (set-buffer summary-buffer) (setq gnus-last-article gnus-current-article - gnus-newsgroup-history (cons gnus-current-article - gnus-newsgroup-history) gnus-current-article article gnus-current-headers (gnus-summary-article-header gnus-current-article) --- 1972,1979 ---- ;; `gnus-current-article' must be an article number. (save-excursion (set-buffer summary-buffer) + (push article gnus-newsgroup-history) (setq gnus-last-article gnus-current-article gnus-current-article article gnus-current-headers (gnus-summary-article-header gnus-current-article) *** pub/qgnus/lisp/gnus-cache.el Sat Sep 13 15:43:22 1997 --- qgnus/lisp/gnus-cache.el Sat Oct 4 01:03:21 1997 *************** *** 362,370 **** (let ((cached gnus-newsgroup-cached) (gnus-verbose (max 6 gnus-verbose))) (unless cached ! (error "No cached articles for this group")) (while cached (gnus-summary-goto-subject (pop cached) t)))) ;;; Internal functions. --- 362,373 ---- (let ((cached gnus-newsgroup-cached) (gnus-verbose (max 6 gnus-verbose))) (unless cached ! (gnus-message 3 "No cached articles for this group")) (while cached (gnus-summary-goto-subject (pop cached) t)))) + + (defalias 'gnus-summary-limit-include-cached + 'gnus-summary-insert-cached-articles) ;;; Internal functions. *** pub/qgnus/lisp/gnus-demon.el Sat Sep 13 21:56:42 1997 --- qgnus/lisp/gnus-demon.el Sat Oct 4 01:03:22 1997 *************** *** 30,35 **** --- 30,36 ---- (require 'gnus) (require 'gnus-int) (require 'nnheader) + (require 'nntp) (eval-and-compile (if (string-match "XEmacs" (emacs-version)) (require 'itimer) *************** *** 259,264 **** --- 260,277 ---- (save-window-excursion (gnus-close-backends))) + (defun gnus-demon-add-nntp-close-connection () + "Add daemonic nntp server disconnection to Gnus. + If no commands have gone out via nntp during the last five + minutes, the connection is closed." + (gnus-demon-add-handler 'gnus-demon-close-connections 5 nil)) + + (defun gnus-demon-nntp-close-connection () + (save-window-excursion + (when (nnmail-time-less '(0 300) + (nnmail-time-since nntp-last-command-time)) + (nntp-close-server)))) + (defun gnus-demon-add-scanmail () "Add daemonic scanning of mail from the mail backends." (gnus-demon-add-handler 'gnus-demon-scan-mail 120 60)) *************** *** 278,288 **** (gnus-demon-add-handler 'gnus-demon-scan-news 120 60)) (defun gnus-demon-scan-news () ! (save-window-excursion ! (when (gnus-alive-p) ! (save-excursion ! (set-buffer gnus-group-buffer) ! (gnus-group-get-new-news))))) (defun gnus-demon-add-scan-timestamps () "Add daemonic updating of timestamps in empty newgroups." --- 291,305 ---- (gnus-demon-add-handler 'gnus-demon-scan-news 120 60)) (defun gnus-demon-scan-news () ! (let ((win (current-window-configuration))) ! (unwind-protect ! (save-window-excursion ! (save-excursion ! (when (gnus-alive-p) ! (save-excursion ! (set-buffer gnus-group-buffer) ! (gnus-group-get-new-news))))) ! (set-window-configuration win)))) (defun gnus-demon-add-scan-timestamps () "Add daemonic updating of timestamps in empty newgroups." *** pub/qgnus/lisp/gnus-group.el Sun Sep 21 23:59:22 1997 --- qgnus/lisp/gnus-group.el Sat Oct 4 01:03:23 1997 *************** *** 1558,1564 **** Returns whether the fetching was successful or not." (interactive "sGroup name: ") (unless (get-buffer gnus-group-buffer) ! (gnus)) (gnus-group-read-group nil nil group)) (defvar gnus-ephemeral-group-server 0) --- 1558,1564 ---- Returns whether the fetching was successful or not." (interactive "sGroup name: ") (unless (get-buffer gnus-group-buffer) ! (gnus-no-server)) (gnus-group-read-group nil nil group)) (defvar gnus-ephemeral-group-server 0) *** pub/qgnus/lisp/gnus-int.el Sun Sep 14 21:25:47 1997 --- qgnus/lisp/gnus-int.el Sat Oct 4 01:03:24 1997 *************** *** 361,372 **** (defun gnus-request-scan (group gnus-command-method) "Request a SCAN being performed in GROUP from GNUS-COMMAND-METHOD. If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned." ! (let ((gnus-command-method ! (if group (gnus-find-method-for-group group) gnus-command-method)) ! (gnus-inhibit-demon t)) ! (funcall (gnus-get-function gnus-command-method 'request-scan) ! (and group (gnus-group-real-name group)) ! (nth 1 gnus-command-method)))) (defsubst gnus-request-update-info (info gnus-command-method) "Request that GNUS-COMMAND-METHOD update INFO." --- 361,373 ---- (defun gnus-request-scan (group gnus-command-method) "Request a SCAN being performed in GROUP from GNUS-COMMAND-METHOD. If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned." ! (when gnus-plugged ! (let ((gnus-command-method ! (if group (gnus-find-method-for-group group) gnus-command-method)) ! (gnus-inhibit-demon t)) ! (funcall (gnus-get-function gnus-command-method 'request-scan) ! (and group (gnus-group-real-name group)) ! (nth 1 gnus-command-method))))) (defsubst gnus-request-update-info (info gnus-command-method) "Request that GNUS-COMMAND-METHOD update INFO." *** pub/qgnus/lisp/gnus-msg.el Sat Sep 27 05:18:45 1997 --- qgnus/lisp/gnus-msg.el Sat Oct 4 01:03:25 1997 *************** *** 981,988 **** "Insert the Gcc to say where the article is to be archived." (let* ((var gnus-message-archive-group) (group (or group gnus-newsgroup-name "")) ! result ! gcc-self-val (groups (cond ((null gnus-message-archive-method) --- 981,992 ---- "Insert the Gcc to say where the article is to be archived." (let* ((var gnus-message-archive-group) (group (or group gnus-newsgroup-name "")) ! (gcc-self-val ! (and gnus-newsgroup-name ! (setq gcc-self-val ! (gnus-group-find-parameter ! gnus-newsgroup-name 'gcc-self)))) ! result (groups (cond ((null gnus-message-archive-method) *************** *** 1018,1024 **** (setq var (cdr var))) result))) name) ! (when groups (when (stringp groups) (setq groups (list groups))) (save-excursion --- 1022,1028 ---- (setq var (cdr var))) result))) name) ! (when (or groups gcc-self-val) (when (stringp groups) (setq groups (list groups))) (save-excursion *************** *** 1026,1035 **** (message-narrow-to-headers) (goto-char (point-max)) (insert "Gcc: ") ! (if (and gnus-newsgroup-name ! (setq gcc-self-val ! (gnus-group-find-parameter ! gnus-newsgroup-name 'gcc-self))) (progn (insert (if (stringp gcc-self-val) --- 1030,1037 ---- (message-narrow-to-headers) (goto-char (point-max)) (insert "Gcc: ") ! (if gcc-self-val ! ;; Use the `gcc-self' param value instead. (progn (insert (if (stringp gcc-self-val) *************** *** 1040,1045 **** --- 1042,1048 ---- (progn (beginning-of-line) (kill-line)))) + ;; Use the list of groups. (while (setq name (pop groups)) (insert (if (string-match ":" name) name *** pub/qgnus/lisp/gnus-salt.el Sat Sep 13 21:56:44 1997 --- qgnus/lisp/gnus-salt.el Sat Oct 4 01:03:26 1997 *************** *** 203,209 **** (start-line (1+ (count-lines 1 start-point))) (start-window (posn-window start-posn)) (start-frame (window-frame start-window)) ! (bounds (window-edges start-window)) (top (nth 1 bounds)) (bottom (if (window-minibuffer-p start-window) (nth 3 bounds) --- 203,209 ---- (start-line (1+ (count-lines 1 start-point))) (start-window (posn-window start-posn)) (start-frame (window-frame start-window)) ! (bounds (gnus-window-edges start-window)) (top (nth 1 bounds)) (bottom (if (window-minibuffer-p start-window) (nth 3 bounds) *** pub/qgnus/lisp/gnus-score.el Sat Sep 27 05:18:46 1997 --- qgnus/lisp/gnus-score.el Sat Oct 4 01:03:27 1997 *************** *** 1019,1025 **** (gnus-make-directory (file-name-directory file)) (setq gnus-score-edit-buffer (find-file-noselect file)) (gnus-configure-windows 'edit-score) - (select-window (get-buffer-window gnus-score-edit-buffer)) (gnus-score-mode) (setq gnus-score-edit-exit-function 'gnus-score-edit-done) (make-local-variable 'gnus-prev-winconf) --- 1019,1024 ---- *** pub/qgnus/lisp/gnus-sum.el Sat Sep 27 05:18:47 1997 --- qgnus/lisp/gnus-sum.el Sat Oct 4 01:03:30 1997 *************** *** 33,38 **** --- 33,39 ---- (require 'gnus-range) (require 'gnus-int) (require 'gnus-undo) + (autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t) (defcustom gnus-kill-summary-on-exit t "*If non-nil, kill the summary buffer when you exit from it. *************** *** 1248,1253 **** --- 1249,1255 ---- "u" gnus-summary-limit-to-unread "m" gnus-summary-limit-to-marks "v" gnus-summary-limit-to-score + "*" gnus-summary-limit-include-cached "D" gnus-summary-limit-include-dormant "T" gnus-summary-limit-include-thread "d" gnus-summary-limit-exclude-dormant *************** *** 4408,4414 **** (let ((num (ignore-errors (read buffer)))) (if (numberp num) num 0))) (unless (eobp) ! (forward-char 1)))) (defmacro gnus-nov-skip-field () '(search-forward "\t" eol 'move)) --- 4410,4416 ---- (let ((num (ignore-errors (read buffer)))) (if (numberp num) num 0))) (unless (eobp) ! (search-forward "\t" eol 'move)))) (defmacro gnus-nov-skip-field () '(search-forward "\t" eol 'move)) *************** *** 5824,5830 **** (setq gnus-newsgroup-history (cdr (setq to (nthcdr number gnus-newsgroup-history)))) (if to ! (gnus-summary-goto-article (car to)) (error "Article history empty"))) (gnus-summary-position-point)) --- 5826,5832 ---- (setq gnus-newsgroup-history (cdr (setq to (nthcdr number gnus-newsgroup-history)))) (if to ! (gnus-summary-goto-article (car to) nil t) (error "Article history empty"))) (gnus-summary-position-point)) *************** *** 7603,7610 **** (defun gnus-summary-mark-article-as-unread (mark) "Mark the current article quickly as unread with MARK." (let ((article (gnus-summary-article-number))) ! (if (< article 0) ! (gnus-error 1 "Unmarkable article") (setq gnus-newsgroup-marked (delq article gnus-newsgroup-marked)) (setq gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant)) (setq gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable)) --- 7605,7612 ---- (defun gnus-summary-mark-article-as-unread (mark) "Mark the current article quickly as unread with MARK." (let ((article (gnus-summary-article-number))) ! (if (<= article 0) ! (gnus-error 1 "Can't mark negative article numbers") (setq gnus-newsgroup-marked (delq article gnus-newsgroup-marked)) (setq gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant)) (setq gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable)) *************** *** 7740,7758 **** gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable) gnus-newsgroup-unreads (delq article gnus-newsgroup-unreads)) ! ;; Unsuppress duplicates? ! (when gnus-suppress-duplicates ! (gnus-dup-unsuppress-article article)) ! (cond ((= mark gnus-ticked-mark) ! (push article gnus-newsgroup-marked)) ! ((= mark gnus-dormant-mark) ! (push article gnus-newsgroup-dormant)) ! (t ! (push article gnus-newsgroup-unreads))) ! (setq gnus-newsgroup-reads ! (delq (assq article gnus-newsgroup-reads) ! gnus-newsgroup-reads)))) (defalias 'gnus-summary-mark-as-unread-forward 'gnus-summary-tick-article-forward) --- 7742,7765 ---- gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable) gnus-newsgroup-unreads (delq article gnus-newsgroup-unreads)) ! (if (<= article 0) ! (progn ! (gnus-error 1 "Can't mark negative article numbers") ! nil) ! ;; Unsuppress duplicates? ! (when gnus-suppress-duplicates ! (gnus-dup-unsuppress-article article)) ! (cond ((= mark gnus-ticked-mark) ! (push article gnus-newsgroup-marked)) ! ((= mark gnus-dormant-mark) ! (push article gnus-newsgroup-dormant)) ! (t ! (push article gnus-newsgroup-unreads))) ! (setq gnus-newsgroup-reads ! (delq (assq article gnus-newsgroup-reads) ! gnus-newsgroup-reads)) ! t))) (defalias 'gnus-summary-mark-as-unread-forward 'gnus-summary-tick-article-forward) *** pub/qgnus/lisp/gnus-uu.el Sat Sep 13 15:43:23 1997 --- qgnus/lisp/gnus-uu.el Sat Oct 4 01:03:31 1997 *************** *** 634,639 **** --- 634,640 ---- (defun gnus-uu-invert-processable () "Invert the list of process-marked articles." + (interactive) (let ((data gnus-newsgroup-data) d number) (save-excursion *** pub/qgnus/lisp/gnus-xmas.el Sat Sep 27 05:18:48 1997 --- qgnus/lisp/gnus-xmas.el Sat Oct 4 01:03:31 1997 *************** *** 417,422 **** --- 417,423 ---- (fset 'gnus-add-text-properties 'gnus-xmas-add-text-properties) (fset 'gnus-put-text-property 'gnus-xmas-put-text-property) (fset 'gnus-deactivate-mark 'ignore) + (fset 'gnus-window-edges 'window-pixel-edges) (require 'text-props) (if (and (<= emacs-major-version 19) *** pub/qgnus/lisp/gnus.el Sat Sep 27 05:18:49 1997 --- qgnus/lisp/gnus.el Sat Oct 4 01:03:32 1997 *************** *** 244,250 **** :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "0.11" "Version number for this version of Gnus.") (defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number) --- 244,250 ---- :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "0.12" "Version number for this version of Gnus.") (defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number) *************** *** 281,327 **** (defalias 'gnus-mode-line-buffer-identification 'identity) (defalias 'gnus-characterp 'numberp) (defalias 'gnus-deactivate-mark 'deactivate-mark) (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) - "Lookup or create a face with specified attributes." - (let ((name (intern (format "custom-face-%s-%s-%s-%S-%S-%S" - (or fg "default") - (or bg "default") - (or stipple "default") - bold italic underline)))) - (if (and (custom-facep name) - (fboundp 'make-face)) - () - (copy-face 'default name) - (when (and fg - (not (string-equal fg "default"))) - (ignore-errors - (set-face-foreground name fg))) - (when (and bg - (not (string-equal bg "default"))) - (ignore-errors - (set-face-background name bg))) - (when (and stipple - (not (string-equal stipple "default")) - (not (eq stipple 'custom:asis)) - (fboundp 'set-face-stipple)) - (set-face-stipple name stipple)) - (when (and bold - (not (eq bold 'custom:asis))) - (ignore-errors - (make-face-bold name))) - (when (and italic - (not (eq italic 'custom:asis))) - (ignore-errors - (make-face-italic name))) - (when (and underline - (not (eq underline 'custom:asis))) - (ignore-errors - (set-face-underline-p name t)))) - name)) - ;; We define these group faces here to avoid the display ;; update forced when creating new faces. --- 281,289 ---- (defalias 'gnus-mode-line-buffer-identification 'identity) (defalias 'gnus-characterp 'numberp) (defalias 'gnus-deactivate-mark 'deactivate-mark) + (defalias 'gnus-window-edges 'window-edges) (defalias 'gnus-key-press-event-p 'numberp)) ;; We define these group faces here to avoid the display ;; update forced when creating new faces. *************** *** 1396,1401 **** --- 1358,1366 ---- "*Name of the directory articles will be saved in (default \"~/News\")." :group 'gnus-article-saving :type 'directory) + + (defvar gnus-plugged t + "Whether Gnus is plugged or not.") ;;; Internal variables *** pub/qgnus/lisp/message.el Sat Sep 27 05:18:49 1997 --- qgnus/lisp/message.el Sat Oct 4 01:03:33 1997 *************** *** 199,211 **** :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-news :group 'message-headers :type 'regexp) ! (defcustom message-ignored-mail-headers "^Gcc:\\|^Fcc:\\|^Resent-Fcc:" "*Regexp of headers to be removed unconditionally before mailing." :group 'message-mail :group 'message-headers --- 199,211 ---- :type 'sexp) (defcustom message-ignored-news-headers ! "^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:" "*Regexp of headers to be removed unconditionally before posting." :group 'message-news :group 'message-headers :type 'regexp) ! (defcustom message-ignored-mail-headers "^[GF]cc:\\|^Resent-Fcc:" "*Regexp of headers to be removed unconditionally before mailing." :group 'message-mail :group 'message-headers *************** *** 1074,1080 **** (save-excursion (save-restriction (message-narrow-to-headers) ! (message-fetch-field "newsgroups"))))) (defun message-mail-p () "Say whether the current buffer contains a mail message." --- 1074,1081 ---- (save-excursion (save-restriction (message-narrow-to-headers) ! (and (message-fetch-field "newsgroups") ! (not (message-fetch-field "posted-to"))))))) (defun message-mail-p () "Say whether the current buffer contains a mail message." *************** *** 1267,1282 **** facemenu-remove-face-function t) (make-local-variable 'paragraph-separate) (make-local-variable 'paragraph-start) ! (setq paragraph-start (concat (regexp-quote mail-header-separator) ! "$\\|[ \t]*[-_][-_][-_]+$\\|" ! "-- $\\|" ! "[> ]+$\\|" ! paragraph-start)) ! (setq paragraph-separate (concat (regexp-quote mail-header-separator) ! "$\\|[ \t]*[-_][-_][-_]+$\\|" ! "-- $\\|" ! "[> ]+$\\|" ! paragraph-separate)) (make-local-variable 'message-reply-headers) (setq message-reply-headers nil) (make-local-variable 'message-newsreader) --- 1268,1286 ---- facemenu-remove-face-function t) (make-local-variable 'paragraph-separate) (make-local-variable 'paragraph-start) ! (setq paragraph-start ! (concat (regexp-quote mail-header-separator) ! "$\\|[ \t]*[-_][-_][-_]+$\\|" ! "-- $\\|" ! ;;!!! Uhm... shurely this can't be right. ! "[> " (regexp-quote message-yank-prefix) "]+$\\|" ! paragraph-start)) ! (setq paragraph-separate ! (concat (regexp-quote mail-header-separator) ! "$\\|[ \t]*[-_][-_][-_]+$\\|" ! "-- $\\|" ! "[> " (regexp-quote message-yank-prefix) "]+$\\|" ! paragraph-separate)) (make-local-variable 'message-reply-headers) (setq message-reply-headers nil) (make-local-variable 'message-newsreader) *** pub/qgnus/lisp/messcompat.el Sat Sep 13 15:43:23 1997 --- qgnus/lisp/messcompat.el Sat Oct 4 01:03:33 1997 *************** *** 56,63 **** "Normal hook, run each time a new outgoing message is initialized. The function `message-setup' runs this hook.") ! (defvar message-mode-hook mail-mode-hook ! "Hook run in message mode buffers.") (defvar message-indentation-spaces mail-indentation-spaces "*Number of spaces to insert at the beginning of each cited line. --- 56,64 ---- "Normal hook, run each time a new outgoing message is initialized. The function `message-setup' runs this hook.") ! (if (boundp 'mail-mode-hook) ! (defvar message-mode-hook mail-mode-hook ! "Hook run in message mode buffers.")) (defvar message-indentation-spaces mail-indentation-spaces "*Number of spaces to insert at the beginning of each cited line. *** pub/qgnus/lisp/nndraft.el Sun Sep 21 23:59:28 1997 --- qgnus/lisp/nndraft.el Sat Oct 4 01:03:34 1997 *************** *** 125,130 **** --- 125,132 ---- "Request a new buffer that is restored to the state of ARTICLE." (nndraft-possibly-change-group group) (when (nndraft-request-article article group server (current-buffer)) + (message-remove-header "xrefs") + (message-remove-header "lines") (let ((gnus-verbose-backends nil)) (nndraft-request-expire-articles (list article) group server t)) t)) *************** *** 162,170 **** (deffoo nndraft-request-expire-articles (articles group &optional server force) (nndraft-possibly-change-group group) (let* ((nnmh-allow-delete-final t) ! (res (nndraft-execute-nnmh-command ! `(nnmh-request-expire-articles ! ',articles group ,server ,force))) article) ;; Delete all the "state" files of articles that have been expired. (while articles --- 164,171 ---- (deffoo nndraft-request-expire-articles (articles group &optional server force) (nndraft-possibly-change-group group) (let* ((nnmh-allow-delete-final t) ! (res (nnmh-request-expire-articles ! articles group server force)) article) ;; Delete all the "state" files of articles that have been expired. (while articles *************** *** 178,185 **** (deffoo nndraft-request-accept-article (group &optional server last noinsert) (nndraft-possibly-change-group group) (let ((gnus-verbose-backends nil)) ! (nndraft-execute-nnmh-command ! `(nnmh-request-accept-article group ,server ,last noinsert)))) (deffoo nndraft-request-create-group (group &optional server args) (nndraft-possibly-change-group group) --- 179,185 ---- (deffoo nndraft-request-accept-article (group &optional server last noinsert) (nndraft-possibly-change-group group) (let ((gnus-verbose-backends nil)) ! (nnmh-request-accept-article group server last noinsert))) (deffoo nndraft-request-create-group (group &optional server args) (nndraft-possibly-change-group group) *************** *** 199,216 **** (defun nndraft-possibly-change-group (group) (when (and group (not (equal group nndraft-current-group))) (setq nndraft-current-group group) (setq nndraft-current-directory (nnheader-concat nndraft-directory group)))) - - (defun nndraft-execute-nnmh-command (command) - (let* ((dir (directory-file-name - (expand-file-name nndraft-current-directory))) - (group (file-name-nondirectory dir)) - (nnmh-directory (file-name-directory dir)) - (nnmail-keep-last-article nil) - (nnmh-get-new-mail nil)) - (eval command))) (defun nndraft-article-filename (article &rest args) (apply 'concat --- 199,208 ---- (defun nndraft-possibly-change-group (group) (when (and group (not (equal group nndraft-current-group))) + (nndraft-open-server "") (setq nndraft-current-group group) (setq nndraft-current-directory (nnheader-concat nndraft-directory group)))) (defun nndraft-article-filename (article &rest args) (apply 'concat *** pub/qgnus/lisp/nnmail.el Sat Sep 27 05:18:51 1997 --- qgnus/lisp/nnmail.el Sat Oct 4 01:03:35 1997 *************** *** 405,411 **** :group 'nnmail-split :type '(repeat (cons :format "%v" symbol regexp))) ! (defcustom nnmail-delete-incoming t "*If non-nil, the mail backends will delete incoming files after splitting." :group 'nnmail-retrieve --- 405,411 ---- :group 'nnmail-split :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 'nnmail-retrieve *************** *** 1038,1051 **** (funcall exit-func)) (kill-buffer (current-buffer))))) - ;; Mail crossposts suggested by Brian Edmonds . (defun nnmail-article-group (func) "Look at the headers and return an alist of groups that match. FUNC will be called with the group name to determine the article number." (let ((methods nnmail-split-methods) (obuf (current-buffer)) (beg (point-min)) ! end group-art method) (if (and (sequencep methods) (= (length methods) 1)) ;; If there is only just one group to put everything in, we ;; just return a list with just this one method in. --- 1038,1050 ---- (funcall exit-func)) (kill-buffer (current-buffer))))) (defun nnmail-article-group (func) "Look at the headers and return an alist of groups that match. FUNC will be called with the group name to determine the article number." (let ((methods nnmail-split-methods) (obuf (current-buffer)) (beg (point-min)) ! end group-art method regrepp) (if (and (sequencep methods) (= (length methods) 1)) ;; If there is only just one group to put everything in, we ;; just return a list with just this one method in. *************** *** 1092,1112 **** (lambda (group) (cons group (funcall func group))) split)))) ;; Go through the split methods to find a match. ! (while (and methods (or nnmail-crosspost (not group-art))) (goto-char (point-max)) ! (setq method (pop methods)) (if (or methods (not (equal "" (nth 1 method)))) (when (and (ignore-errors (if (stringp (nth 1 method)) ! (re-search-backward (cadr method) nil t) ;; Function to say whether this is a match. (funcall (nth 1 method) (car method)))) ;; Don't enter the article into the same ;; group twice. (not (assoc (car method) group-art))) ! (push (cons (car method) (funcall func (car method))) group-art)) ;; This is the final group, which is used as a ;; catch-all. --- 1091,1121 ---- (lambda (group) (cons group (funcall func group))) split)))) ;; Go through the split methods to find a match. ! (while (and methods ! (or nnmail-crosspost ! (not group-art))) (goto-char (point-max)) ! (setq method (pop methods) ! regrepp nil) (if (or methods (not (equal "" (nth 1 method)))) (when (and (ignore-errors (if (stringp (nth 1 method)) ! (progn ! (setq regrepp ! (string-match "\\\\[0-9&]" (car method))) ! (re-search-backward (cadr method) nil t)) ;; Function to say whether this is a match. (funcall (nth 1 method) (car method)))) ;; Don't enter the article into the same ;; group twice. (not (assoc (car method) group-art))) ! (push (cons (if regrepp ! (replace-match ! (car method) nil nil (car method)) ! (car method)) ! (funcall func (car method))) group-art)) ;; This is the final group, which is used as a ;; catch-all. *** pub/qgnus/lisp/nnmh.el Sat Sep 20 23:33:32 1997 --- qgnus/lisp/nnmh.el Sat Oct 4 01:03:35 1997 *************** *** 145,150 **** --- 145,151 ---- (string-to-int (file-name-nondirectory file))))) (deffoo nnmh-request-group (group &optional server dont-check) + (nnmh-possibly-change-directory group server) (let ((pathname (nnmail-group-pathname group nnmh-directory)) (pathname-coding-system 'binary) dir) *** pub/qgnus/lisp/nntp.el Sat Sep 27 05:18:52 1997 --- qgnus/lisp/nntp.el Sat Oct 4 01:03:36 1997 *************** *** 168,173 **** --- 168,174 ---- (defvar nntp-process-decode nil) (defvar nntp-process-start-point nil) (defvar nntp-inside-change-function nil) + (defvoo nntp-last-command-time nil) (defvar nntp-connection-list nil) *************** *** 261,266 **** --- 262,268 ---- (defsubst nntp-retrieve-data (command address port buffer &optional wait-for callback decode) "Use COMMAND to retrieve data into BUFFER from PORT on ADDRESS." + (setq nntp-last-command-time (current-time)) (let ((process (or (nntp-find-connection buffer) (nntp-open-connection buffer)))) (if (not process) *************** *** 896,902 **** (insert "\n")) ;; Insert `.' at end of buffer (end of text mark). (goto-char (point-max)) ! (insert "." nntp-end-of-line))) (defun nntp-retrieve-headers-with-xover (articles &optional fetch-old) (set-buffer nntp-server-buffer) --- 898,909 ---- (insert "\n")) ;; Insert `.' at end of buffer (end of text mark). (goto-char (point-max)) ! (insert ".\n") ! (goto-char (point-min)) ! (while (not (eobp)) ! (end-of-line) ! (insert "\r") ! (forward-line 1)))) (defun nntp-retrieve-headers-with-xover (articles &optional fetch-old) (set-buffer nntp-server-buffer) *** pub/qgnus/lisp/ChangeLog Sat Sep 27 05:18:43 1997 --- qgnus/lisp/ChangeLog Sat Oct 4 01:03:19 1997 *************** *** 2,7 **** --- 2,102 ---- * gnus.el: Quassia Gnus v0.1 is released. + Sat Oct 4 00:53:55 1997 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.12 is released. + + Sat Oct 4 00:16:39 1997 Lars Magne Ingebrigtsen + + * nnmail.el (nnmail-delete-incoming): Changed default to nil. + + * gnus-int.el (gnus-request-scan): Don't do anything if + unplugged. + + Fri Oct 3 21:09:19 1997 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-ignored-headers): Doc fix. + + * gnus-demon.el (gnus-demon-add-nntp-close-connection): New + function. + (gnus-demon-nntp-close-connection): Ditto. + + * nntp.el (nntp-last-command-time): New variable. + (nntp-retrieve-data): Use it. + + * message.el (message-news-p): Messages with Posted-To aren't + news. + (message-mode): Heed message-yank-prefix when filling. + + * nndraft.el (nndraft-request-restore-buffer): Remove Xrefs and + Lines headers. + + * nntp.el (nntp-encode-text): Encode according to RFC977. + + Wed Oct 1 18:27:26 1997 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-inews-insert-archive-gcc): gcc-self didn't + work if `gnus-message-archive-method' was nil. + + * nnmail.el (nnmail-article-group): Allow \\1 substitution. + + Sat Sep 27 12:57:44 1997 Lars Magne Ingebrigtsen + + * gnus-salt.el (gnus-pick-mouse-pick-region): Use it. + + * gnus-xmas.el (gnus-xmas-window-edges): New function. + + * gnus-score.el (gnus-score-edit-current-scores): Don't select + window. + + Sat Sep 27 12:52:31 1997 Hallvard B. Furuseth + + * messcompat.el ((boundp 'mail-mode-hook)): Check. + + Sat Sep 27 09:22:15 1997 Lars Magne Ingebrigtsen + + * nndraft.el (nndraft-possibly-change-group): Always open server. + + * gnus-sum.el (gnus-summary-pop-article): Force. + + * gnus-art.el (gnus-article-prepare): Push the article onto the + history. + + * gnus-sum.el (gnus-summary-pop-article): Pop to the right + article. + + * gnus-demon.el (gnus-demon-scan-news): Save excursion. + + Sat Sep 27 09:06:55 1997 Hallvard B. Furuseth + + * gnus-cache.el (gnus-summary-limit-include-cached): New command + and keystroke. + + Sat Sep 27 06:45:58 1997 Lars Magne Ingebrigtsen + + * gnus-uu.el (gnus-uu-invert-processable): Make interactive. + + Sat Sep 27 06:43:38 1997 Kim-Minh Kaplan + + * gnus-picon.el: Doc fixes. + + 1997-09-23 Hrvoje Niksic + + * gnus.el: Removed definition of `custom-face-lookup'. + + Sat Sep 27 05:36:11 1997 Lars Magne Ingebrigtsen + + * nndraft.el: Would block nnmh. + + * gnus-sum.el (gnus-mark-article-as-unread): Don't allow marking + negative articles. + + * gnus-group.el (gnus-fetch-group): Use `gnus-no-server'. + + * gnus-agent.el (gnus-agent-with-fetch): Moved. + + * gnus-sum.el (gnus-nov-read-integer): Really skip to next field. + Sat Sep 27 04:32:45 1997 Lars Magne Ingebrigtsen * gnus.el: Quassia Gnus v0.11 is released. *** pub/qgnus/texi/gnus-faq.texi Sun Jul 6 17:24:09 1997 --- qgnus/texi/gnus-faq.texi Sat Oct 4 01:03:37 1997 *************** *** 1,4 **** ! \input texinfo @c -*-texinfo-*- @c Copyright (C) 1995 Free Software Foundation, Inc. @setfilename gnus-faq.info --- 1,4 ---- ! @c Insert "\input texinfo" at 1st line before texing this file alone. @c -*-texinfo-*- @c Copyright (C) 1995 Free Software Foundation, Inc. @setfilename gnus-faq.info *** pub/qgnus/texi/gnus.texi Sat Sep 27 05:18:55 1997 --- qgnus/texi/gnus.texi Sat Oct 4 01:03:42 1997 *************** *** 833,839 **** That was kinda silly, so Gnus went one better: In addition to the @file{.newsrc} and @file{.newsrc.el} files, Gnus also has a file called @file{.newsrc.eld}. It will read whichever of these files that are most ! recent, but it will never write a @file{.newsrc.el} file. @vindex gnus-save-newsrc-file You can turn off writing the @file{.newsrc} file by setting --- 833,841 ---- That was kinda silly, so Gnus went one better: In addition to the @file{.newsrc} and @file{.newsrc.el} files, Gnus also has a file called @file{.newsrc.eld}. It will read whichever of these files that are most ! recent, but it will never write a @file{.newsrc.el} file. You should ! never delete the @file{.newsrc.eld} file---it contains much information ! not stored in the @file{.newsrc} file. @vindex gnus-save-newsrc-file You can turn off writing the @file{.newsrc} file by setting *************** *** 3157,3163 **** @vindex gnus-summary-same-subject @code{gnus-summary-same-subject} is a string indicating that the current article has the same subject as the previous. This string will be used ! with those specs that require it. The default is @samp{}. @node Summary Buffer Lines --- 3159,3165 ---- @vindex gnus-summary-same-subject @code{gnus-summary-same-subject} is a string indicating that the current article has the same subject as the previous. This string will be used ! with those specs that require it. The default is @code{""}. @node Summary Buffer Lines *************** *** 3181,3187 **** @item s Subject if the article is the root of the thread or the previous article had a different subject, @code{gnus-summary-same-subject} otherwise. ! (@code{gnus-summary-same-subject} defaults to @samp{}.) @item F Full @code{From} header. @item n --- 3183,3189 ---- @item s Subject if the article is the root of the thread or the previous article had a different subject, @code{gnus-summary-same-subject} otherwise. ! (@code{gnus-summary-same-subject} defaults to @code{""}.) @item F Full @code{From} header. @item n *************** *** 3543,3550 **** Pop an article off the summary history and go to this article (@code{gnus-summary-pop-article}). This command differs from the command above in that you can pop as many previous articles off the ! history as you like. For a somewhat related issue (if you use this ! command a lot), @pxref{Article Backlog}. @end table --- 3545,3553 ---- Pop an article off the summary history and go to this article (@code{gnus-summary-pop-article}). This command differs from the command above in that you can pop as many previous articles off the ! history as you like, while @kbd{l} toggles the two last read articles. ! For a somewhat related issue (if you use these commands a lot), ! @pxref{Article Backlog}. @end table *************** *** 6879,6885 **** @item gnus-tree-mode-line-format @vindex gnus-tree-mode-line-format A format string for the mode bar in the tree mode buffers. The default ! is @samp{Gnus: %%b [%A] %Z}. For a list of valid specs, @pxref{Summary Buffer Mode Line}. @item gnus-selected-tree-face --- 6882,6888 ---- @item gnus-tree-mode-line-format @vindex gnus-tree-mode-line-format A format string for the mode bar in the tree mode buffers. The default ! is @samp{Gnus: %%b %S %Z}. For a list of valid specs, @pxref{Summary Buffer Mode Line}. @item gnus-selected-tree-face *************** *** 6922,6928 **** This is used for differentiating between ``real'' articles and ``sparse'' articles. The format is @var{((real-open . real-close) (sparse-open . sparse-close) (dummy-open . dummy-close))}, and the ! default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}))}. @item gnus-tree-parent-child-edges @vindex gnus-tree-parent-child-edges --- 6925,6931 ---- This is used for differentiating between ``real'' articles and ``sparse'' articles. The format is @var{((real-open . real-close) (sparse-open . sparse-close) (dummy-open . dummy-close))}, and the ! default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))}. @item gnus-tree-parent-child-edges @vindex gnus-tree-parent-child-edges *************** *** 8028,8034 **** @lisp (nnfolder "archive" ! (nnfolder-directory "~/Mail/archive/")) @end lisp You can, however, use any mail select method (@code{nnml}, --- 8031,8040 ---- @lisp (nnfolder "archive" ! (nnfolder-directory "~/Mail/archive") ! (nnfolder-active-file "~/Mail/archive/active") ! (nnfolder-get-new-mail nil) ! (nnfolder-inhibit-expiry t)) @end lisp You can, however, use any mail select method (@code{nnml}, *************** *** 8972,8978 **** contain very big articles---@samp{alt.binaries.pictures.furniture}, for instance. ! Anyways, you just specify @code{nnspool} as the method and @samp{} (or anything else) as the address. If you have access to a local spool, you should probably use that as the --- 8978,8984 ---- contain very big articles---@samp{alt.binaries.pictures.furniture}, for instance. ! Anyways, you just specify @code{nnspool} as the method and @code{""} (or anything else) as the address. If you have access to a local spool, you should probably use that as the *************** *** 9118,9124 **** these lists is the name of the mail group (they do not have to be called something beginning with @samp{mail}, by the way), and the second element is a regular expression used on the header of each mail to ! determine if it belongs in this mail group. If the first element is the special symbol @code{junk}, then messages that match the regexp will disappear into the aether. Use with --- 9124,9136 ---- these lists is the name of the mail group (they do not have to be called something beginning with @samp{mail}, by the way), and the second element is a regular expression used on the header of each mail to ! determine if it belongs in this mail group. The first string may ! contain @samp{\\1} forms, like the ones used by @code{replace-match} to ! insert sub-expressions from the matched text. For instance: ! ! @lisp ! ("list.\\1" "From:.*\\(.*\\)-list@@majordomo.com") ! @end lisp If the first element is the special symbol @code{junk}, then messages that match the regexp will disappear into the aether. Use with *************** *** 13992,13997 **** --- 14004,14010 ---- @findex gnus-demon-add-disconnection Some ready-made functions to do this have been created: @code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection}, + @code{gnus-demon-add-nntp-close-connection}, @code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and @code{gnus-demon-add-scanmail}. Just put those functions in your @file{.gnus} if you want those abilities. *************** *** 14049,14055 **** @vindex gnus-nocem-issuers There are many people issuing NoCeM messages. This list says what people you want to listen to. The default is @code{("Automoose-1" ! "clewis@@ferret.ocunix.on.ca;" "jem@@xpat.com;" "red@@redpoll.mrfs.oh.us (Richard E. Depew)")}; fine, upstanding citizens all of them. Known despammers that you can put in this list include: --- 14062,14069 ---- @vindex gnus-nocem-issuers There are many people issuing NoCeM messages. This list says what people you want to listen to. The default is @code{("Automoose-1" ! "rbraver@@ohww.norman.ok.us" "clewis@@ferret.ocunix.on.ca" ! "jem@@xpat.com" "snowhare@@xmission.com" "red@@redpoll.mrfs.oh.us (Richard E. Depew)")}; fine, upstanding citizens all of them. Known despammers that you can put in this list include: *************** *** 15847,15852 **** --- 15861,15867 ---- @iftex + @page @node The Manual @section The Manual @cindex colophon *************** *** 15908,15913 **** --- 15923,15929 ---- @end iftex + @page @node Terminology @section Terminology *************** *** 16092,16097 **** --- 16108,16114 ---- @end table + @page @node Customization @section Customization @cindex general customization *************** *** 16218,16223 **** --- 16235,16241 ---- processing a bit faster. + @page @node Troubleshooting @section Troubleshooting @cindex troubleshooting *************** *** 16294,16299 **** --- 16312,16318 ---- Write to @samp{ding-request@@gnus.org} to subscribe. + @page @node A Programmers Guide to Gnus @section A Programmer@'s Guide to Gnus *************** *** 17646,17651 **** --- 17665,17671 ---- @end example + @page @node Emacs for Heathens @section Emacs for Heathens *************** *** 17765,17771 **** So be careful not to mix up strings (the latter) with symbols (the former). The manual is unambiguous, but it can be confusing. ! @include gnus-faq.texi @node Index --- 17785,17791 ---- So be careful not to mix up strings (the latter) with symbols (the former). The manual is unambiguous, but it can be confusing. ! @page @include gnus-faq.texi @node Index *** pub/qgnus/texi/message.texi Sat Sep 27 05:18:56 1997 --- qgnus/texi/message.texi Sat Oct 4 01:03:43 1997 *************** *** 229,235 **** Headers matching the @code{message-ignored-supersedes-headers} are removed before popping up the new message buffer. The default is@* @samp{^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|@* ! ^Received:\\|^X-From-Line:\\|Return-Path:}. --- 229,235 ---- Headers matching the @code{message-ignored-supersedes-headers} are removed before popping up the new message buffer. The default is@* @samp{^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|@* ! ^Received:\\|^X-From-Line:\\|Return-Path:\\|^Supersedes:}. *************** *** 292,298 **** @vindex message-ignored-bounced-headers Headers that match the @code{message-ignored-bounced-headers} regexp will be removed before popping up the buffer. The default is ! @samp{^Received:}. @node Commands --- 292,298 ---- @vindex message-ignored-bounced-headers Headers that match the @code{message-ignored-bounced-headers} regexp will be removed before popping up the buffer. The default is ! @samp{^\\(Received\\|Return-Path\\):}. @node Commands *************** *** 705,711 **** @item message-ignored-mail-headers @vindex message-ignored-mail-headers Regexp of headers to be removed before mailing. The default is ! @samp{^Gcc:\\|^Fcc:}. @item message-default-mail-headers @vindex message-default-mail-headers --- 705,711 ---- @item message-ignored-mail-headers @vindex message-ignored-mail-headers Regexp of headers to be removed before mailing. The default is ! @samp{^[GF]cc:\\|^Resent-Fcc:}. @item message-default-mail-headers @vindex message-default-mail-headers *************** *** 905,911 **** @item message-ignored-news-headers @vindex message-ignored-news-headers Regexp of headers to be removed before posting. The default is@* ! @samp{^NNTP-Posting-Host:\\|^Xref:\\|^Bcc:\\|^Gcc:\\|^Fcc:}. @item message-default-news-headers @vindex message-default-news-headers --- 905,911 ---- @item message-ignored-news-headers @vindex message-ignored-news-headers Regexp of headers to be removed before posting. The default is@* ! @samp{^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:}. @item message-default-news-headers @vindex message-default-news-headers *************** *** 979,985 **** (gnus-group-find-parameter group 'to-list)) (insert "Mail-Copies-To: never\n")))) ! (add-hook 'message-header-setup-hook 'my-message-header-setup-hook) @end lisp @item message-send-hook --- 979,986 ---- (gnus-group-find-parameter group 'to-list)) (insert "Mail-Copies-To: never\n")))) ! (add-hook 'message-header-setup-hook ! 'my-message-header-setup-hook) @end lisp @item message-send-hook *************** *** 1059,1065 **** @vindex message-fcc-handler-function A function called to save outgoing articles. This function will be called with the name of the file to store the article in. The default ! function is @code{rmail-output} which saves in Unix mailbox format. @item message-courtesy-message @vindex message-courtesy-message --- 1060,1066 ---- @vindex message-fcc-handler-function A function called to save outgoing articles. This function will be called with the name of the file to store the article in. The default ! function is @code{message-output} which saves in Unix mailbox format. @item message-courtesy-message @vindex message-courtesy-message *** pub/qgnus/texi/ChangeLog Sat Sep 27 05:18:56 1997 --- qgnus/texi/ChangeLog Sat Oct 4 01:03:36 1997 *************** *** 1,3 **** --- 1,17 ---- + Wed Oct 1 18:37:55 1997 Lars Magne Ingebrigtsen + + * gnus.texi (Startup Files): Addition. + + Sat Sep 27 09:37:17 1997 Lars Magne Ingebrigtsen + + * message.texi (Sending Variables): Fix. + + * gnus.texi (Choosing Commands): Addition. + + Sat Sep 27 05:56:44 1997 Hallvard B. Furuseth + + * gnus.texi: Various fixes. + Sat Sep 27 04:24:41 1997 Lars Magne Ingebrigtsen * message.texi (Various Commands): Addition. *** pub/qgnus/GNUS-NEWS Sat Sep 27 05:18:56 1997 --- qgnus/GNUS-NEWS Sat Oct 4 01:03:18 1997 *************** *** 51,53 **** --- 51,55 ---- *** `M-RET' is a new Message command for breaking cited text. + *** \\1-expressions are now valid in `nnmail-split-methods'. + *** pub/qgnus/texi/dir Wed Jun 18 00:54:19 1997 --- qgnus/texi/dir Sat Jul 12 19:54:27 1997 *************** *** 0 **** --- 1,11 ---- + -*- Text -*- + The Gnus-related top node. +  + File: dir Node: Top This is the Gnus Info tree + + * Menu: + + * Gnus: (gnus). The news reader Gnus. + * Message: (message). The Message sending thingamabob. + * Widget: (widget). The Widget library. + * Custom: (custom). The Custom library.