diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/ChangeLog dgnus/lisp/ChangeLog *** pub/dgnus/lisp/ChangeLog Wed Mar 15 19:14:40 1995 --- dgnus/lisp/ChangeLog Thu Mar 16 16:52:28 1995 *************** *** 1,3 **** --- 1,66 ---- + Thu Mar 16 16:52:19 1995 Lars Magne Ingebrigtsen + + * gnus.el: 0.35 is released. + + Thu Mar 16 15:47:33 1995 Lars Magne Ingebrigtsen + + * gnus.el (gnus-read-descriptions-file): Changed pattern to + delete. + (gnus-group-describe-group): Added "force" prefix. + + Thu Mar 16 00:08:23 1995 Lars Ingebrigtsen + + * nnvirtual.el (nnvirtual-create-mapping): Be more lenient with + component groups that can't be requested. + + * nnml.el (nnml-possibly-change-directory): Don't signal errors. + + * gnus.el (gnus-group-get-new-news-this-group): Display better + error messages when errors occur. + + * nnspool.el (nnspool-request-group): Return an error message if + the group can't be selected. + + * nntp.el (nntp-open-server): Don't bug out if getting a C-g while + waiting for initial contact. + + * nnspool.el (nnspool-request-newgroups): Now also supported by + nnspool. + + * gnus-visual.el (gnus-group-make-menu-bar): -make-doc-group did + not exist. + + * gnus.el (gnus-group-faq-directory): Missing leading slash. + + * nnfolder.el (nnfolder-request-list): The first time this is + called, create the active file. + + * gnus.el (gnus-group-change-level): When subscribing to killed + groups with no articles, would enter wrong number of read + articles. + + * nnspool.el (nnspool-server-opened): Would return t even when not + opened. + + Wed Mar 15 23:47:52 1995 Lars Ingebrigtsen + + * gnus.el (gnus-get-new-news-in-group): Give a sensible return + value. + (gnus-group-get-new-news-this-group): Beep if group can't be + activated. + + * nnfolder.el (nnfolder-request-group): Complain if the group + doesn't exist. + + Wed Mar 15 19:14:47 1995 Lars Magne Ingebrigtsen + + * gnus.el (gnus-summary-refer-article): Would behave strangely + when refering an article already present in the summary buffer. + + Wed Mar 15 17:53:14 1995 Lars Magne Ingebrigtsen + + * gnus.el: 0.34 is released. + Wed Mar 15 00:53:47 1995 Lars Ingebrigtsen * gnus.el (gnus-post-news): Would bug out when posting from the diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/gnus-visual.el dgnus/lisp/gnus-visual.el *** pub/dgnus/lisp/gnus-visual.el Wed Mar 15 17:53:39 1995 --- dgnus/lisp/gnus-visual.el Thu Mar 16 03:12:13 1995 *************** *** 97,103 **** ["Add a foreign group" gnus-group-add-group t] ["Edit a group entry" gnus-group-edit-group t] ["Add a directory group" gnus-group-make-directory-group t] ! ["Add the documentation group" gnus-group-make-doc-group t] ["Make a kiboze group" gnus-group-make-kiboze-group t] ["Kill all newsgroups in region" gnus-group-kill-region t] ["Kill all zombie groups" gnus-group-kill-all-zombies t] --- 97,103 ---- ["Add a foreign group" gnus-group-add-group t] ["Edit a group entry" gnus-group-edit-group t] ["Add a directory group" gnus-group-make-directory-group t] ! ["Add the help group" gnus-group-make-help-group t] ["Make a kiboze group" gnus-group-make-kiboze-group t] ["Kill all newsgroups in region" gnus-group-kill-region t] ["Kill all zombie groups" gnus-group-kill-all-zombies t] diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/gnus.el dgnus/lisp/gnus.el *** pub/dgnus/lisp/gnus.el Wed Mar 15 17:53:40 1995 --- dgnus/lisp/gnus.el Thu Mar 16 16:51:41 1995 *************** *** 111,119 **** nntp server for your newsgroup and want to change the port number used to 899, you would say something along these lines: ! (setq gnus-select-method '(nntp \"my.nntp.server\" 899))") ! (defvar gnus-group-faq-directory "ftp@rtfm.mit.edu:/pub/usenet-by-groups/" "Directory where the group FAQs are stored. This will most commonly be on a remote machine, and the file will be fetched by ange-ftp.") --- 111,119 ---- nntp server for your newsgroup and want to change the port number used to 899, you would say something along these lines: ! (setq gnus-select-method '(nntp \"my.nntp.server\" 899))") ! (defvar gnus-group-faq-directory "/ftp@rtfm.mit.edu:/pub/usenet-by-groups/" "Directory where the group FAQs are stored. This will most commonly be on a remote machine, and the file will be fetched by ange-ftp.") *************** *** 1167,1173 **** (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.34" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1167,1173 ---- (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.35" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 2402,2417 **** (suppress-keymap gnus-group-mode-map) (define-key gnus-group-mode-map " " 'gnus-group-read-group) (define-key gnus-group-mode-map "=" 'gnus-group-select-group) (define-key gnus-group-mode-map "j" 'gnus-group-jump-to-group) (define-key gnus-group-mode-map "n" 'gnus-group-next-unread-group) (define-key gnus-group-mode-map "p" 'gnus-group-prev-unread-group) ! (define-key gnus-group-mode-map [del] 'gnus-group-prev-unread-group) (define-key gnus-group-mode-map "N" 'gnus-group-next-group) (define-key gnus-group-mode-map "P" 'gnus-group-prev-group) (define-key gnus-group-mode-map "\M-n" 'gnus-group-next-unread-group-same-level) (define-key gnus-group-mode-map "\M-p" 'gnus-group-prev-unread-group-same-level) (define-key gnus-group-mode-map "," 'gnus-group-best-unread-group) - (define-key gnus-group-mode-map "\r" 'gnus-group-select-group) (define-key gnus-group-mode-map "u" 'gnus-group-unsubscribe-current-group) (define-key gnus-group-mode-map "U" 'gnus-group-unsubscribe-group) (define-key gnus-group-mode-map "c" 'gnus-group-catchup-current) --- 2402,2417 ---- (suppress-keymap gnus-group-mode-map) (define-key gnus-group-mode-map " " 'gnus-group-read-group) (define-key gnus-group-mode-map "=" 'gnus-group-select-group) + (define-key gnus-group-mode-map "\r" 'gnus-group-select-group) (define-key gnus-group-mode-map "j" 'gnus-group-jump-to-group) (define-key gnus-group-mode-map "n" 'gnus-group-next-unread-group) (define-key gnus-group-mode-map "p" 'gnus-group-prev-unread-group) ! (define-key gnus-group-mode-map "\177" 'gnus-group-prev-unread-group) (define-key gnus-group-mode-map "N" 'gnus-group-next-group) (define-key gnus-group-mode-map "P" 'gnus-group-prev-group) (define-key gnus-group-mode-map "\M-n" 'gnus-group-next-unread-group-same-level) (define-key gnus-group-mode-map "\M-p" 'gnus-group-prev-unread-group-same-level) (define-key gnus-group-mode-map "," 'gnus-group-best-unread-group) (define-key gnus-group-mode-map "u" 'gnus-group-unsubscribe-current-group) (define-key gnus-group-mode-map "U" 'gnus-group-unsubscribe-group) (define-key gnus-group-mode-map "c" 'gnus-group-catchup-current) *************** *** 2439,2446 **** (define-key gnus-group-mode-map "\M-z" 'gnus-group-kill-all-zombies) (define-key gnus-group-mode-map "\C-x\C-t" 'gnus-group-transpose-groups) (define-key gnus-group-mode-map "\C-c\C-l" 'gnus-group-list-killed) - (define-key gnus-group-mode-map "\C-c\C-k" 'gnus-group-list-killed) - (define-key gnus-group-mode-map "\C-c\C-z" 'gnus-group-list-zombies) (define-key gnus-group-mode-map "\C-c\C-x" 'gnus-group-expire-articles) (define-key gnus-group-mode-map "\C-c\M-\C-x" 'gnus-group-expire-all-groups) (define-key gnus-group-mode-map "V" 'gnus-version) --- 2439,2444 ---- *************** *** 3355,3361 **** (let ((group (gnus-group-group-name))) (or group (error "No newsgroup on current line")) (or arg (setq arg (if (<= (gnus-group-group-level) 5) 6 3))) ! (gnus-group-unsubscribe-group group arg))) (defun gnus-group-unsubscribe-group (group &optional level) "Toggle subscribe from/to unsubscribe GROUP. --- 3353,3360 ---- (let ((group (gnus-group-group-name))) (or group (error "No newsgroup on current line")) (or arg (setq arg (if (<= (gnus-group-group-level) 5) 6 3))) ! (gnus-group-unsubscribe-group group arg) ! (gnus-group-next-group 1))) (defun gnus-group-unsubscribe-group (group &optional level) "Toggle subscribe from/to unsubscribe GROUP. *************** *** 3375,3381 **** (gnus-group-change-level group (if level level 3) ! (if (member group gnus-zombie-list) 8 9) (or (and (gnus-group-group-name) (gnus-gethash (gnus-group-group-name) gnus-newsrc-hashtb)) (gnus-gethash (car (car gnus-newsrc-assoc)) --- 3374,3380 ---- (gnus-group-change-level group (if level level 3) ! (gnus-group-group-level) (or (and (gnus-group-group-name) (gnus-gethash (gnus-group-group-name) gnus-newsrc-hashtb)) (gnus-gethash (car (car gnus-newsrc-assoc)) *************** *** 3536,3542 **** (w-p (window-start)) group) (while (and (> n 0) ! (gnus-get-new-news-in-group (gnus-group-group-name)) (zerop (gnus-group-next-group way))) (setq n (1- n))) (if (/= 0 n) (message "No more newsgroups")) --- 3535,3548 ---- (w-p (window-start)) group) (while (and (> n 0) ! (progn ! (or (gnus-get-new-news-in-group ! (setq group (gnus-group-group-name))) ! (progn ! (ding) ! (message "%s error: %s" ! group (gnus-status-message group)))) ! t) (zerop (gnus-group-next-group way))) (setq n (1- n))) (if (/= 0 n) (message "No more newsgroups")) *************** *** 3547,3559 **** n)) (defun gnus-get-new-news-in-group (group) ! (if (and group (gnus-activate-newsgroup group)) ! (progn ! (gnus-get-unread-articles-in-group ! (nth 2 (gnus-gethash group gnus-newsrc-hashtb)) ! (gnus-gethash group gnus-active-hashtb)) ! (gnus-group-update-group-line))) ! t) (defun gnus-group-fetch-faq (group) "Fetch the FAQ for the current group." --- 3553,3566 ---- n)) (defun gnus-get-new-news-in-group (group) ! (and group ! (gnus-activate-newsgroup group) ! (progn ! (gnus-get-unread-articles-in-group ! (nth 2 (gnus-gethash group gnus-newsrc-hashtb)) ! (gnus-gethash group gnus-active-hashtb)) ! (gnus-group-update-group-line) ! t))) (defun gnus-group-fetch-faq (group) "Fetch the FAQ for the current group." *************** *** 3561,3569 **** (or group (error "No group name given")) (find-file (concat gnus-group-faq-directory gnus-newsgroup-name))) ! (defun gnus-group-describe-group (&optional group) "Display a description of the current newsgroup." ! (interactive) (let ((group (or group (gnus-group-group-name))) desc) (or group (message "No group name given")) --- 3568,3577 ---- (or group (error "No group name given")) (find-file (concat gnus-group-faq-directory gnus-newsgroup-name))) ! (defun gnus-group-describe-group (force &optional group) "Display a description of the current newsgroup." ! (interactive "P") ! (and force (setq gnus-description-hashtb nil)) (let ((group (or group (gnus-group-group-name))) desc) (or group (message "No group name given")) *************** *** 3575,3583 **** "No description available"))))) ;; Suggested by Per Abrahamsen . ! (defun gnus-group-describe-all-groups () "Pop up a buffer with descriptons of all newsgroups." ! (interactive) (if (not (or gnus-description-hashtb (gnus-read-descriptions-file))) (error "Couldn't request descriptions file")) --- 3583,3592 ---- "No description available"))))) ;; Suggested by Per Abrahamsen . ! (defun gnus-group-describe-all-groups (force) "Pop up a buffer with descriptons of all newsgroups." ! (interactive "P") ! (and force (setq gnus-description-hashtb nil)) (if (not (or gnus-description-hashtb (gnus-read-descriptions-file))) (error "Couldn't request descriptions file")) *************** *** 3813,3821 **** (define-key gnus-browse-server-mode-map "=" 'gnus-browse-read-group) (define-key gnus-browse-server-mode-map "n" 'gnus-browse-next-group) (define-key gnus-browse-server-mode-map "p" 'gnus-browse-prev-group) ! (define-key gnus-browse-server-mode-map [del] 'gnus-browse-prev-group) (define-key gnus-browse-server-mode-map "N" 'gnus-browse-next-group) ! (define-key gnus-browse-server-mode-map "P" 'gnus-group-prev-group) (define-key gnus-browse-server-mode-map "\M-n" 'gnus-browse-next-group) (define-key gnus-browse-server-mode-map "\M-p" 'gnus-browse-prev-group) (define-key gnus-browse-server-mode-map "\r" 'gnus-browse-read-group) --- 3822,3830 ---- (define-key gnus-browse-server-mode-map "=" 'gnus-browse-read-group) (define-key gnus-browse-server-mode-map "n" 'gnus-browse-next-group) (define-key gnus-browse-server-mode-map "p" 'gnus-browse-prev-group) ! (define-key gnus-browse-server-mode-map "\177" 'gnus-browse-prev-group) (define-key gnus-browse-server-mode-map "N" 'gnus-browse-next-group) ! (define-key gnus-browse-server-mode-map "P" 'gnus-browse-prev-group) (define-key gnus-browse-server-mode-map "\M-n" 'gnus-browse-next-group) (define-key gnus-browse-server-mode-map "\M-p" 'gnus-browse-prev-group) (define-key gnus-browse-server-mode-map "\r" 'gnus-browse-read-group) *************** *** 3871,3877 **** (gnus-group-position-cursor))) (defun gnus-browse-server-mode () ! "Major mode for reading network news." (interactive) (kill-all-local-variables) (setq mode-line-modified "-- ") --- 3880,3886 ---- (gnus-group-position-cursor))) (defun gnus-browse-server-mode () ! "Major mode for browsing a foreign server." (interactive) (kill-all-local-variables) (setq mode-line-modified "-- ") *************** *** 6152,6161 **** (find-file (concat gnus-group-faq-directory group))) ;; Suggested by Per Abrahamsen . ! (defun gnus-summary-describe-group () "Describe the current newsgroup." ! (interactive) ! (gnus-group-describe-group gnus-newsgroup-name)) (defun gnus-summary-describe-briefly () "Describe summary mode commands briefly." --- 6161,6170 ---- (find-file (concat gnus-group-faq-directory group))) ;; Suggested by Per Abrahamsen . ! (defun gnus-summary-describe-group (force) "Describe the current newsgroup." ! (interactive "P") ! (gnus-group-describe-group force gnus-newsgroup-name)) (defun gnus-summary-describe-briefly () "Describe summary mode commands briefly." *************** *** 6599,6605 **** (setq message-id (concat "<" message-id))) (or (string-match ">$" message-id) (setq message-id (concat message-id ">"))) ! (let ((header (car (gnus-gethash message-id gnus-newsgroup-dependencies)))) (if header (gnus-summary-goto-article (header-number header)) (let ((gnus-override-method gnus-refer-article-method)) --- 6608,6615 ---- (setq message-id (concat "<" message-id))) (or (string-match ">$" message-id) (setq message-id (concat message-id ">"))) ! (let ((header (car (gnus-gethash (downcase message-id) ! gnus-newsgroup-dependencies)))) (if header (gnus-summary-goto-article (header-number header)) (let ((gnus-override-method gnus-refer-article-method)) *************** *** 11742,11748 **** (funcall (gnus-get-function method 'server-opened) (nth 1 method))) (defun gnus-status-message (method) ! (funcall (gnus-get-function method 'status-message) (nth 1 method))) (defun gnus-request-group (group &optional dont-check) (let ((method (gnus-find-method-for-group group))) --- 11752,11760 ---- (funcall (gnus-get-function method 'server-opened) (nth 1 method))) (defun gnus-status-message (method) ! (let ((method (if (stringp method) (gnus-find-method-for-group method) ! method))) ! (funcall (gnus-get-function method 'status-message) (nth 1 method)))) (defun gnus-request-group (group &optional dont-check) (let ((method (gnus-find-method-for-group group))) *************** *** 12128,12137 **** ;; info. (let ((method (gnus-group-method-name group))) (if (eq method gnus-select-method) ! (setq info (list group level ! (cons 1 (1- (car active))))) ! (setq info (list group level (cons 1 (1- (car active))) ! nil method))))) (setq entry (cons info (if previous (cdr (cdr previous)) (cdr gnus-newsrc-assoc)))) (setcdr (if previous (cdr previous) gnus-newsrc-assoc) --- 12140,12147 ---- ;; info. (let ((method (gnus-group-method-name group))) (if (eq method gnus-select-method) ! (setq info (list group level nil)) ! (setq info (list group level nil nil method))))) (setq entry (cons info (if previous (cdr (cdr previous)) (cdr gnus-newsrc-assoc)))) (setcdr (if previous (cdr previous) gnus-newsrc-assoc) *************** *** 12334,12341 **** (gnus-sethash group (setq active (cons (read (current-buffer)) (read (current-buffer)))) ! gnus-active-hashtb))))) ! active)) (defun gnus-update-read-articles (group unread unselected ticked &optional domarks replied expirable killed --- 12344,12351 ---- (gnus-sethash group (setq active (cons (read (current-buffer)) (read (current-buffer)))) ! gnus-active-hashtb)) ! active))))) (defun gnus-update-read-articles (group unread unselected ticked &optional domarks replied expirable killed *************** *** 12929,12935 **** (save-restriction (set-buffer nntp-server-buffer) (goto-char (point-min)) ! (delete-matching-lines gnus-ignored-newsgroups) (goto-char (point-min)) (if (or (search-forward "\n.\n" nil t) (goto-char (point-max))) --- 12939,12945 ---- (save-restriction (set-buffer nntp-server-buffer) (goto-char (point-min)) ! (delete-non-matching-lines "^[-\\._+A-Za-z0-9]+[ \t]") (goto-char (point-min)) (if (or (search-forward "\n.\n" nil t) (goto-char (point-max))) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnbabyl.el dgnus/lisp/nnbabyl.el *** pub/dgnus/lisp/nnbabyl.el Wed Mar 15 17:53:40 1995 --- dgnus/lisp/nnbabyl.el Thu Mar 16 03:11:33 1995 *************** *** 126,132 **** (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnbabyl-status-message () "Return server status response as string." nnbabyl-status-string) --- 126,132 ---- (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnbabyl-status-message (&optional server) "Return server status response as string." nnbabyl-status-string) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnfolder.el dgnus/lisp/nnfolder.el *** pub/dgnus/lisp/nnfolder.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nnfolder.el Thu Mar 16 03:11:38 1995 *************** *** 22,28 **** ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ;;; Commentary: - 211 2 1 2 mail.misc ;;; Code: --- 22,27 ---- *************** *** 108,116 **** "Return server process status, T or NIL. If the stream is opened, return T, otherwise return NIL." (and nntp-server-buffer ! (get-buffer nntp-server-buffer))) ! (defun nnfolder-status-message () "Return server status response as string." nnfolder-status-string) --- 107,115 ---- "Return server process status, T or NIL. If the stream is opened, return T, otherwise return NIL." (and nntp-server-buffer ! (buffer-name nntp-server-buffer))) ! (defun nnfolder-status-message (&optional server) "Return server status response as string." nnfolder-status-string) *************** *** 147,166 **** "Select news GROUP." (save-excursion (nnfolder-possibly-change-group group) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (if dont-check ! t ! (nnfolder-get-new-mail) ! (let ((active (assoc group nnfolder-group-alist))) ! (insert (format "211 %d %d %d %s\n" ! (1+ (- (cdr (car (cdr active))) ! (car (car (cdr active))))) ! (car (car (cdr active))) ! (cdr (car (cdr active))) ! (car active)))) ! t)))) (defun nnfolder-close-group (group &optional server) t) --- 146,166 ---- "Select news GROUP." (save-excursion (nnfolder-possibly-change-group group) ! (and (assoc group nnfolder-group-alist) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (if dont-check ! t ! (nnfolder-get-new-mail) ! (let ((active (assoc group nnfolder-group-alist))) ! (insert (format "211 %d %d %d %s\n" ! (1+ (- (cdr (car (cdr active))) ! (car (car (cdr active))))) ! (car (car (cdr active))) ! (cdr (car (cdr active))) ! (car active)))) ! t))))) (defun nnfolder-close-group (group &optional server) t) *************** *** 168,174 **** (defun nnfolder-request-list (&optional server) "List active newsgoups." (if server (nnfolder-get-new-mail)) ! (nnmail-find-file nnfolder-active-file)) (defun nnfolder-request-newgroups (date &optional server) "List groups created after DATE." --- 168,178 ---- (defun nnfolder-request-list (&optional server) "List active newsgoups." (if server (nnfolder-get-new-mail)) ! (or (nnmail-find-file nnfolder-active-file) ! (progn ! (setq nnfolder-group-alist (nnmail-get-active)) ! (nnmail-save-active nnfolder-group-alist nnfolder-active-file) ! (nnmail-find-file nnfolder-active-file)))) (defun nnfolder-request-newgroups (date &optional server) "List groups created after DATE." diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnkiboze.el dgnus/lisp/nnkiboze.el *** pub/dgnus/lisp/nnkiboze.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nnkiboze.el Thu Mar 16 03:11:36 1995 *************** *** 90,96 **** (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnkiboze-status-message () "Return server status response as string." nnkiboze-status-string) --- 90,96 ---- (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnkiboze-status-message (&optional server) "Return server status response as string." nnkiboze-status-string) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnmbox.el dgnus/lisp/nnmbox.el *** pub/dgnus/lisp/nnmbox.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nnmbox.el Thu Mar 16 03:11:39 1995 *************** *** 122,128 **** (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnmbox-status-message () "Return server status response as string." nnmbox-status-string) --- 122,128 ---- (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnmbox-status-message (&optional server) "Return server status response as string." nnmbox-status-string) *************** *** 180,186 **** (defun nnmbox-request-list (&optional server) "List active newsgoups." (if server (nnmbox-get-new-mail)) ! (nnmail-find-file nnmbox-active-file)) (defun nnmbox-request-newgroups (date &optional server) "List groups created after DATE." --- 180,190 ---- (defun nnmbox-request-list (&optional server) "List active newsgoups." (if server (nnmbox-get-new-mail)) ! (or (nnmail-find-file nnmbox-active-file) ! (progn ! (setq nnmbox-group-alist (nnmail-get-active)) ! (nnmail-save-active nnmbox-group-alist nnmbox-active-file) ! (nnmail-find-file nnmbox-active-file)))) (defun nnmbox-request-newgroups (date &optional server) "List groups created after DATE." diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnmh.el dgnus/lisp/nnmh.el *** pub/dgnus/lisp/nnmh.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nnmh.el Thu Mar 16 03:11:40 1995 *************** *** 115,121 **** (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnmh-status-message () "Return server status response as string." nnmh-status-string) --- 115,121 ---- (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnmh-status-message (&optional server) "Return server status response as string." nnmh-status-string) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnml.el dgnus/lisp/nnml.el *** pub/dgnus/lisp/nnml.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nnml.el Thu Mar 16 05:09:14 1995 *************** *** 134,140 **** (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnml-status-message () "Return server status response as string." nnml-status-string) --- 134,140 ---- (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnml-status-message (&optional server) "Return server status response as string." nnml-status-string) *************** *** 153,180 **** (defun nnml-request-group (group &optional server dont-check) "Select news GROUP." ! (nnml-possibly-change-directory group) ! (if dont-check ! t ! (nnml-get-new-mail) ! (let ((timestamp (nth 5 (file-attributes nnml-active-file)))) ! (if (or (not nnml-active-timestamp) ! (> (nth 0 timestamp) (nth 0 nnml-active-timestamp)) ! (> (nth 1 timestamp) (nth 1 nnml-active-timestamp))) ! (progn ! (setq nnml-active-timestamp timestamp) ! (nnml-request-list) ! (setq nnml-group-alist (nnmail-get-active)))) ! (let ((active (nth 1 (assoc group nnml-group-alist)))) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (if (not active) ! () ! (insert (format "211 %d %d %d %s\n" ! (max (1+ (- (cdr active) (car active))) 0) ! (car active) (cdr active) group)) ! t)))))) (defun nnml-close-group (group &optional server) t) --- 153,183 ---- (defun nnml-request-group (group &optional server dont-check) "Select news GROUP." ! (if (not (nnml-possibly-change-directory group)) ! (progn ! (setq nnml-status-string "Invalid group (no such directory)") ! nil) ! (if dont-check ! t ! (nnml-get-new-mail) ! (let ((timestamp (nth 5 (file-attributes nnml-active-file)))) ! (if (or (not nnml-active-timestamp) ! (> (nth 0 timestamp) (nth 0 nnml-active-timestamp)) ! (> (nth 1 timestamp) (nth 1 nnml-active-timestamp))) ! (progn ! (setq nnml-active-timestamp timestamp) ! (nnml-request-list) ! (setq nnml-group-alist (nnmail-get-active)))) ! (let ((active (nth 1 (assoc group nnml-group-alist)))) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (if (not active) ! () ! (insert (format "211 %d %d %d %s\n" ! (max (1+ (- (cdr active) (car active))) 0) ! (car active) (cdr active) group)) ! t))))))) (defun nnml-close-group (group &optional server) t) *************** *** 333,342 **** (defun nnml-possibly-change-directory (newsgroup) (if newsgroup (let ((pathname (nnmail-article-pathname newsgroup nnml-directory))) ! (if (file-directory-p pathname) ! (setq nnml-current-directory pathname) ! (error "No such newsgroup: %s" newsgroup))))) ! (defun nnml-create-directories () (let ((methods nnmail-split-methods) dir dirs) --- 336,345 ---- (defun nnml-possibly-change-directory (newsgroup) (if newsgroup (let ((pathname (nnmail-article-pathname newsgroup nnml-directory))) ! (and (file-directory-p pathname) ! (setq nnml-current-directory pathname))) ! t)) ! (defun nnml-create-directories () (let ((methods nnmail-split-methods) dir dirs) *************** *** 519,524 **** --- 522,528 ---- (kill-buffer (current-buffer)))) (setq nnml-nov-buffer-alist (cdr nnml-nov-buffer-alist))))) + ;;;###autoload (defun nnml-generate-nov-databases (dir) "Generate nov databases in all nnml mail newsgroups." (interactive diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnspool.el dgnus/lisp/nnspool.el *** pub/dgnus/lisp/nnspool.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nnspool.el Thu Mar 16 14:43:57 1995 *************** *** 27,32 **** --- 27,33 ---- (require 'nnheader) (require 'nntp) + (require 'timezone) (defvar nnspool-inews-program news-inews-program "Program to post news.") *************** *** 143,149 **** "Return server process status, T or NIL. If the stream is opened, return T, otherwise return NIL." (and nntp-server-buffer ! (get-buffer nntp-server-buffer))) (defun nnspool-status-message (&optional server) "Return server status response as string." --- 144,150 ---- "Return server process status, T or NIL. If the stream is opened, return T, otherwise return NIL." (and nntp-server-buffer ! (buffer-name nntp-server-buffer))) (defun nnspool-status-message (&optional server) "Return server status response as string." *************** *** 189,222 **** (let ((pathname (nnspool-article-pathname (nnspool-replace-chars-in-string group ?. ?/))) dir) ! (if (file-directory-p pathname) (progn ! (setq nnspool-current-directory pathname) ! (if (not dont-check) ! (progn ! (setq dir (directory-files pathname nil "^[0-9]+$" t)) ! ;; yes, completely empty spool directories *are* possible ! ;; Fix by Sudish Joseph ! (and dir ! (setq dir ! (sort ! (mapcar ! (function ! (lambda (name) ! (string-to-int name))) ! dir) ! '<))) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (if dir ! (insert ! (format "211 %d %d %d %s\n" (length dir) (car dir) ! (progn (while (cdr dir) (setq dir (cdr dir))) ! (car dir)) ! group)) ! (insert (format "211 0 0 0 %s\n" group)))))) ! t)))) (defun nnspool-close-group (group &optional server) t) --- 190,227 ---- (let ((pathname (nnspool-article-pathname (nnspool-replace-chars-in-string group ?. ?/))) dir) ! (if (not (file-directory-p pathname)) (progn ! (setq nnspool-status-string ! "Invalid group name (no such directory)") ! nil) ! (setq nnspool-current-directory pathname) ! (setq nnspool-status-string "") ! (if (not dont-check) ! (progn ! (setq dir (directory-files pathname nil "^[0-9]+$" t)) ! ;; yes, completely empty spool directories *are* possible ! ;; Fix by Sudish Joseph ! (and dir ! (setq dir ! (sort ! (mapcar ! (function ! (lambda (name) ! (string-to-int name))) ! dir) ! '<))) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (if dir ! (insert ! (format "211 %d %d %d %s\n" (length dir) (car dir) ! (progn (while (cdr dir) (setq dir (cdr dir))) ! (car dir)) ! group)) ! (insert (format "211 0 0 0 %s\n" group)))))) ! t))) (defun nnspool-close-group (group &optional server) t) *************** *** 236,246 **** (save-excursion (nnspool-find-file nnspool-distributions-file))) (defun nnspool-request-newgroups (date &optional server) "List groups created after DATE." ! (save-excursion ! (nnspool-find-file nnspool-active-times-file) ! nil)) (defun nnspool-request-post (&optional server) --- 241,278 ---- (save-excursion (nnspool-find-file nnspool-distributions-file))) + ;; Suggested by Hallvard B Furuseth . (defun nnspool-request-newgroups (date &optional server) "List groups created after DATE." ! (if (nnspool-find-file nnspool-active-times-file) ! (save-excursion ! ;; Find the last valid line. ! (goto-char (point-max)) ! (while (and (not (looking-at ! "\\([^ ]+\\) +\\([0-9]+\\)[0-9][0-9][0-9] ")) ! (zerop (forward-line -1)))) ! (let ((seconds (nnspool-date-to-seconds date)) ! groups) ! ;; Go through lines and add groups that are recent to a list. ! (while (and (looking-at "\\([^ ]+\\) +\\([0-9]+\\)[0-9][0-9][0-9] ") ! ;; We ignore the last three digits in the number ! ;; of seconds. This is quite naughty, but large ! ;; numbers are so tiresome to deal with. Perhaps ! ;; one could switch to floats instead? ! (> (save-restriction ! (goto-char (match-beginning 2)) ! (narrow-to-region (point) (match-end 2)) ! (read (current-buffer))) ! seconds) ! (setq groups (cons (buffer-substring ! (match-beginning 1) (match-end 1)) ! groups)) ! (zerop (forward-line -1)))) ! (erase-buffer) ! (while groups ! (insert (car groups) " 0 0 y\n") ! (setq groups (cdr groups)))) ! t) nil)) (defun nnspool-request-post (&optional server) *************** *** 379,384 **** --- 411,431 ---- (setcdr num (/ (cdr num) 10)) (setcar num (/ (car num) 10)) (nnspool-number-base-10 num (1- pos)))))))) + + (defun nnspool-days-between (date1 date2) + ;; Return the number of days between date1 and date2. + (let ((d1 (mapcar (lambda (s) (and s (string-to-int s)) ) + (timezone-parse-date date1))) + (d2 (mapcar (lambda (s) (and s (string-to-int s)) ) + (timezone-parse-date date2)))) + (- (timezone-absolute-from-gregorian + (nth 1 d1) (nth 2 d1) (car d1)) + (timezone-absolute-from-gregorian + (nth 1 d2) (nth 2 d2) (car d2))))) + + (defun nnspool-date-to-seconds (string) + (let ((days (nnspool-days-between string "Jan 1 00:00:00 1970"))) + (* days 86))) (provide 'nnspool) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nntp.el dgnus/lisp/nntp.el *** pub/dgnus/lisp/nntp.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nntp.el Thu Mar 16 03:12:07 1995 *************** *** 188,206 **** (message "nntp: Connecting to server on %s..." server) (cond ((and server (nntp-open-server-internal server service)) (setq nntp-current-server server) ! (setq status (nntp-wait-for-response "^[23].*\r$")) ! ;; Do check unexpected close of connection. ! ;; Suggested by feldmark@hanako.stars.flab.fujitsu.junet. ! (if status ! (progn ! (set-process-sentinel nntp-server-process ! 'nntp-default-sentinel) ! ;; You can send commands at startup like AUTHINFO here. ! ;; Added by Hallvard B Furuseth ! (run-hooks 'nntp-server-opened-hook)) ! ;; We have to close connection here, since function ! ;; `nntp-server-opened' may return incorrect status. ! (nntp-close-server-internal server))) ((null server) (setq nntp-status-string "NNTP server is not specified."))) (message "") --- 188,200 ---- (message "nntp: Connecting to server on %s..." server) (cond ((and server (nntp-open-server-internal server service)) (setq nntp-current-server server) ! (unwind-protect ! (setq status (nntp-wait-for-response "^[23].*\r$")) ! (or status (nntp-close-server-internal server))) ! (set-process-sentinel nntp-server-process 'nntp-default-sentinel) ! ;; You can send commands at startup like AUTHINFO here. ! ;; Added by Hallvard B Furuseth ! (run-hooks 'nntp-server-opened-hook)) ((null server) (setq nntp-status-string "NNTP server is not specified."))) (message "") *************** *** 645,652 **** (set-buffer nntp-server-buffer) (if (setq proc (condition-case nil ! (open-network-stream "nntpd" (current-buffer) ! server (or service "nntp")) (error nil))) (progn (setq nntp-server-process proc) --- 639,646 ---- (set-buffer nntp-server-buffer) (if (setq proc (condition-case nil ! (open-network-stream ! "nntpd" (current-buffer) server (or service "nntp")) (error nil))) (progn (setq nntp-server-process proc) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/lisp/nnvirtual.el dgnus/lisp/nnvirtual.el *** pub/dgnus/lisp/nnvirtual.el Wed Mar 15 17:53:41 1995 --- dgnus/lisp/nnvirtual.el Thu Mar 16 03:25:06 1995 *************** *** 138,144 **** (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnvirtual-status-message () "Return server status response as string." nnvirtual-status-string) --- 138,144 ---- (and nntp-server-buffer (get-buffer nntp-server-buffer))) ! (defun nnvirtual-status-message (&optional server) "Return server status response as string." nnvirtual-status-string) *************** *** 282,310 **** (gnus-get-unread-articles-in-group info (gnus-gethash igroup gnus-active-hashtb)) (setq active (gnus-gethash igroup gnus-active-hashtb))) ! (message "Couldn't request newsgroup %s" group) (ding))) ! (setq itotal (1+ (- (cdr active) (car active)))) ! (if (setq ireads (nth 2 info)) ! (let ((itreads ! (if (atom (car ireads)) ! (setq ireads (list (cons (car ireads) (cdr ireads)))) ! (setq ireads (copy-alist ireads))))) ! (if (< (cdr (car ireads)) (car active)) ! (setq ireads (setq itreads (cdr ireads)))) ! (if (< (car (car ireads)) (car active)) ! (setcar (car ireads) (1+ (car active)))) ! (while itreads ! (setcar (car itreads) ! (+ (- (car (car itreads)) (car active)) offset)) ! (setcdr (car itreads) ! (+ (- (cdr (car itreads)) (car active)) offset)) ! (setq itreads (cdr itreads))) ! (setq reads (nconc reads ireads)))) ! (setq offset (+ offset (1- itotal))) ! (setq nnvirtual-current-mapping ! (cons (list offset igroup (car active)) ! nnvirtual-current-mapping)) (setq groups (cdr groups)))) (setq nnvirtual-current-mapping (nreverse nnvirtual-current-mapping)) --- 282,321 ---- (gnus-get-unread-articles-in-group info (gnus-gethash igroup gnus-active-hashtb)) (setq active (gnus-gethash igroup gnus-active-hashtb))) ! (message "Couldn't open component group %s" igroup) (ding))) ! (if (null active) ! () ! ;; And then we do the mapping for this component group. If ! ;; you feel tempte to cast your eyes to the soup below - ! ;; don't. It'll hurt your soul. Suffice to say that it ! ;; assigns ranges of nnvirtual article numbers to the ! ;; different component groups. To get the article number ! ;; from the nnvirtual number, one does something like ! ;; (+ (- number offset) (car active)), where `offset' is the ! ;; slice the mess below assigns, and active is the lowest ! ;; active article in the component group. ! (setq itotal (1+ (- (cdr active) (car active)))) ! (if (setq ireads (nth 2 info)) ! (let ((itreads ! (if (atom (car ireads)) ! (setq ireads (list (cons (car ireads) (cdr ireads)))) ! (setq ireads (copy-alist ireads))))) ! (if (< (cdr (car ireads)) (car active)) ! (setq ireads (setq itreads (cdr ireads)))) ! (if (< (car (car ireads)) (car active)) ! (setcar (car ireads) (1+ (car active)))) ! (while itreads ! (setcar (car itreads) ! (+ (- (car (car itreads)) (car active)) offset)) ! (setcdr (car itreads) ! (+ (- (cdr (car itreads)) (car active)) offset)) ! (setq itreads (cdr itreads))) ! (setq reads (nconc reads ireads)))) ! (setq offset (+ offset (1- itotal))) ! (setq nnvirtual-current-mapping ! (cons (list offset igroup (car active)) ! nnvirtual-current-mapping))) (setq groups (cdr groups)))) (setq nnvirtual-current-mapping (nreverse nnvirtual-current-mapping)) diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/readme dgnus/readme *** pub/dgnus/readme Sat Dec 31 23:46:40 1994 --- dgnus/readme Mon Dec 12 12:15:52 1994 *************** *** 1,18 **** ! This package contains a pre-release of (ding) Gnus, version 0.5. The lisp directory contains the source lisp files, and the texi directory contains an early draft of the Gnus info pages. - - IMPORTANT NOTE FOR NNML USERS: If you have used an earlier version of - this package, you have to do the following: - - ESC ESC (load "nnml") - M-x nnml-generate-nov-databases - - nnml will chew on your mail for a while, and then you can use Gnus - again. Do not attempt to start Gnus before you have done this. - - (This note only applies to people who use nnml as a mail backedn.) - Gnus is meant to be totally compatible with GNUS. But, alas, it probably isn't, which is one of the reasons for this pre-release. --- 1,6 ---- ! This package contains a pre-release of (ding) Gnus, version 0.1. The lisp directory contains the source lisp files, and the texi directory contains an early draft of the Gnus info pages. Gnus is meant to be totally compatible with GNUS. But, alas, it probably isn't, which is one of the reasons for this pre-release. diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus dgnus/texi/gnus *** pub/dgnus/texi/gnus Wed Mar 15 17:55:18 1995 --- dgnus/texi/gnus Thu Mar 16 16:22:56 1995 *************** *** 1,7 **** This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents GNUS, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. --- 1,7 ---- This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents (ding) Gnus, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. *************** *** 20,129 ****  Indirect: ! gnus-1: 775 ! gnus-2: 50420 ! gnus-3: 99742 ! gnus-4: 134819  Tag Table: (Indirect) ! Node: Top775 ! Node: History2001 ! Node: Compatibility3509 ! Node: New Features4571 ! Node: Terminology5498 ! Node: Starting Up7303 ! Node: Finding the News8150 ! Node: The First Time10571 ! Node: The Server is Down11475 ! Node: New Groups12111 ! Node: Startup Files15680 ! Node: Auto Save17641 ! Node: The Active File18224 ! Node: Startup Variables19340 ! Node: The Group Buffer20116 ! Node: Group Buffer Format21196 ! Node: Group Manouvering24182 ! Node: Selecting a Group25293 ! Node: Group Subscribing27827 ! Node: Group Levels28550 ! Node: Foreign Groups30216 ! Node: nntp33592 ! Node: nnspool34940 ! Node: nnvirtual35820 ! Node: nnkiboze37651 ! Node: nndir39555 ! Node: nndoc40312 ! Node: nndigest40734 ! Node: Mail41407 ! Node: Creating Mail Groups43070 ! Node: Expiring Old Mail Articles44890 ! Node: nnmbox47421 ! Node: nnbabyl47901 ! Node: nnml48364 ! Node: nnmh49696 ! Node: nnfolder50004 ! Node: Listing Groups50420 ! Node: Group Maintenance51518 ! Node: Browse Foreign Server52360 ! Node: Exiting Gnus53741 ! Node: Misc Group Stuff54339 ! Node: The Summary Buffer55966 ! Node: Summary Buffer Format57457 ! Node: Summary Buffer Lines58294 ! Node: Summary Buffer Mode Line60831 ! Node: Summary Manouvering61575 ! Node: Choosing Articles63502 ! Node: Paging the Article65495 ! Node: Reply Followup and Post66216 ! Node: Cancelling and Superseding71439 ! Node: Ticking and Marking73330 ! Node: Unread Articles74190 ! Node: Read Articles75095 ! Node: Other Marks76583 ! Node: Setting Marks77411 ! Node: Setting Process Marks79890 ! Node: Threading80999 ! Node: Customizing Threading81457 ! Node: Threading Commands84583 ! Node: Exiting the Summary Buffer85926 ! Node: Process/Prefix88285 ! Node: Saving Articles89334 ! Node: Decoding Articles92211 ! Node: Uuencoded Articles93637 ! Node: Shared Articles94618 ! Node: Decoding Variables95088 ! Node: Rule Variables95376 ! Node: Other Decode Variables96558 ! Node: Viewing Files99742 ! Node: Various Article Stuff100921 ! Node: Summary Sorting102258 ! Node: Finding the Parent102776 ! Node: Score Files103895 ! Node: Summary Score Commands105373 ! Node: Score Variables108247 ! Node: Score File Format110765 ! Node: Scoring Tips113296 ! Node: Mail Group Commands113781 ! Node: Various Summary Stuff114945 ! Node: The Article Buffer116911 ! Node: Hiding Headers117507 ! Node: Using Mime119910 ! Node: Customizing Articles121328 ! Node: Article Keymap122411 ! Node: Misc Article123657 ! Node: Various124639 ! Node: Interactive124953 ! Node: Windows Configuration125817 ! Node: Various Various128492 ! Node: Customization129244 ! Node: Slow NNTP Connection129828 ! Node: Slow Terminal Connection130783 ! Node: Little Disk Space132372 ! Node: Slow Machine133204 ! Node: Troubleshooting133784 ! Node: Reporting Bugs134374 ! Node: Index134819 ! Node: Key Index158291  End Tag Table --- 20,130 ----  Indirect: ! gnus-1: 782 ! gnus-2: 50366 ! gnus-3: 100150 ! gnus-4: 138483  Tag Table: (Indirect) ! Node: Top782 ! Node: History1964 ! Node: Compatibility3472 ! Node: New Features5401 ! Node: Terminology6328 ! Node: Starting Up8133 ! Node: Finding the News8979 ! Node: The First Time11417 ! Node: The Server is Down12316 ! Node: New Groups12952 ! Node: Startup Files16522 ! Node: Auto Save18484 ! Node: The Active File19197 ! Node: Startup Variables20753 ! Node: The Group Buffer21529 ! Node: Group Buffer Format22549 ! Node: Group Manouvering25535 ! Node: Selecting a Group26646 ! Node: Group Subscribing29180 ! Node: Group Levels29903 ! Node: Foreign Groups31569 ! Node: nntp34945 ! Node: nnspool36293 ! Node: nnvirtual37173 ! Node: nnkiboze39004 ! Node: nndir40908 ! Node: nndoc41665 ! Node: nndigest42087 ! Node: Mail42760 ! Node: Creating Mail Groups44492 ! Node: Mail & Procmail46301 ! Node: Expiring Old Mail Articles47840 ! Node: nnmbox50366 ! Node: nnbabyl50846 ! Node: nnml51309 ! Node: nnmh52913 ! Node: nnfolder53221 ! Node: Listing Groups53637 ! Node: Group Maintenance54812 ! Node: Browse Foreign Server55654 ! Node: Exiting Gnus57035 ! Node: Misc Group Stuff57633 ! Node: The Summary Buffer59558 ! Node: Summary Buffer Format61049 ! Node: Summary Buffer Lines61886 ! Node: Summary Buffer Mode Line64423 ! Node: Summary Manouvering65167 ! Node: Choosing Articles67094 ! Node: Paging the Article69087 ! Node: Reply Followup and Post69808 ! Node: Cancelling and Superseding75031 ! Node: Ticking and Marking76922 ! Node: Unread Articles77782 ! Node: Read Articles78687 ! Node: Other Marks80175 ! Node: Setting Marks81003 ! Node: Setting Process Marks83482 ! Node: Threading84591 ! Node: Customizing Threading85049 ! Node: Threading Commands88175 ! Node: Exiting the Summary Buffer89518 ! Node: Process/Prefix91877 ! Node: Saving Articles92926 ! Node: Decoding Articles95803 ! Node: Uuencoded Articles97229 ! Node: Shared Articles98210 ! Node: Decoding Variables98680 ! Node: Rule Variables98968 ! Node: Other Decode Variables100150 ! Node: Viewing Files103334 ! Node: Various Article Stuff104513 ! Node: Summary Sorting105850 ! Node: Finding the Parent106368 ! Node: Score Files107487 ! Node: Summary Score Commands108965 ! Node: Score Variables111839 ! Node: Score File Format114357 ! Node: Scoring Tips116888 ! Node: Mail Group Commands117373 ! Node: Various Summary Stuff118537 ! Node: The Article Buffer120575 ! Node: Hiding Headers121171 ! Node: Using Mime123574 ! Node: Customizing Articles124992 ! Node: Article Keymap126075 ! Node: Misc Article127321 ! Node: Various128303 ! Node: Interactive128617 ! Node: Windows Configuration129481 ! Node: Various Various132156 ! Node: Customization132908 ! Node: Slow NNTP Connection133492 ! Node: Slow Terminal Connection134447 ! Node: Little Disk Space136036 ! Node: Slow Machine136868 ! Node: Troubleshooting137448 ! Node: Reporting Bugs138038 ! Node: Index138483 ! Node: Key Index162177  End Tag Table diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-1 dgnus/texi/gnus-1 *** pub/dgnus/texi/gnus-1 Wed Mar 15 17:55:18 1995 --- dgnus/texi/gnus-1 Thu Mar 16 16:22:56 1995 *************** *** 1,7 **** This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents GNUS, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. --- 1,7 ---- This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents (ding) Gnus, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. *************** *** 29,36 **** local spool or your mbox file. All at the same time, if you want to push your luck. - This manual documents (ding) Gnus 0.34. - * Menu: * History:: How Gnus got where it is today. --- 29,34 ---- *************** *** 99,104 **** --- 97,121 ---- All commands have kept their names. Some internal functions have changed their names. + One major compatability question if the presence of several summary + buffers. The variables that are relevant while reading a group are + buffer-local to the summary buffer they belong in. Although most + important variables have their values copied into their global + counterparts whenever a command is executed in the summary buffer, this + might lead to incorrect values being used if one is not careful. + + All code that relies on knowledge of GNUS internals will probably + fail. To take two examples: Sorting `gnus-newsrc-assoc' (or changing it + in any way, as a matter of fact) is strictly verboten. Gnus maintains a + hash table that points to the entries in this assoc (which speeds up + many functions), and changing the assoc directly will lead to peculiar + results. + + Packages like `expire-kill' will no longer work. As a matter of + fact, you should probably remove all old GNUS packages (and other code) + when you start using (ding) Gnus. More likely than not, (ding) Gnus + already do what you have written code to make GNUS do. (Snicker.) + Even though old methods of doing things are still supported, only the new methods are documented in this manual. If you detect a new method of doing something while reading this manual, that does not mean you *************** *** 110,119 **** GNUS internals should suffer no problems. If problems occur, please let me know (`M-x gnus-bug'). - However, code that depends on the buffers looking a particular way - will almost invaribaly fail. For instance, the summary buffer no longer - displays article numbers by default. -  File: gnus, Node: New Features, Prev: Compatibility, Up: History --- 127,132 ---- *************** *** 200,207 **** Starting Gnus ************* ! If your systems administrator has set thing up properly, starting ! Gnus and reading news is extremely easy - you just type `M-x gnus'. If things do not go smoothly at startup, you have to twiddle some variables. --- 213,220 ---- Starting Gnus ************* ! If your system administrator has set thing up properly, starting Gnus ! and reading news is extremely easy - you just type `M-x gnus'. If things do not go smoothly at startup, you have to twiddle some variables. *************** *** 247,257 **** If `gnus-nntp-server' is set, this variable will override `gnus-select-method'. You should therefore set `gnus-nntp-server' to ! nil, which it is by default. You can also make Gnus prompt you interactively for the name of an ! NNTP server. If you give a non-numerical prefix to `gnus' (ie. `C-u M-x ! gnus'), Gnus will let you choose between the servers in the `gnus-secondary-servers' variable (if any). You can also just type in the name of any server you feel like visiting. --- 260,270 ---- If `gnus-nntp-server' is set, this variable will override `gnus-select-method'. You should therefore set `gnus-nntp-server' to ! nil, which is what it is by default. You can also make Gnus prompt you interactively for the name of an ! NNTP server. If you give a non-numerical prefix to `gnus' (ie. `C-u ! M-x gnus'), Gnus will let you choose between the servers in the `gnus-secondary-servers' variable (if any). You can also just type in the name of any server you feel like visiting. *************** *** 259,273 **** interested in a couple of groups from a different server, you would be better served by using the `gnus-group-browse-foreign-server' command from the group buffer. It will let you have a look at what groups are ! available, and you can subscribe to any of the groups you want to. This ! also makes `.newsrc' maintenance much tidier. *Note Foreign Groups::. A slightly different approach is to set the ! `gnus-secondary-select-methods'. The select methods listed in this ! variable are in many ways just as local as the `gnus-select-method' ! server. They will also be asked for active files during startup (if ! that's wanted), and new newsgroups that appear from these servers will ! be subscribed (or not) just as local groups are. For instance, if you use the `nnmbox' backend to read you mail, you would typically set this variable to --- 272,287 ---- interested in a couple of groups from a different server, you would be better served by using the `gnus-group-browse-foreign-server' command from the group buffer. It will let you have a look at what groups are ! available, and you can subscribe to any of the groups you want to. ! This also makes `.newsrc' maintenance much tidier. *Note Foreign ! Groups::. A slightly different approach is to set the ! `gnus-secondary-select-methods' variable. The select methods listed in ! this variable are in many ways just as local as the ! `gnus-select-method' server. They will also be asked for active files ! during startup (if that's required), and new newsgroups that appear on ! these servers will be subscribed (or not) just as local groups are. For instance, if you use the `nnmbox' backend to read you mail, you would typically set this variable to *************** *** 282,288 **** ============== If no startup files exist, Gnus will try to determine what groups ! that should be subscribed by default. If the variable `gnus-default-subscribed-newsgroups' is set, Gnus will subscribe you to just those groups in that list, leaving the rest --- 296,302 ---- ============== If no startup files exist, Gnus will try to determine what groups ! should be subscribed by default. If the variable `gnus-default-subscribed-newsgroups' is set, Gnus will subscribe you to just those groups in that list, leaving the rest *************** *** 309,315 **** problems starting. However, if you have some mail groups in addition to the news groups, you may want to start Gnus anyway. ! You can bo that by `M-x gnus-no-server'. This will start Gnus without attempting to contact the default server. Gnus will be started on level two, so you shouldn't have any groups from the local server on level one or two, but only have mail groups and other foreign groups on --- 323,329 ---- problems starting. However, if you have some mail groups in addition to the news groups, you may want to start Gnus anyway. ! You can do that by `M-x gnus-no-server'. This will start Gnus without attempting to contact the default server. Gnus will be started on level two, so you shouldn't have any groups from the local server on level one or two, but only have mail groups and other foreign groups on *************** *** 324,331 **** What Gnus does when it encounters a new group is determined by the `gnus-subscribe-newsgroup-method' variable. ! This variable should contain a function. Some handy ready-made ! values are: `gnus-subscribe-randomly' Subscribe all new groups randomly. --- 338,345 ---- What Gnus does when it encounters a new group is determined by the `gnus-subscribe-newsgroup-method' variable. ! This variable should contain a function. Some handy pre-fab values ! are: `gnus-subscribe-randomly' Subscribe all new groups randomly. *************** *** 366,379 **** used instead. This variable defaults to `gnus-subscribe-alphabetically'. ! If you don't want to mess with you `.newsrc' file, you can just set the two variables `gnus-options-subscribe' and `gnus-options-not-subscribe'. These two functions does exactly the ! same as the `.newsrc' options -n trick. Both are regexps, and the the ! new group matches the first, it will be unconditionally subscribed, and ! if it matches the latter, it will be ignored. ! If you are satisfied that you never really want to see any new groups, you could set `gnus-check-new-newsgroups' to nil. This will also save you some time at startup. Even if this variable is nil, you can always subscribe to the new groups by just pressing `U' in the --- 380,393 ---- used instead. This variable defaults to `gnus-subscribe-alphabetically'. ! If you don't want to mess with your `.newsrc' file, you can just set the two variables `gnus-options-subscribe' and `gnus-options-not-subscribe'. These two functions does exactly the ! same as the `.newsrc' options -n trick. Both are regexps, and if the ! the new group matches the first, it will be unconditionally subscribed, ! and if it matches the latter, it will be ignored. ! If you are satisfied that you really never want to see any new groups, you could set `gnus-check-new-newsgroups' to nil. This will also save you some time at startup. Even if this variable is nil, you can always subscribe to the new groups by just pressing `U' in the *************** *** 409,415 **** Things got a bit more complicated with GNUS. In addition to keeping the `.newsrc' file updated, it also used a file called `.newsrc.el' for storing all the information that didn't fit into the `.newsrc' file. ! (Actually, it duplicated everything in the `.newsrc' file.) GNUS would read whichever one of these files that were the most recently saved, which enabled people to swap between GNUS and other newsreaders. --- 423,429 ---- Things got a bit more complicated with GNUS. In addition to keeping the `.newsrc' file updated, it also used a file called `.newsrc.el' for storing all the information that didn't fit into the `.newsrc' file. ! (Actually, it duplicated everything in the `.newsrc' file.) GNUS would read whichever one of these files that were the most recently saved, which enabled people to swap between GNUS and other newsreaders. *************** *** 446,452 **** Whenever you do something that changes the Gnus data (reading articles, cathing up, killing/subscribing to groups,) the change is added to a special "dribble" buffer. This buffer is auto-saved the ! normal Emacs way. If Gnus detects this file at startup, it will ask the user whether to read it. --- 460,468 ---- Whenever you do something that changes the Gnus data (reading articles, cathing up, killing/subscribing to groups,) the change is added to a special "dribble" buffer. This buffer is auto-saved the ! normal Emacs way. If your Emacs should crash before you have saved the ! `.newsrc' files, all changes you have made can be recovered from this ! file. If Gnus detects this file at startup, it will ask the user whether to read it. *************** *** 483,489 **** that you actually subscribe to. Note that if you subscribe to lots and lots of groups, setting this ! variable to nil will probabaly make Gnus slower, not faster.  File: gnus, Node: Startup Variables, Prev: The Active File, Up: Starting Up --- 499,513 ---- that you actually subscribe to. Note that if you subscribe to lots and lots of groups, setting this ! variable to nil will probabaly make Gnus slower, not faster. At ! present, having this variable nil will slow Gnus down considerably, ! unless you read news over a 2400 baud modem. Gnus does the group info ! fetching in total lock-step, so if you have this variable nil, you ! should kill all groups that you aren't interested in to speed things up. ! ! There are plans for doing lots of Gnus stuff asynchronously, which ! should make this option more useful, but that's probably some ways off ! in the future.  File: gnus, Node: Startup Variables, Prev: The Active File, Up: Starting Up *************** *** 511,520 **** The Group Buffer **************** ! The "group buffer" lists all (or parts) of the available groups and ! displays various information regarding these groups. It is the first ! buffer displayed when Gnus starts, and will never be killed as long as ! Gnus is active. * Menu: --- 535,543 ---- The Group Buffer **************** ! The "group buffer" lists all (or parts) of the available groups. It ! is the first buffer shown when Gnus starts, and will never be killed as ! long as Gnus is active. * Menu: *************** *** 1103,1109 **** * Menu: ! * Creating Mail Groups:: How to create mail groups (duh). * Expiring Old Mail Articles:: Getting rid of unwanted mail. Gnus will read the mail spool when you activate a mail group. The --- 1126,1133 ---- * Menu: ! * Creating Mail Groups:: How to create mail groups. ! * Mail & Procmail:: Reading mail groups that procmail create. * Expiring Old Mail Articles:: Getting rid of unwanted mail. Gnus will read the mail spool when you activate a mail group. The *************** *** 1137,1143 **** month's rent money.  ! File: gnus, Node: Creating Mail Groups, Next: Expiring Old Mail Articles, Up: Mail Creating Mail Groups .................... --- 1161,1167 ---- month's rent money.  ! File: gnus, Node: Creating Mail Groups, Next: Mail & Procmail, Up: Mail Creating Mail Groups .................... *************** *** 1179,1185 **** `nnmail-crosspost' says whether to use this mechanism or not.  ! File: gnus, Node: Expiring Old Mail Articles, Next: nnmbox, Prev: Creating Mail Groups, Up: Mail Expiring Old Mail Articles .......................... --- 1203,1247 ---- `nnmail-crosspost' says whether to use this mechanism or not.  ! File: gnus, Node: Mail & Procmail, Next: Expiring Old Mail Articles, Prev: Creating Mail Groups, Up: Mail ! ! Mail & Procmail ! ............... ! ! Many people use `procmail' to split incoming mail into groups. If ! you do that, you should set `nnmail-spool-file' to nil to make sure ! that the mail backends never ever try to fetch mail by themselves. ! ! This also means that you probably don't want to set ! `nnmail-split-methods' either, which has some, perhaps, unexpected side ! effects. ! ! When a mail backend is queried for what groups it carries, it replies ! with the contents of that variable, along with any groups it has figured ! out that it carries by other means. None of the backends (except ! `nnmh') actually go out to the disk and check what groups that actually ! exists. (It's not trivial to distinguish between what the user thinks ! is a basis for a newsgroup and what is just a plain old file or ! directory.) ! ! This means that you have to tell Gnus (and the backends) what groups ! exist by hand. ! ! Let's take the `nnfolder' backend as an example. (This backend ! features one file as the basis of each group.) ! ! The folders are located in `nnfolder-directory', say, `~/Mail/'. ! There are three folders, `foo', `bar' and `mail.baz'. ! ! Go to the group buffer and type `M m'. When prompted, answer `foo' ! for the name, `nnfolder' for the method and `""' for the address. ! Repeat twice for the two other groups, `bar' and `mail.baz'. Be sure ! to include all your mail groups. ! ! That's it. You are now set to read your mail. ! !  ! File: gnus, Node: Expiring Old Mail Articles, Next: nnmbox, Prev: Mail & Procmail, Up: Mail Expiring Old Mail Articles .......................... *************** *** 1234,1323 **** 1) (t 6)))) - -  - File: gnus, Node: nnmbox, Next: nnbabyl, Prev: Expiring Old Mail Articles, Up: Mail - - nnmbox - ...... - - The "nnmbox" backend will use the standard Un*x mbox file to store - mail. The path of the mbox file is given by the `nnmbox-mbox-file' - variable. In addition, Gnus needs to store information about active - articles. The file specified by `nnmbox-active-file' will be used for - that. - - nnmbox will add extra headers to each mail article to say which - group it belongs in. - -  - File: gnus, Node: nnbabyl, Next: nnml, Prev: nnmbox, Up: Mail - - nnbabyl - ....... - - The "nnbabyl" backend will use a babyl mail box to store mail. The - path of the rmail mail box file is given by the `nnbabyl-mbox-file' - variable. In addition, Gnus needs to store information about active - articles. The file specified by `nnbabyl-active-file' will be used for - that. - - nnbabyl will add extra headers to each mail article to say which - group it belongs in. - -  - File: gnus, Node: nnml, Next: nnmh, Prev: nnbabyl, Up: Mail - - nnml - .... - - The spool mail format (`nnml') isn't compatible with any other known - format. It should be used with some caution. - - If you use this backend, Gnus will split all incoming mail into - files; one file for each mail, and put the articles into the correct - directories under the directory specified by the `nnml-directory' - variable. The default value is `"~/Mail/"'. - - You do not have to create any directories beforehand; Gnus will take - care of all that. - - If you have a strict limit as to how many files you are allowed to - store in your account, you should not use this backend. As each mail - gets its own file, you might very well occupy thousands of inodes - within a few weeks. If this is no problem for you, and it isn't a - problem for you having your friendly systems administrator walking - around, madly, shouting "Who is eating all my inodes?! Who? Who!?!", - then you should know that this is probably the fastest format to use. - You do not have to trudge through a big mbox file just to read your new - mail. - - `nnml' is probably the slowest backend when it comes to article - splitting. It has to create lots of files, and it also generates NOV - databases for the incoming mails. This makes is the fastest backend - when it comes to reading mail. - -  - File: gnus, Node: nnmh, Next: nnfolder, Prev: nnml, Up: Mail - - nnmh - .... - - `nnmh' is just like `nnml', except that is doesn't generate NOV - databases and it doesn't keep an active file. This makes `nnmh' a - *much* slower backend than `nnml', but it also makes it easier to write - procmail scripts for. - -  - File: gnus, Node: nnfolder, Prev: nnmh, Up: Mail - - nnfolder - ........ - - `nnfolder' is a backend for storing each mail group in a separate - file. Each file is in the standard Un*x mbox format. `nnfolder' will - add extra headers to keep track of article numbers and arrival dates. - - `nnfolder-directory' says where to store these files, and - `nnfolder-active-file' says where to store the "active" information. --- 1296,1299 ---- diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-2 dgnus/texi/gnus-2 *** pub/dgnus/texi/gnus-2 Wed Mar 15 17:55:18 1995 --- dgnus/texi/gnus-2 Thu Mar 16 16:22:56 1995 *************** *** 1,7 **** This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents GNUS, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. --- 1,7 ---- This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents (ding) Gnus, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. *************** *** 19,29 **** --- 19,123 ---- versions.  + File: gnus, Node: nnmbox, Next: nnbabyl, Prev: Expiring Old Mail Articles, Up: Mail + + nnmbox + ...... + + The "nnmbox" backend will use the standard Un*x mbox file to store + mail. The path of the mbox file is given by the `nnmbox-mbox-file' + variable. In addition, Gnus needs to store information about active + articles. The file specified by `nnmbox-active-file' will be used for + that. + + nnmbox will add extra headers to each mail article to say which + group it belongs in. + +  + File: gnus, Node: nnbabyl, Next: nnml, Prev: nnmbox, Up: Mail + + nnbabyl + ....... + + The "nnbabyl" backend will use a babyl mail box to store mail. The + path of the rmail mail box file is given by the `nnbabyl-mbox-file' + variable. In addition, Gnus needs to store information about active + articles. The file specified by `nnbabyl-active-file' will be used for + that. + + nnbabyl will add extra headers to each mail article to say which + group it belongs in. + +  + File: gnus, Node: nnml, Next: nnmh, Prev: nnbabyl, Up: Mail + + nnml + .... + + The spool mail format (`nnml') isn't compatible with any other known + format. It should be used with some caution. + + If you use this backend, Gnus will split all incoming mail into + files; one file for each mail, and put the articles into the correct + directories under the directory specified by the `nnml-directory' + variable. The default value is `"~/Mail/"'. + + You do not have to create any directories beforehand; Gnus will take + care of all that. + + If you have a strict limit as to how many files you are allowed to + store in your account, you should not use this backend. As each mail + gets its own file, you might very well occupy thousands of inodes + within a few weeks. If this is no problem for you, and it isn't a + problem for you having your friendly systems administrator walking + around, madly, shouting "Who is eating all my inodes?! Who? Who!?!", + then you should know that this is probably the fastest format to use. + You do not have to trudge through a big mbox file just to read your new + mail. + + `nnml' is probably the slowest backend when it comes to article + splitting. It has to create lots of files, and it also generates NOV + databases for the incoming mails. This makes is the fastest backend + when it comes to reading mail. + + If your `nnml' groups and nov files get totally out of whack, you + can do a complete update by typing `M-x nnml-generate-nov-databases'. + This command will trawl through the entire `nnml' hierarchy, looking at + each and every article, so it might take a while to finish. + +  + File: gnus, Node: nnmh, Next: nnfolder, Prev: nnml, Up: Mail + + nnmh + .... + + `nnmh' is just like `nnml', except that is doesn't generate NOV + databases and it doesn't keep an active file. This makes `nnmh' a + *much* slower backend than `nnml', but it also makes it easier to write + procmail scripts for. + +  + File: gnus, Node: nnfolder, Prev: nnmh, Up: Mail + + nnfolder + ........ + + `nnfolder' is a backend for storing each mail group in a separate + file. Each file is in the standard Un*x mbox format. `nnfolder' will + add extra headers to keep track of article numbers and arrival dates. + + `nnfolder-directory' says where to store these files, and + `nnfolder-active-file' says where to store the "active" information. + +  File: gnus, Node: Listing Groups, Next: Group Maintenance, Prev: Foreign Groups, Up: The Group Buffer Listing Groups ============== + These commands all list various slices of the groups that are + available. + `l, G s' List all subscribed groups that have unread articles (`gnus-group-list-groups'). If the numeric prefix is used, this *************** *** 155,160 **** --- 249,258 ---- Check whether new articles have arrived in the current group (`gnus-group-get-new-news-this-group'). + `M-f' + Try to fetch the FAQ for the current group + (`gnus-group-fetch-faq'). + `R' Restart Gnus (`gnus-group-restart'). *************** *** 171,177 **** `D' Give a description of the current group ! (`gnus-group-describe-group'). `C-c C-a' Give a listing of all groups that have names that match a regexp --- 269,276 ---- `D' Give a description of the current group ! (`gnus-group-describe-group'). If given a prefix, force reading ! new description from the server. `C-c C-a' Give a listing of all groups that have names that match a regexp *************** *** 193,198 **** --- 292,301 ---- `V' Display current Gnus version numbers (`gnus-version'). + `M-d' + Describe all groups (`gnus-group-describe-all-groups'). If given a + prefix, force reading new descriptions from the server. + `?' Give a very short help message (`gnus-group-describe-briefly'). *************** *** 1414,1499 **** `gnus-uu-user-archive-rules' This variable can be used to say what comamnds should be used to unpack archives. - -  - File: gnus, Node: Other Decode Variables, Prev: Rule Variables, Up: Decoding Variables - - Other Decode Variables - ...................... - - `gnus-uu-ignore-files-by-name' - Files with name matching this regular expression won't be viewed. - - `gnus-uu-ignore-files-by-type' - Files with a MIME type matching this variable won't be viewed. - Note that Gnus tries to guess what type the file is based on the - name. gnus-uu is not a MIME package, so this is slightly kludgy. - - `gnus-uu-tmp-dir' - Where gnus-uu does its work. - - `gnus-uu-do-not-unpack-archives' - Non-nil means that gnus-uu won't peek inside archives looking for - files to dispay. - - `gnus-uu-view-and-save' - Non-nil means that the user will always be asked to save a file - after viewing it. - - `gnus-uu-ignore-default-view-rules' - Non-nil means that gnus-uu will ignore the default viewing rules. - - `gnus-uu-ignore-default-archive-rules' - Non-nil means that gnus-uu will ignore the default archive - unpacking commands. - - `gnus-uu-kill-carriage-return' - Non-nil means that gnus-uu will strip all carriage returns from - articles. - - `gnus-uu-unmark-articles-not-decoded' - Non-nil means that gnus-uu will mark articles that were - unsuccessfully decoded as unread. - - `gnus-uu-correct-stripped-uucode' - Non-nil means that gnus-uu will *try* to fix uuencoded files that - have had traling spaces deleted. - - `gnus-uu-view-with-metamail' - Non-nil means that gnus-uu will ignore the viewing commands - defined by the rule variables and just fudge a MIME content type - based on the file name. The result will be fed to metamail for - viewing. - - `gnus-uu-save-in-digest' - Non-nil means that gnus-uu, when asked to save without decoding, - will save in digests. If this variable is nil, gnus-uu will just - save everything in a file without any embellishments. The - digesting almost conforms to RFC1153 - no easy way to specify any - meaningful volume and issue numbers were found, so I simply - dropped them. - - `gnus-uu-post-include-before-composing' - Non-nil means that gnus-uu will ask for a file to encode before you - compose the article. If this variable is t, you can either - include an encoded file with C-c C-i or have one included for you - when you post the article. - - `gnus-uu-post-length' - Maximum length of an article. The encoded file will be split into - how many articles it takes to post the entire file. - - `gnus-uu-post-threaded' - Non-nil means that gnus-uu will post the encoded file in a thread. - This may not be smart, as no other decoder I have seen are able - to follow threads when collecting uuencoded articles. (Well, I - have seen one package that does that - gnus-uu, but somehow, I - don't think that counts...) Default is nil. - - `gnus-uu-post-separate-description' - Non-nil means that the description will be posted in a separate - article. The first article will typically be numbered (0/x). If - this variable is nil, the description the user enters will be - included at the beginning of the first article, which will be - numbered (1/x). Default is t. --- 1517,1520 ---- diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-3 dgnus/texi/gnus-3 *** pub/dgnus/texi/gnus-3 Wed Mar 15 17:55:18 1995 --- dgnus/texi/gnus-3 Thu Mar 16 16:22:56 1995 *************** *** 1,7 **** This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents GNUS, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. --- 1,7 ---- This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents (ding) Gnus, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. *************** *** 19,24 **** --- 19,106 ---- versions.  + File: gnus, Node: Other Decode Variables, Prev: Rule Variables, Up: Decoding Variables + + Other Decode Variables + ...................... + + `gnus-uu-ignore-files-by-name' + Files with name matching this regular expression won't be viewed. + + `gnus-uu-ignore-files-by-type' + Files with a MIME type matching this variable won't be viewed. + Note that Gnus tries to guess what type the file is based on the + name. gnus-uu is not a MIME package, so this is slightly kludgy. + + `gnus-uu-tmp-dir' + Where gnus-uu does its work. + + `gnus-uu-do-not-unpack-archives' + Non-nil means that gnus-uu won't peek inside archives looking for + files to dispay. + + `gnus-uu-view-and-save' + Non-nil means that the user will always be asked to save a file + after viewing it. + + `gnus-uu-ignore-default-view-rules' + Non-nil means that gnus-uu will ignore the default viewing rules. + + `gnus-uu-ignore-default-archive-rules' + Non-nil means that gnus-uu will ignore the default archive + unpacking commands. + + `gnus-uu-kill-carriage-return' + Non-nil means that gnus-uu will strip all carriage returns from + articles. + + `gnus-uu-unmark-articles-not-decoded' + Non-nil means that gnus-uu will mark articles that were + unsuccessfully decoded as unread. + + `gnus-uu-correct-stripped-uucode' + Non-nil means that gnus-uu will *try* to fix uuencoded files that + have had traling spaces deleted. + + `gnus-uu-view-with-metamail' + Non-nil means that gnus-uu will ignore the viewing commands + defined by the rule variables and just fudge a MIME content type + based on the file name. The result will be fed to metamail for + viewing. + + `gnus-uu-save-in-digest' + Non-nil means that gnus-uu, when asked to save without decoding, + will save in digests. If this variable is nil, gnus-uu will just + save everything in a file without any embellishments. The + digesting almost conforms to RFC1153 - no easy way to specify any + meaningful volume and issue numbers were found, so I simply + dropped them. + + `gnus-uu-post-include-before-composing' + Non-nil means that gnus-uu will ask for a file to encode before you + compose the article. If this variable is t, you can either + include an encoded file with C-c C-i or have one included for you + when you post the article. + + `gnus-uu-post-length' + Maximum length of an article. The encoded file will be split into + how many articles it takes to post the entire file. + + `gnus-uu-post-threaded' + Non-nil means that gnus-uu will post the encoded file in a thread. + This may not be smart, as no other decoder I have seen are able + to follow threads when collecting uuencoded articles. (Well, I + have seen one package that does that - gnus-uu, but somehow, I + don't think that counts...) Default is nil. + + `gnus-uu-post-separate-description' + Non-nil means that the description will be posted in a separate + article. The first article will typically be numbered (0/x). If + this variable is nil, the description the user enters will be + included at the beginning of the first article, which will be + numbered (1/x). Default is t. + +  File: gnus, Node: Viewing Files, Prev: Decoding Variables, Up: Decoding Articles Viewing Files *************** *** 522,528 **** `V d' Give a brief description of the current group ! (`gnus-summary-describe-group'). `V g, M-g' Exit group, check for new articles in the group, and select the --- 604,611 ---- `V d' Give a brief description of the current group ! (`gnus-summary-describe-group'). If given a prefix, force reading ! new description from the server. `V g, M-g' Exit group, check for new articles in the group, and select the diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus-4 dgnus/texi/gnus-4 *** pub/dgnus/texi/gnus-4 Wed Mar 15 17:55:18 1995 --- dgnus/texi/gnus-4 Thu Mar 16 16:22:56 1995 *************** *** 1,7 **** This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents GNUS, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. --- 1,7 ---- This is Info file gnus, produced by Makeinfo-1.55 from the input file gnus.texi. ! This file documents (ding) Gnus, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. *************** *** 31,38 **** * gnus-article-describe-briefly: Article Keymap. * gnus-article-display-hook: Customizing Articles. * gnus-article-display-hook: Misc Article. - * gnus-article-hide-citation: Various Article Stuff. * gnus-article-hide-citation: Customizing Articles. * gnus-article-hide-headers: Various Article Stuff. * gnus-article-hide-signature: Customizing Articles. * gnus-article-hide-signature: Various Article Stuff. --- 31,38 ---- * gnus-article-describe-briefly: Article Keymap. * gnus-article-display-hook: Customizing Articles. * gnus-article-display-hook: Misc Article. * gnus-article-hide-citation: Customizing Articles. + * gnus-article-hide-citation: Various Article Stuff. * gnus-article-hide-headers: Various Article Stuff. * gnus-article-hide-signature: Customizing Articles. * gnus-article-hide-signature: Various Article Stuff. *************** *** 81,86 **** --- 81,87 ---- * gnus-group-catchup-current-all: Selecting a Group. * gnus-group-check-bogus-groups: Group Maintenance. * gnus-group-clear-dribble: Misc Group Stuff. + * gnus-group-describe-all-groups: Misc Group Stuff. * gnus-group-describe-briefly: Misc Group Stuff. * gnus-group-describe-group: Misc Group Stuff. * gnus-group-description-apropos: Misc Group Stuff. *************** *** 89,94 **** --- 90,96 ---- * gnus-group-expire-all-groups: Group Maintenance. * gnus-group-expire-articles: Group Maintenance. * gnus-group-faq-directory: Various Summary Stuff. + * gnus-group-fetch-faq: Misc Group Stuff. * gnus-group-get-new-news: Misc Group Stuff. * gnus-group-get-new-news-this-group: Misc Group Stuff. * gnus-group-jump-to-group: Group Manouvering. *************** *** 139,146 **** * gnus-ignored-newsgroups: The Active File. * gnus-inews-article-header-hook: Reply Followup and Post. * gnus-inews-article-hook: Reply Followup and Post. - * gnus-info-find-node: Various Summary Stuff. * gnus-info-find-node: Misc Group Stuff. * gnus-inhibit-startup-message: Startup Variables. * gnus-interactive-catchup: Interactive. * gnus-interactive-exit: Interactive. --- 141,148 ---- * gnus-ignored-newsgroups: The Active File. * gnus-inews-article-header-hook: Reply Followup and Post. * gnus-inews-article-hook: Reply Followup and Post. * gnus-info-find-node: Misc Group Stuff. + * gnus-info-find-node: Various Summary Stuff. * gnus-inhibit-startup-message: Startup Variables. * gnus-interactive-catchup: Interactive. * gnus-interactive-exit: Interactive. *************** *** 153,158 **** --- 155,161 ---- * gnus-mail-send-method: Reply Followup and Post. * gnus-mark-article-hook: Choosing Articles. * gnus-nntp-server: Finding the News. + * gnus-no-server: The Server is Down. * gnus-nov-is-evil: Exiting the Summary Buffer. * gnus-novice-user: Interactive. * gnus-Numeric-save-name: Saving Articles. *************** *** 160,167 **** * gnus-options-not-subscribe: New Groups. * gnus-options-subscribe: New Groups. * gnus-page-delimiter: Misc Article. - * gnus-Plain-save-name: Saving Articles. * gnus-plain-save-name: Saving Articles. * gnus-post-method: Reply Followup and Post. * gnus-post-prepare-function: Reply Followup and Post. * gnus-prepare-article-hook: Reply Followup and Post. --- 163,170 ---- * gnus-options-not-subscribe: New Groups. * gnus-options-subscribe: New Groups. * gnus-page-delimiter: Misc Article. * gnus-plain-save-name: Saving Articles. + * gnus-Plain-save-name: Saving Articles. * gnus-post-method: Reply Followup and Post. * gnus-post-prepare-function: Reply Followup and Post. * gnus-prepare-article-hook: Reply Followup and Post. *************** *** 261,268 **** * gnus-summary-mode-line-format: Summary Buffer Mode Line. * gnus-summary-move-article: Mail Group Commands. * gnus-summary-next-article: Choosing Articles. - * gnus-summary-next-page: Paging the Article. * gnus-summary-next-page: Choosing Articles. * gnus-summary-next-same-subject: Choosing Articles. * gnus-summary-next-subject: Summary Manouvering. * gnus-summary-next-thread: Threading Commands. --- 264,271 ---- * gnus-summary-mode-line-format: Summary Buffer Mode Line. * gnus-summary-move-article: Mail Group Commands. * gnus-summary-next-article: Choosing Articles. * gnus-summary-next-page: Choosing Articles. + * gnus-summary-next-page: Paging the Article. * gnus-summary-next-same-subject: Choosing Articles. * gnus-summary-next-subject: Summary Manouvering. * gnus-summary-next-thread: Threading Commands. *************** *** 373,380 **** * gnus-uu-mark-region: Setting Process Marks. * gnus-uu-mark-series: Setting Process Marks. * gnus-uu-mark-sparse: Setting Process Marks. - * gnus-uu-mark-thread: Threading Commands. * gnus-uu-mark-thread: Setting Process Marks. * gnus-uu-post-include-before-composing: Other Decode Variables. * gnus-uu-post-length: Other Decode Variables. * gnus-uu-post-news: Reply Followup and Post. --- 376,383 ---- * gnus-uu-mark-region: Setting Process Marks. * gnus-uu-mark-series: Setting Process Marks. * gnus-uu-mark-sparse: Setting Process Marks. * gnus-uu-mark-thread: Setting Process Marks. + * gnus-uu-mark-thread: Threading Commands. * gnus-uu-post-include-before-composing: Other Decode Variables. * gnus-uu-post-length: Other Decode Variables. * gnus-uu-post-news: Reply Followup and Post. *************** *** 416,421 **** --- 419,425 ---- * nnmbox-active-file: nnmbox. * nnmbox-mbox-file: nnmbox. * nnml-directory: nnml. + * nnml-generate-nov-databases: nnml. * nntp-server-opened-hook: nntp. * Reading mail: Mail. *************** *** 455,465 **** * A m (Summary): Various Article Stuff. * A t (Summary): Various Article Stuff. * A w (Summary): Various Article Stuff. - * b (Group): Group Maintenance. * B (Group): Browse Foreign Server. * b (Summary): Reply Followup and Post. - * C (Group): Selecting a Group. * c (Group): Selecting a Group. * c (Summary): Exiting the Summary Buffer. * C (Summary): Cancelling and Superseding. * C-c C-a (Group): Misc Group Stuff. --- 459,469 ---- * A m (Summary): Various Article Stuff. * A t (Summary): Various Article Stuff. * A w (Summary): Various Article Stuff. * B (Group): Browse Foreign Server. + * b (Group): Group Maintenance. * b (Summary): Reply Followup and Post. * c (Group): Selecting a Group. + * C (Group): Selecting a Group. * c (Summary): Exiting the Summary Buffer. * C (Summary): Cancelling and Superseding. * C-c C-a (Group): Misc Group Stuff. *************** *** 490,497 **** * E (Summary): Setting Marks. * e (Summary): Mail Group Commands. * F (Group): Group Maintenance. - * f (Summary): Reply Followup and Post. * F (Summary): Reply Followup and Post. * g (Group): Misc Group Stuff. * G k (Group): Listing Groups. * G M (Group): Listing Groups. --- 494,501 ---- * E (Summary): Setting Marks. * e (Summary): Mail Group Commands. * F (Group): Group Maintenance. * F (Summary): Reply Followup and Post. + * f (Summary): Reply Followup and Post. * g (Group): Misc Group Stuff. * G k (Group): Listing Groups. * G M (Group): Listing Groups. *************** *** 513,520 **** * j (Group): Group Manouvering. * j (Summary): Summary Manouvering. * k (Summary): Setting Marks. - * l (Group): Listing Groups. * L (Group): Listing Groups. * l (Summary): Summary Manouvering. * L a p (Summary): Summary Score Commands. * L a t (Summary): Summary Score Commands. --- 517,524 ---- * j (Group): Group Manouvering. * j (Summary): Summary Manouvering. * k (Summary): Setting Marks. * L (Group): Listing Groups. + * l (Group): Listing Groups. * l (Summary): Summary Manouvering. * L a p (Summary): Summary Score Commands. * L a t (Summary): Summary Score Commands. *************** *** 530,537 **** * m (Group): Misc Group Stuff. * m (Summary): Reply Followup and Post. * M ? (Summary): Setting Marks. - * M B (Summary): Setting Marks. * M b (Summary): Setting Marks. * M C (Summary): Setting Marks. * M c (Summary): Setting Marks. * M C-c (Summary): Setting Marks. --- 534,541 ---- * m (Group): Misc Group Stuff. * m (Summary): Reply Followup and Post. * M ? (Summary): Setting Marks. * M b (Summary): Setting Marks. + * M B (Summary): Setting Marks. * M C (Summary): Setting Marks. * M c (Summary): Setting Marks. * M C-c (Summary): Setting Marks. *************** *** 549,556 **** * M M-r (Summary): Setting Marks. * M p a (Summary): Setting Process Marks. * M p p (Summary): Setting Process Marks. - * M p R (Summary): Setting Process Marks. * M p r (Summary): Setting Process Marks. * M p S (Summary): Setting Process Marks. * M p s (Summary): Setting Process Marks. * M p t (Summary): Setting Process Marks. --- 553,560 ---- * M M-r (Summary): Setting Marks. * M p a (Summary): Setting Process Marks. * M p p (Summary): Setting Process Marks. * M p r (Summary): Setting Process Marks. + * M p R (Summary): Setting Process Marks. * M p S (Summary): Setting Process Marks. * M p s (Summary): Setting Process Marks. * M p t (Summary): Setting Process Marks. *************** *** 568,574 **** --- 572,580 ---- * M-C-l (Summary): Threading Commands. * M-C-n (Summary): Choosing Articles. * M-C-p (Summary): Choosing Articles. + * M-d (Group): Misc Group Stuff. * M-d (Summary): Setting Marks. + * M-f (Group): Misc Group Stuff. * M-g (Group): Misc Group Stuff. * M-g (Summary): Various Summary Stuff. * M-n (Group): Group Manouvering. *************** *** 583,593 **** * M-z (Group): Group Subscribing. * M-^ (Summary): Finding the Parent. * n (Browse): Browse Foreign Server. - * N (Group): Group Manouvering. * n (Group): Group Manouvering. * N (Summary): Reply Followup and Post. - * n (Summary): Choosing Articles. * N (Summary): Choosing Articles. * o (Summary): Saving Articles. * p (Browse): Browse Foreign Server. * P (Group): Group Manouvering. --- 589,599 ---- * M-z (Group): Group Subscribing. * M-^ (Summary): Finding the Parent. * n (Browse): Browse Foreign Server. * n (Group): Group Manouvering. + * N (Group): Group Manouvering. * N (Summary): Reply Followup and Post. * N (Summary): Choosing Articles. + * n (Summary): Choosing Articles. * o (Summary): Saving Articles. * p (Browse): Browse Foreign Server. * P (Group): Group Manouvering. *************** *** 597,620 **** * q (Browse): Browse Foreign Server. * Q (Group): Exiting Gnus. * q (Group): Exiting Gnus. - * q (Summary): Exiting the Summary Buffer. * Q (Summary): Exiting the Summary Buffer. * R (Group): Misc Group Stuff. * r (Group): Misc Group Stuff. - * R (Summary): Reply Followup and Post. * r (Summary): Reply Followup and Post. * RET (Group): Selecting a Group. * RET (Summary): Paging the Article. * s (Article): Article Keymap. - * S (Group): Group Levels. * s (Group): Misc Group Stuff. * S (Summary): Cancelling and Superseding. * S M-f (Summary): Reply Followup and Post. * S u (Summary): Reply Followup and Post. * SPACE (Article): Article Keymap. * SPACE (Group): Selecting a Group. - * SPACE (Summary): Choosing Articles. * SPACE (Summary): Paging the Article. * T # (Summary): Threading Commands. * T d (Summary): Threading Commands. * T H (Summary): Threading Commands. --- 603,626 ---- * q (Browse): Browse Foreign Server. * Q (Group): Exiting Gnus. * q (Group): Exiting Gnus. * Q (Summary): Exiting the Summary Buffer. + * q (Summary): Exiting the Summary Buffer. * R (Group): Misc Group Stuff. * r (Group): Misc Group Stuff. * r (Summary): Reply Followup and Post. + * R (Summary): Reply Followup and Post. * RET (Group): Selecting a Group. * RET (Summary): Paging the Article. * s (Article): Article Keymap. * s (Group): Misc Group Stuff. + * S (Group): Group Levels. * S (Summary): Cancelling and Superseding. * S M-f (Summary): Reply Followup and Post. * S u (Summary): Reply Followup and Post. * SPACE (Article): Article Keymap. * SPACE (Group): Selecting a Group. * SPACE (Summary): Paging the Article. + * SPACE (Summary): Choosing Articles. * T # (Summary): Threading Commands. * T d (Summary): Threading Commands. * T H (Summary): Threading Commands. *************** *** 624,631 **** * T n (Summary): Threading Commands. * T p (Summary): Threading Commands. * T r (Summary): Threading Commands. - * T s (Summary): Threading Commands. * T S (Summary): Threading Commands. * T T (Summary): Threading Commands. * T u (Summary): Threading Commands. * u (Browse): Browse Foreign Server. --- 630,637 ---- * T n (Summary): Threading Commands. * T p (Summary): Threading Commands. * T r (Summary): Threading Commands. * T S (Summary): Threading Commands. + * T s (Summary): Threading Commands. * T T (Summary): Threading Commands. * T u (Summary): Threading Commands. * u (Browse): Browse Foreign Server. *************** *** 635,646 **** * V (Group): Misc Group Stuff. * V (Summary): Various Summary Stuff. * V ? (Summary): Various Summary Stuff. - * V b (Summary): Summary Score Commands. * V B (Summary): Summary Score Commands. * V C-r (Summary): Various Summary Stuff. * V C-s (Summary): Various Summary Stuff. - * V d (Summary): Various Summary Stuff. * V D (Summary): Various Summary Stuff. * V e (Summary): Various Summary Stuff. * V f (Summary): Various Summary Stuff. * V g (Summary): Various Summary Stuff. --- 641,652 ---- * V (Group): Misc Group Stuff. * V (Summary): Various Summary Stuff. * V ? (Summary): Various Summary Stuff. * V B (Summary): Summary Score Commands. + * V b (Summary): Summary Score Commands. * V C-r (Summary): Various Summary Stuff. * V C-s (Summary): Various Summary Stuff. * V D (Summary): Various Summary Stuff. + * V d (Summary): Various Summary Stuff. * V e (Summary): Various Summary Stuff. * V f (Summary): Various Summary Stuff. * V g (Summary): Various Summary Stuff. diff --exclude=*.elc --exclude=*~ --context --recursive pub/dgnus/texi/gnus.texi dgnus/texi/gnus.texi *** pub/dgnus/texi/gnus.texi Wed Mar 15 17:53:46 1995 --- dgnus/texi/gnus.texi Thu Mar 16 16:18:15 1995 *************** *** 1,7 **** \input texinfo @c -*-texinfo-*- @comment %**start of header (This is for running Texinfo on a region.) @setfilename gnus ! @settitle (ding) Gnus 1.0 Manual @synindex fn cp @synindex vr cp @synindex pg cp --- 1,7 ---- \input texinfo @c -*-texinfo-*- @comment %**start of header (This is for running Texinfo on a region.) @setfilename gnus ! @settitle (ding) Gnus 0.1 Manual @synindex fn cp @synindex vr cp @synindex pg cp *************** *** 18,24 **** @ifinfo ! This file documents GNUS, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. --- 18,24 ---- @ifinfo ! This file documents (ding) Gnus, the GNU Emacs newsreader. Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc. *************** *** 45,51 **** @titlepage @title Gnus Manual ! @author by Lars Ingebrigtsen @page @vskip 0pt plus 1filll Copyright @copyright{} 1989, 1990, 1993 Free Software Foundation, Inc. --- 45,51 ---- @titlepage @title Gnus Manual ! @author by Lars Magne Ingebrigtsen @page @vskip 0pt plus 1filll Copyright @copyright{} 1989, 1990, 1993 Free Software Foundation, Inc. *************** *** 74,81 **** local spool or your mbox file. All at the same time, if you want to push your luck. - This manual documents (ding) Gnus 0.34. - @menu * History:: How Gnus got where it is today. * Terminology:: We use really difficult, like, words here. --- 74,79 ---- *************** *** 136,141 **** --- 134,158 ---- All commands have kept their names. Some internal functions have changed their names. + One major compatability question if the presence of several summary + buffers. The variables that are relevant while reading a group are + buffer-local to the summary buffer they belong in. Although most + important variables have their values copied into their global + counterparts whenever a command is executed in the summary buffer, this + might lead to incorrect values being used if one is not careful. + + All code that relies on knowledge of GNUS internals will probably fail. + To take two examples: Sorting @code{gnus-newsrc-assoc} (or changing it + in any way, as a matter of fact) is strictly verboten. Gnus maintains a + hash table that points to the entries in this assoc (which speeds up + many functions), and changing the assoc directly will lead to peculiar + results. + + Packages like @code{expire-kill} will no longer work. As a matter of + fact, you should probably remove all old GNUS packages (and other code) + when you start using (ding) Gnus. More likely than not, (ding) Gnus + already do what you have written code to make GNUS do. (Snicker.) + Even though old methods of doing things are still supported, only the new methods are documented in this manual. If you detect a new method of doing something while reading this manual, that does not mean you have *************** *** 148,157 **** internals should suffer no problems. If problems occur, please let me know (@kbd{M-x gnus-bug}). - However, code that depends on the buffers looking a particular way will - almost invaribaly fail. For instance, the summary buffer no longer - displays article numbers by default. - @node New Features @section New Features --- 165,170 ---- *************** *** 218,229 **** HEAD format. @end table - @node Starting Up @chapter Starting Gnus @kindex M-x gnus ! If your systems administrator has set thing up properly, starting Gnus and reading news is extremely easy - you just type @kbd{M-x gnus}. If things do not go smoothly at startup, you have to twiddle some --- 231,241 ---- HEAD format. @end table @node Starting Up @chapter Starting Gnus @kindex M-x gnus ! If your system administrator has set thing up properly, starting Gnus and reading news is extremely easy - you just type @kbd{M-x gnus}. If things do not go smoothly at startup, you have to twiddle some *************** *** 273,302 **** @vindex gnus-nntp-server If @code{gnus-nntp-server} is set, this variable will override @code{gnus-select-method}. You should therefore set ! @code{gnus-nntp-server} to nil, which it is by default. @vindex gnus-secondary-servers You can also make Gnus prompt you interactively for the name of an NNTP ! server. If you give a non-numerical prefix to `gnus' (ie. `C-u M-x ! gnus'), Gnus will let you choose between the servers in the @code{gnus-secondary-servers} variable (if any). You can also just type in the name of any server you feel like visiting. However, if you use one NNTP server regularly, and is just interested in ! a couple of groups from a different server, you would be better ! served by using the @code{gnus-group-browse-foreign-server} command from ! the group buffer. It will let you have a look at what groups are ! available, and you can subscribe to any of the groups you want to. This ! also makes @file{.newsrc} maintenance much tidier. @xref{Foreign ! Groups}. @vindex gnus-secondary-select-methods A slightly different approach is to set the ! @code{gnus-secondary-select-methods}. The select methods listed in this ! variable are in many ways just as local as the @code{gnus-select-method} ! server. They will also be asked for active files during startup (if ! that's wanted), and new newsgroups that appear from these servers will ! be subscribed (or not) just as local groups are. For instance, if you use the @code{nnmbox} backend to read you mail, you would typically set this variable to --- 285,314 ---- @vindex gnus-nntp-server If @code{gnus-nntp-server} is set, this variable will override @code{gnus-select-method}. You should therefore set ! @code{gnus-nntp-server} to nil, which is what it is by default. @vindex gnus-secondary-servers You can also make Gnus prompt you interactively for the name of an NNTP ! server. If you give a non-numerical prefix to @code{gnus} (ie. @kbd{C-u ! M-x gnus}), Gnus will let you choose between the servers in the @code{gnus-secondary-servers} variable (if any). You can also just type in the name of any server you feel like visiting. However, if you use one NNTP server regularly, and is just interested in ! a couple of groups from a different server, you would be better served ! by using the @code{gnus-group-browse-foreign-server} command from the ! group buffer. It will let you have a look at what groups are available, ! and you can subscribe to any of the groups you want to. This also makes ! @file{.newsrc} maintenance much tidier. @xref{Foreign Groups}. @vindex gnus-secondary-select-methods A slightly different approach is to set the ! @code{gnus-secondary-select-methods} variable. The select methods ! listed in this variable are in many ways just as local as the ! @code{gnus-select-method} server. They will also be asked for active ! files during startup (if that's required), and new newsgroups that ! appear on these servers will be subscribed (or not) just as local groups ! are. For instance, if you use the @code{nnmbox} backend to read you mail, you would typically set this variable to *************** *** 309,326 **** @node The First Time @section The First Time ! If no startup files exist, Gnus will try to determine what groups ! that should be subscribed by default. @vindex gnus-default-subscribed-newsgroups If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus ! will subscribe you to just those groups in that list, leaving the ! rest killed. Your systems administrator should have set this variable to something useful. Since she hasn't, Gnus will just subscribe you to a few randomly picked groups (ie. @samp{*.newusers}). (@dfn{Random} is here defined as ! "whatever Lars thinks you should read".) You'll also be subscribed to the Gnus documentation group, which should help you with most common problems. --- 321,338 ---- @node The First Time @section The First Time ! If no startup files exist, Gnus will try to determine what groups should ! be subscribed by default. @vindex gnus-default-subscribed-newsgroups If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus ! will subscribe you to just those groups in that list, leaving the rest ! killed. Your systems administrator should have set this variable to something useful. Since she hasn't, Gnus will just subscribe you to a few randomly picked groups (ie. @samp{*.newusers}). (@dfn{Random} is here defined as ! "whatever Lars thinks you should read".) You'll also be subscribed to the Gnus documentation group, which should help you with most common problems. *************** *** 336,342 **** problems starting. However, if you have some mail groups in addition to the news groups, you may want to start Gnus anyway. ! You can bo that by @kbd{M-x gnus-no-server}. This will start Gnus without attempting to contact the default server. Gnus will be started on level two, so you shouldn't have any groups from the local server on level one or two, but only have mail groups and other foreign groups on --- 348,355 ---- problems starting. However, if you have some mail groups in addition to the news groups, you may want to start Gnus anyway. ! @findex gnus-no-server ! You can do that by @kbd{M-x gnus-no-server}. This will start Gnus without attempting to contact the default server. Gnus will be started on level two, so you shouldn't have any groups from the local server on level one or two, but only have mail groups and other foreign groups on *************** *** 349,362 **** What Gnus does when it encounters a new group is determined by the @code{gnus-subscribe-newsgroup-method} variable. ! This variable should contain a function. Some handy ready-made values are: @table @code @item gnus-subscribe-randomly @vindex gnus-subscribe-randomly Subscribe all new groups randomly. - @item gnus-subscribe-alphabetically @vindex gnus-subscribe-alphabetically Subscribe all new groups alphabetically. --- 362,374 ---- What Gnus does when it encounters a new group is determined by the @code{gnus-subscribe-newsgroup-method} variable. ! This variable should contain a function. Some handy pre-fab values are: @table @code @item gnus-subscribe-randomly @vindex gnus-subscribe-randomly Subscribe all new groups randomly. @item gnus-subscribe-alphabetically @vindex gnus-subscribe-alphabetically Subscribe all new groups alphabetically. *************** *** 396,463 **** groups that have names beginning with @samp{alt} and @samp{rec} should be ignored, and all groups with names beginning with @samp{sci} should be subscribed. Gnus doesn't use the normal subscription method for ! subscribing these groups. @code{gnus-subscribe-options-newsgroup-method} ! is used instead. This variable defaults to ! @code{gnus-subscribe-alphabetically}. @vindex gnus-options-not-subscribe @vindex gnus-options-subscribe ! If you don't want to mess with you @file{.newsrc} file, you can just set ! the two variables @code{gnus-options-subscribe} and @code{gnus-options-not-subscribe}. These two functions does exactly the ! same as the @file{.newsrc} options -n trick. Both are regexps, and the ! the new group matches the first, it will be unconditionally subscribed, ! and if it matches the latter, it will be ignored. @vindex gnus-check-new-newsgroups ! If you are satisfied that you never really want to see any new ! groups, you could set @code{gnus-check-new-newsgroups} to ! nil. This will also save you some time at startup. Even if this ! variable is nil, you can always subscribe to the new groups ! by just pressing @kbd{U} in the @dfn{group buffer}. @xref{Group ! Maintenance} for how to check for new groups manually. If @code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the server for new groups since last time it asked instead of determining what groups are new by comparing active groups with known ! groups. This is both faster & cheaper. This also means that you can get ! rid of the list of killed groups altogether, so you may set @code{gnus-save-killed-list} to nil, which will save time both at ! startup, at exit, and all over. Saves disk space, too. The only problem ! with this method is that not all servers support this functionality. This variable can also be a list of select methods. If so, Gnus will issue an @code{ask-server} command to each of the select methods, and ! subscribe them (or not) using the normal methods. This might be handy if ! you are monitoring a few servers for new groups. A side effect is that ! startup will take much longer, so you can meditate while waiting. Use ! the mantra "dingnusdingnusdingnus" to achieve permanent happiness. @node Startup Files @section Startup Files Now, you all know about the @file{.newsrc} files. All information about ! what groups you read is traditionally stored in this file, which has ! a rather rigid structure. Things got a bit more complicated with GNUS. In addition to keeping the ! @file{.newsrc} file updated, it also used a file called @file{.newsrc.el} for ! storing all the information that didn't fit into the @file{.newsrc} ! file. (Actually, it duplicated everything in the @file{.newsrc} file.) ! GNUS would read whichever one of these files that were the most recently ! saved, which enabled people to swap between GNUS and other newsreaders. That was kinda silly, so (ding) Gnus went one better: In addition to the @file{.newsrc} and @file{.newsrc.el} files, (ding) 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 also turn off writing @file{.newsrc} by setting ! @code{gnus-save-newsrc-file} to nil, which means you can delete ! the file and save some space, as well as some time when quitting ! Gnus. However, that will make it impossible to use other newsreaders ! than (ding) Gnus. But hey, who would want to, right? @vindex gnus-save-killed-list If @code{gnus-save-killed-list} is nil, Gnus will not save the list of --- 408,477 ---- groups that have names beginning with @samp{alt} and @samp{rec} should be ignored, and all groups with names beginning with @samp{sci} should be subscribed. Gnus doesn't use the normal subscription method for ! subscribing these groups. ! @code{gnus-subscribe-options-newsgroup-method} is used instead. This ! variable defaults to @code{gnus-subscribe-alphabetically}. @vindex gnus-options-not-subscribe @vindex gnus-options-subscribe ! If you don't want to mess with your @file{.newsrc} file, you can just ! set the two variables @code{gnus-options-subscribe} and @code{gnus-options-not-subscribe}. These two functions does exactly the ! same as the @file{.newsrc} options -n trick. Both are regexps, and if ! the the new group matches the first, it will be unconditionally ! subscribed, and if it matches the latter, it will be ignored. @vindex gnus-check-new-newsgroups ! If you are satisfied that you really never want to see any new groups, ! you could set @code{gnus-check-new-newsgroups} to nil. This will also ! save you some time at startup. Even if this variable is nil, you can ! always subscribe to the new groups by just pressing @kbd{U} in the ! @dfn{group buffer}. @xref{Group Maintenance} for how to check for new ! groups manually. If @code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the server for new groups since last time it asked instead of determining what groups are new by comparing active groups with known ! groups. This is both faster & cheaper. This also means that you can ! get rid of the list of killed groups altogether, so you may set @code{gnus-save-killed-list} to nil, which will save time both at ! startup, at exit, and all over. Saves disk space, too. The only ! problem with this method is that not all servers support this ! functionality. This variable can also be a list of select methods. If so, Gnus will issue an @code{ask-server} command to each of the select methods, and ! subscribe them (or not) using the normal methods. This might be handy ! if you are monitoring a few servers for new groups. A side effect is ! that startup will take much longer, so you can meditate while waiting. ! Use the mantra "dingnusdingnusdingnus" to achieve permanent happiness. @node Startup Files @section Startup Files Now, you all know about the @file{.newsrc} files. All information about ! what groups you read is traditionally stored in this file, which has a ! rather rigid structure. Things got a bit more complicated with GNUS. In addition to keeping the ! @file{.newsrc} file updated, it also used a file called ! @file{.newsrc.el} for storing all the information that didn't fit into ! the @file{.newsrc} file. (Actually, it duplicated everything in the ! @file{.newsrc} file.) GNUS would read whichever one of these files that ! were the most recently saved, which enabled people to swap between GNUS ! and other newsreaders. That was kinda silly, so (ding) Gnus went one better: In addition to the @file{.newsrc} and @file{.newsrc.el} files, (ding) 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 also turn off writing @file{.newsrc} by setting ! @code{gnus-save-newsrc-file} to nil, which means you can delete the file ! and save some space, as well as some time when quitting Gnus. However, ! that will make it impossible to use other newsreaders than (ding) Gnus. ! But hey, who would want to, right? @vindex gnus-save-killed-list If @code{gnus-save-killed-list} is nil, Gnus will not save the list of *************** *** 474,480 **** @vindex gnus-save-newsrc-hook @code{gnus-save-newsrc-hook} is called before saving the @file{.newsrc} ! file. @node Auto Save @section Auto Save --- 488,494 ---- @vindex gnus-save-newsrc-hook @code{gnus-save-newsrc-hook} is called before saving the @file{.newsrc} ! file. @node Auto Save @section Auto Save *************** *** 482,488 **** Whenever you do something that changes the Gnus data (reading articles, cathing up, killing/subscribing to groups,) the change is added to a special @dfn{dribble} buffer. This buffer is auto-saved the normal ! Emacs way. If Gnus detects this file at startup, it will ask the user whether to read it. --- 496,504 ---- Whenever you do something that changes the Gnus data (reading articles, cathing up, killing/subscribing to groups,) the change is added to a special @dfn{dribble} buffer. This buffer is auto-saved the normal ! Emacs way. If your Emacs should crash before you have saved the ! @file{.newsrc} files, all changes you have made can be recovered from ! this file. If Gnus detects this file at startup, it will ask the user whether to read it. *************** *** 517,523 **** that you actually subscribe to. Note that if you subscribe to lots and lots of groups, setting this ! variable to nil will probabaly make Gnus slower, not faster. @node Startup Variables @section Startup Variables --- 533,547 ---- that you actually subscribe to. Note that if you subscribe to lots and lots of groups, setting this ! variable to nil will probabaly make Gnus slower, not faster. At ! present, having this variable nil will slow Gnus down considerably, ! unless you read news over a 2400 baud modem. Gnus does the group info ! fetching in total lock-step, so if you have this variable nil, you ! should kill all groups that you aren't interested in to speed things up. ! ! There are plans for doing lots of Gnus stuff asynchronously, which ! should make this option more useful, but that's probably some ways off ! in the future. @node Startup Variables @section Startup Variables *************** *** 540,549 **** @node The Group Buffer @chapter The Group Buffer ! The @dfn{group buffer} lists all (or parts) of the available groups and ! displays various information regarding these groups. It is the first ! buffer displayed when Gnus starts, and will never be killed as long as ! Gnus is active. @menu * Group Buffer Format:: Information listed and how you can change it. --- 564,572 ---- @node The Group Buffer @chapter The Group Buffer ! The @dfn{group buffer} lists all (or parts) of the available groups. It ! is the first buffer shown when Gnus starts, and will never be killed as ! long as Gnus is active. @menu * Group Buffer Format:: Information listed and how you can change it. *************** *** 1143,1149 **** course. @menu ! * Creating Mail Groups:: How to create mail groups (duh). * Expiring Old Mail Articles:: Getting rid of unwanted mail. @end menu --- 1166,1173 ---- course. @menu ! * Creating Mail Groups:: How to create mail groups. ! * Mail & Procmail:: Reading mail groups that procmail create. * Expiring Old Mail Articles:: Getting rid of unwanted mail. @end menu *************** *** 1222,1227 **** --- 1246,1287 ---- the mail will be "cross-posted" to all those groups. @code{nnmail-crosspost} says whether to use this mechanism or not. + @node Mail & Procmail + @subsubsection Mail & Procmail + + Many people use @code{procmail} to split incoming mail into groups. If + you do that, you should set @code{nnmail-spool-file} to nil to make sure + that the mail backends never ever try to fetch mail by themselves. + + This also means that you probably don't want to set + @code{nnmail-split-methods} either, which has some, perhaps, unexpected + side effects. + + When a mail backend is queried for what groups it carries, it replies + with the contents of that variable, along with any groups it has figured + out that it carries by other means. None of the backends (except + @code{nnmh}) actually go out to the disk and check what groups that + actually exists. (It's not trivial to distinguish between what the user + thinks is a basis for a newsgroup and what is just a plain old file or + directory.) + + This means that you have to tell Gnus (and the backends) what groups + exist by hand. + + Let's take the @code{nnfolder} backend as an example. (This backend + features one file as the basis of each group.) + + The folders are located in @code{nnfolder-directory}, say, + @file{~/Mail/}. There are three folders, @file{foo}, @file{bar} and + @file{mail.baz}. + + Go to the group buffer and type @kbd{M m}. When prompted, answer + @samp{foo} for the name, @samp{nnfolder} for the method and @samp{""} + for the address. Repeat twice for the two other groups, @samp{bar} and + @code{mail.baz}. Be sure to include all your mail groups. + + That's it. You are now set to read your mail. + @node Expiring Old Mail Articles @subsubsection Expiring Old Mail Articles *************** *** 1339,1344 **** --- 1399,1411 ---- databases for the incoming mails. This makes is the fastest backend when it comes to reading mail. + @findex nnml-generate-nov-databases + If your @code{nnml} groups and nov files get totally out of whack, you + can do a complete update by typing @kbd{M-x + nnml-generate-nov-databases}. This command will trawl through the + entire @code{nnml} hierarchy, looking at each and every article, so it + might take a while to finish. + @node nnmh @subsubsection nnmh *************** *** 1364,1369 **** --- 1431,1438 ---- @node Listing Groups @section Listing Groups + These commands all list various slices of the groups that are available. + @table @kbd @item l, G s @kindex G s (Group) *************** *** 1529,1534 **** --- 1598,1608 ---- @findex gnus-group-get-new-news-this-group Check whether new articles have arrived in the current group (@code{gnus-group-get-new-news-this-group}). + @item M-f + @kindex M-f (Group) + @findex gnus-group-fetch-faq + Try to fetch the FAQ for the current group + (@code{gnus-group-fetch-faq}). @item R @kindex R (Group) @findex gnus-group-restart *************** *** 1551,1557 **** @kindex D (Group) @findex gnus-group-describe-group Give a description of the current group ! (@code{gnus-group-describe-group}). @item C-c C-a @kindex C-c C-a (Group) @findex gnus-group-apropos --- 1625,1632 ---- @kindex D (Group) @findex gnus-group-describe-group Give a description of the current group ! (@code{gnus-group-describe-group}). If given a prefix, force reading ! new description from the server. @item C-c C-a @kindex C-c C-a (Group) @findex gnus-group-apropos *************** *** 1578,1583 **** --- 1653,1663 ---- @kindex V (Group) @findex gnus-version Display current Gnus version numbers (@code{gnus-version}). + @item M-d + @kindex M-d (Group) + @findex gnus-group-describe-all-groups + Describe all groups (@code{gnus-group-describe-all-groups}). If given a + prefix, force reading new descriptions from the server. @item ? @kindex ? (Group) @findex gnus-group-describe-briefly *************** *** 3539,3545 **** @kindex V d (Summary) @findex gnus-summary-describe-group Give a brief description of the current group ! (@code{gnus-summary-describe-group}). @item V g, M-g @kindex V g (Summary) @kindex M-g (Summary) --- 3619,3626 ---- @kindex V d (Summary) @findex gnus-summary-describe-group Give a brief description of the current group ! (@code{gnus-summary-describe-group}). If given a prefix, force reading ! new description from the server. @item V g, M-g @kindex V g (Summary) @kindex M-g (Summary)