*** pub/rgnus/lisp/gnus-group.el Tue Feb 18 23:28:58 1997 --- rgnus/lisp/gnus-group.el Thu Feb 20 04:19:50 1997 *************** *** 155,161 **** %l Whether there are GroupLens predictions for this group (string) %n Select from where (string) %z A string that look like `<%s:%n>' if a foreign select method is used ! ?d The date the group was last entered. %u User defined specifier. The next character in the format string should be a letter. Gnus will call the function gnus-user-format-function-X, where X is the letter following %u. The function will be passed the --- 155,161 ---- %l Whether there are GroupLens predictions for this group (string) %n Select from where (string) %z A string that look like `<%s:%n>' if a foreign select method is used ! %d The date the group was last entered. %u User defined specifier. The next character in the format string should be a letter. Gnus will call the function gnus-user-format-function-X, where X is the letter following %u. The function will be passed the *************** *** 1208,1214 **** (mode-string (eval gformat))) ;; Say whether the dribble buffer has been modified. (setq mode-line-modified ! (if modified "---*- " "----- ")) ;; If the line is too long, we chop it off. (when (> (length mode-string) max-len) (setq mode-string (substring mode-string 0 (- max-len 4)))) --- 1208,1214 ---- (mode-string (eval gformat))) ;; Say whether the dribble buffer has been modified. (setq mode-line-modified ! (if modified "--**- " "----- ")) ;; If the line is too long, we chop it off. (when (> (length mode-string) max-len) (setq mode-string (substring mode-string 0 (- max-len 4)))) *************** *** 1413,1422 **** (setq n (1- n)) (gnus-group-next-group way))) (nreverse groups))) ! ((and (boundp 'transient-mark-mode) ! transient-mark-mode ! (boundp 'mark-active) ! mark-active) ;; Work on the region between point and mark. (let ((max (max (point) (mark))) groups) --- 1413,1419 ---- (setq n (1- n)) (gnus-group-next-group way))) (nreverse groups))) ! ((gnus-region-active-p) ;; Work on the region between point and mark. (let ((max (max (point) (mark))) groups) *** pub/rgnus/lisp/gnus-score.el Tue Feb 18 23:28:59 1997 --- rgnus/lisp/gnus-score.el Thu Feb 20 04:19:51 1997 *************** *** 2705,2718 **** (if (string-match "^[^.]+\\." group) (concat (match-string 0 group) gnus-score-file-suffix) ;; Group name without any dots. ! (concat group "." gnus-score-file-suffix))) (defun gnus-hierarchial-home-adapt-file (group) "Return the adapt file of the top-level hierarchy of GROUP." (if (string-match "^[^.]+\\." group) (concat (match-string 0 group) gnus-adaptive-file-suffix) ;; Group name without any dots. ! (concat group "." gnus-adaptive-file-suffix))) ;;; ;;; Score decays --- 2705,2720 ---- (if (string-match "^[^.]+\\." group) (concat (match-string 0 group) gnus-score-file-suffix) ;; Group name without any dots. ! (concat group (if (gnus-use-long-file-name 'not-score) "." "/") ! gnus-score-file-suffix))) (defun gnus-hierarchial-home-adapt-file (group) "Return the adapt file of the top-level hierarchy of GROUP." (if (string-match "^[^.]+\\." group) (concat (match-string 0 group) gnus-adaptive-file-suffix) ;; Group name without any dots. ! (concat group (if (gnus-use-long-file-name 'not-score) "." "/") ! gnus-adaptive-file-suffix))) ;;; ;;; Score decays *** pub/rgnus/lisp/gnus-srvr.el Sun Feb 16 18:16:37 1997 --- rgnus/lisp/gnus-srvr.el Thu Feb 20 04:19:51 1997 *************** *** 736,743 **** 'request-regenerate (car (gnus-server-to-method server)))) (error "This backend doesn't support regeneration") (gnus-message 5 "Requesting regeneration of %s..." server) ! (when (gnus-request-regenerate server) ! (gnus-message 5 "Requesting regeneration of %s...done" server))))) (provide 'gnus-srvr) --- 736,744 ---- 'request-regenerate (car (gnus-server-to-method server)))) (error "This backend doesn't support regeneration") (gnus-message 5 "Requesting regeneration of %s..." server) ! (if (gnus-request-regenerate server) ! (gnus-message 5 "Requesting regeneration of %s...done" server) ! (gnus-message 5 "Couldn't regenerate %s" server))))) (provide 'gnus-srvr) *** pub/rgnus/lisp/gnus-sum.el Tue Feb 18 23:29:01 1997 --- rgnus/lisp/gnus-sum.el Thu Feb 20 04:19:52 1997 *************** *** 1037,1068 **** (equal s1 (gnus-simplify-subject-fully s2))))) - (defun gnus-offer-save-summaries () - "Offer to save all active summary buffers." - (save-excursion - (let ((buflist (buffer-list)) - buffers bufname) - ;; Go through all buffers and find all summaries. - (while buflist - (and (setq bufname (buffer-name (car buflist))) - (string-match "Summary" bufname) - (save-excursion - (set-buffer bufname) - ;; We check that this is, indeed, a summary buffer. - (and (eq major-mode 'gnus-summary-mode) - ;; Also make sure this isn't bogus. - gnus-newsgroup-prepared - ;; Also make sure that this isn't a dead summary buffer. - (not gnus-dead-summary-mode))) - (push bufname buffers)) - (setq buflist (cdr buflist))) - ;; Go through all these summary buffers and offer to save them. - (when buffers - (map-y-or-n-p - "Update summary buffer %s? " - (lambda (buf) (switch-to-buffer buf) (gnus-summary-exit)) - buffers))))) - (defun gnus-summary-bubble-group () "Increase the score of the current group. This is a handy function to add to `gnus-summary-exit-hook' to --- 1037,1042 ---- *************** *** 3910,3917 **** (setq mode-string (format (format "%%-%ds" max-len) mode-string)))) ;; Update the mode line. (setq mode-line-buffer-identification ! (gnus-mode-line-buffer-identification ! (list mode-string))) (set-buffer-modified-p t)))) (defun gnus-create-xref-hashtb (from-newsgroup headers unreads) --- 3884,3890 ---- (setq mode-string (format (format "%%-%ds" max-len) mode-string)))) ;; Update the mode line. (setq mode-line-buffer-identification ! (gnus-mode-line-buffer-identification (list mode-string))) (set-buffer-modified-p t)))) (defun gnus-create-xref-hashtb (from-newsgroup headers unreads) *************** *** 8539,8544 **** --- 8512,8543 ---- ;; Set the number of unread articles in gnus-newsrc-hashtb. (gnus-get-unread-articles-in-group info (gnus-active group)) t))) + + (defun gnus-offer-save-summaries () + "Offer to save all active summary buffers." + (save-excursion + (let ((buflist (buffer-list)) + buffers bufname) + ;; Go through all buffers and find all summaries. + (while buflist + (and (setq bufname (buffer-name (car buflist))) + (string-match "Summary" bufname) + (save-excursion + (set-buffer bufname) + ;; We check that this is, indeed, a summary buffer. + (and (eq major-mode 'gnus-summary-mode) + ;; Also make sure this isn't bogus. + gnus-newsgroup-prepared + ;; Also make sure that this isn't a dead summary buffer. + (not gnus-dead-summary-mode))) + (push bufname buffers)) + (setq buflist (cdr buflist))) + ;; Go through all these summary buffers and offer to save them. + (when buffers + (map-y-or-n-p + "Update summary buffer %s? " + (lambda (buf) (switch-to-buffer buf) (gnus-summary-exit)) + buffers))))) (provide 'gnus-sum) *** pub/rgnus/lisp/gnus-topic.el Tue Feb 18 23:29:02 1997 --- rgnus/lisp/gnus-topic.el Thu Feb 20 04:19:53 1997 *************** *** 430,437 **** gnus-topic-tallied-groups))) (push (gnus-info-group info) gnus-topic-tallied-groups) (incf unread (car entry))) ! (when (and (listp entry) ! (numberp (car entry))) (setq tick t))) (goto-char beg) ;; Insert the topic line. --- 430,436 ---- gnus-topic-tallied-groups))) (push (gnus-info-group info) gnus-topic-tallied-groups) (incf unread (car entry))) ! (when (listp entry) (setq tick t))) (goto-char beg) ;; Insert the topic line. *** pub/rgnus/lisp/gnus-xmas.el Tue Feb 18 23:29:02 1997 --- rgnus/lisp/gnus-xmas.el Thu Feb 20 04:19:53 1997 *************** *** 748,762 **** (defun gnus-xmas-mode-line-buffer-identification (line) (let ((line (car line)) chop) ! (if (not (stringp line)) ! (list line) ! (when (string-match "^Gnus:" line) ! (setq chop (match-end 0)) ! (list ! (if gnus-xmas-modeline-glyph ! (cons gnus-xmas-modeline-left-extent gnus-xmas-modeline-glyph) ! (cons gnus-xmas-modeline-left-extent (substring line 0 chop))) ! (cons gnus-xmas-modeline-right-extent (substring line chop))))))) (defun gnus-xmas-splash () (when (eq (device-type) 'x) --- 748,768 ---- (defun gnus-xmas-mode-line-buffer-identification (line) (let ((line (car line)) chop) ! (cond ! ;; This is some weird type of id. ! ((not (stringp line)) ! (list line)) ! ;; This is non-standard, so we just pass it through. ! ((not (string-match "^Gnus:" line)) ! (list line)) ! ;; We have a standard line, so we colorize and glyphize it a bit. ! (t ! (setq chop (match-end 0)) ! (list ! (if gnus-xmas-modeline-glyph ! (cons gnus-xmas-modeline-left-extent gnus-xmas-modeline-glyph) ! (cons gnus-xmas-modeline-left-extent (substring line 0 chop))) ! (cons gnus-xmas-modeline-right-extent (substring line chop))))))) (defun gnus-xmas-splash () (when (eq (device-type) 'x) *** pub/rgnus/lisp/gnus.el Tue Feb 18 23:29:03 1997 --- rgnus/lisp/gnus.el Thu Feb 20 04:19:53 1997 *************** *** 223,229 **** :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "5.4.14" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) --- 223,229 ---- :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "5.4.15" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) *************** *** 1602,1608 **** gnus-uu-decode-uu-and-save-view gnus-uu-decode-unshar-view gnus-uu-decode-unshar-and-save-view gnus-uu-decode-save-view gnus-uu-decode-binhex-view) ! ("gnus-uu" gnus-uu-delete-work-dir) ("gnus-msg" (gnus-summary-send-map keymap) gnus-article-mail gnus-copy-article-buffer gnus-extended-version) ("gnus-msg" :interactive t --- 1602,1608 ---- gnus-uu-decode-uu-and-save-view gnus-uu-decode-unshar-view gnus-uu-decode-unshar-and-save-view gnus-uu-decode-save-view gnus-uu-decode-binhex-view) ! ("gnus-uu" gnus-uu-delete-work-dir gnus-quote-arg-for-sh-or-csh) ("gnus-msg" (gnus-summary-send-map keymap) gnus-article-mail gnus-copy-article-buffer gnus-extended-version) ("gnus-msg" :interactive t *** pub/rgnus/lisp/message.el Sun Feb 16 18:16:40 1997 --- rgnus/lisp/message.el Thu Feb 20 04:19:54 1997 *************** *** 2973,2979 **** A typical situation where `Followup-To: poster' is used is when the poster does not read the newsgroup, so he wouldn't see any replies sent to it.")) ! (cons 'To (or reply-to from "")) (cons 'Newsgroups newsgroups))) (t (if (or (equal followup-to newsgroups) --- 2973,2981 ---- A typical situation where `Followup-To: poster' is used is when the poster does not read the newsgroup, so he wouldn't see any replies sent to it.")) ! (progn ! (setq message-this-is-news nil) ! (cons 'To (or reply-to from ""))) (cons 'Newsgroups newsgroups))) (t (if (or (equal followup-to newsgroups) *** pub/rgnus/lisp/nndoc.el Thu Jan 9 11:59:31 1997 --- rgnus/lisp/nndoc.el Thu Feb 20 04:19:54 1997 *************** *** 37,44 **** (defvoo nndoc-article-type 'guess "*Type of the file. One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward', ! `mime-digest', `standard-digest', `slack-digest', `clari-briefs' or ! `guess'.") (defvoo nndoc-post-type 'mail "*Whether the nndoc group is `mail' or `post'.") --- 37,44 ---- (defvoo nndoc-article-type 'guess "*Type of the file. One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward', ! `rfc934', `mime-digest', `standard-digest', `slack-digest', ! `clari-briefs' or `guess'.") (defvoo nndoc-post-type 'mail "*Whether the nndoc group is `mail' or `post'.") *************** *** 64,69 **** --- 64,73 ---- (article-begin . "^-+ Start of forwarded message -+\n+") (body-end . "^-+ End of forwarded message -+$") (prepare-body-function . nndoc-unquote-dashes)) + (rfc934 + (article-begin . "^-.*\n+") + (body-end . "^-.*$") + (prepare-body-function . nndoc-unquote-dashes)) (clari-briefs (article-begin . "^ \\*") (body-end . "^\t------*[ \t]^*\n^ \\*") *************** *** 402,407 **** --- 406,418 ---- (defun nndoc-forward-type-p () (when (and (re-search-forward "^-+ Start of forwarded message -+\n+" nil t) + (not (re-search-forward "^Subject:.*digest" nil t)) + (not (re-search-backward "^From:" nil t 2)) + (not (re-search-forward "^From:" nil t 2))) + t)) + + (defun nndoc-rfc934-type-p () + (when (and (re-search-forward "^-+ Start of forwarded.*\n+" nil t) (not (re-search-forward "^Subject:.*digest" nil t)) (not (re-search-backward "^From:" nil t 2)) (not (re-search-forward "^From:" nil t 2))) *** pub/rgnus/lisp/nnml.el Mon Feb 10 14:27:25 1997 --- rgnus/lisp/nnml.el Thu Feb 20 04:19:55 1997 *************** *** 159,165 **** (defun nnml-request-regenerate (server) (nnml-possibly-change-directory nil server) ! (nnml-generate-nov-databases)) (deffoo nnml-request-article (id &optional group server buffer) (nnml-possibly-change-directory group server) --- 159,166 ---- (defun nnml-request-regenerate (server) (nnml-possibly-change-directory nil server) ! (nnml-generate-nov-databases) ! t) (deffoo nnml-request-article (id &optional group server buffer) (nnml-possibly-change-directory group server) *** pub/rgnus/lisp/ChangeLog Tue Feb 18 23:28:56 1997 --- rgnus/lisp/ChangeLog Thu Feb 20 04:19:50 1997 *************** *** 1,3 **** --- 1,43 ---- + Thu Feb 20 04:16:50 1997 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.4.15 is released. + + Thu Feb 20 03:28:00 1997 Lars Magne Ingebrigtsen + + * gnus-xmas.el (gnus-xmas-mode-line-buffer-identification): + Respect non-standard mode line settings. + + * gnus-group.el (gnus-group-line-format): Doc fix. + + * nndoc.el (nndoc-rfc934-type-p): New function. + (nndoc-type-alist): Define RFC934 type. + + Wed Feb 19 05:18:06 1997 Hrvoje Niksic + + * gnus-group.el (gnus-group-set-mode-line): Mark the change with + two asterisks. + + Thu Feb 20 03:19:28 1997 Joev Dubach + + * gnus-topic.el (gnus-topic-prepare-topic): Show empty topics. + + Thu Feb 20 02:30:27 1997 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-process-prefix): Use + `gnus-region-active-p'. + + * gnus-score.el (gnus-hierarchial-home-score-file): Respect short + file names. + (gnus-hierarchial-home-adapt-file): Ditto. + + Wed Feb 19 00:44:41 1997 Lars Magne Ingebrigtsen + + * nnml.el (nnml-request-regenerate): Return t. + + * gnus-srvr.el (gnus-server-regenerate-server): Better messaging. + + * gnus.el: Autoload gnus-quote-arg-for-sh-or-csh. + Tue Feb 18 23:26:28 1997 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.4.14 is released. *** pub/rgnus/texi/gnus.texi Tue Feb 18 23:29:08 1997 --- rgnus/texi/gnus.texi Thu Feb 20 04:19:57 1997 *************** *** 1805,1813 **** (@code{gnus-group-make-doc-group}). If you give a prefix to this command, you will be prompted for a file name and a file type. Currently supported types are @code{babyl}, @code{mbox}, @code{digest}, ! @code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs}, and ! @code{forward}. If you run this command without a prefix, Gnus will ! guess at the file type. @xref{Document Groups}. @item G w @kindex G w (Group) --- 1805,1813 ---- (@code{gnus-group-make-doc-group}). If you give a prefix to this command, you will be prompted for a file name and a file type. Currently supported types are @code{babyl}, @code{mbox}, @code{digest}, ! @code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs}, ! @code{rfc934} and @code{forward}. If you run this command without a ! prefix, Gnus will guess at the file type. @xref{Document Groups}. @item G w @kindex G w (Group) *************** *** 7931,7936 **** --- 7931,7937 ---- * Server Commands:: Commands to manipulate servers. * Example Methods:: Examples server specifications. * Creating a Virtual Server:: An example session. + * Server Variables:: Which variables to set. * Servers and Methods:: You can use server names as select methods. * Unavailable Servers:: Some servers you try to contact may be down. @end menu *************** *** 8147,8152 **** --- 8148,8180 ---- buffer, and you should be able to enter any of the groups displayed. + @node Server Variables + @subsection Server Variables + + One sticky point when defining variables (both on backends and in Emacs + in general) is that some variables are typically initialized from other + variables when the definition of the variables is being loaded. If you + change the "base" variable after the variables have been loaded, you + won't change the "derived" variables. + + This typically affects directory and file variables. For instance, + @code{nnml-directory} is @file{~/Mail/} by default, and all @code{nnml} + directory variables are initialized from that variable, so + @code{nnml-active-file} will be @file{~/Mail/active}. If you define a + new virtual @code{nnml} server, it will @emph{not} suffice to set just + @code{nnml-directory}---you have to explicitly set all the file + variables to be what you want them to be. For a complete list of + variables for each backend, see each backend's section later in this + manual, but here's an example @code{nnml} definition: + + @lisp + (nnml "public" + (nnml-directory "~/my-mail/") + (nnml-active-file "~/my-mail/active") + (nnml-newsgroups-file "~/my-mail/newsgroups")) + @end lisp + + @node Servers and Methods @subsection Servers and Methods *************** *** 9706,9712 **** @item nndoc-article-type @vindex nndoc-article-type This should be one of @code{mbox}, @code{babyl}, @code{digest}, ! @code{mmdf}, @code{forward}, @code{news}, @code{rnews}, @code{mime-digest}, @code{clari-briefs}, or @code{guess}. @item nndoc-post-type --- 9734,9740 ---- @item nndoc-article-type @vindex nndoc-article-type This should be one of @code{mbox}, @code{babyl}, @code{digest}, ! @code{mmdf}, @code{forward}, @code{rfc934}, @code{news}, @code{rnews}, @code{mime-digest}, @code{clari-briefs}, or @code{guess}. @item nndoc-post-type *************** *** 12556,12563 **** @code{browse}, @code{message}, @code{pick}, @code{info}, @code{summary-faq}, @code{edit-group}, @code{edit-server}, @code{edit-score}, @code{post}, @code{reply}, @code{forward}, ! @code{reply-yank}, @code{mail-bounce}, @code{draft}, ! @code{pipe}, @code{bug}, @code{compose-bounce}. Note that the @code{message} key is used for both @code{gnus-group-mail} and @code{gnus-summary-mail-other-window}. If --- 12584,12591 ---- @code{browse}, @code{message}, @code{pick}, @code{info}, @code{summary-faq}, @code{edit-group}, @code{edit-server}, @code{edit-score}, @code{post}, @code{reply}, @code{forward}, ! @code{reply-yank}, @code{mail-bounce}, @code{draft}, @code{pipe}, ! @code{bug}, @code{compose-bounce}. Note that the @code{message} key is used for both @code{gnus-group-mail} and @code{gnus-summary-mail-other-window}. If *** pub/rgnus/texi/ChangeLog Sun Feb 16 18:16:45 1997 --- rgnus/texi/ChangeLog Thu Feb 20 04:19:57 1997 *************** *** 1,3 **** --- 1,11 ---- + Thu Feb 20 03:29:17 1997 Lars Magne Ingebrigtsen + + * gnus.texi (Foreign Groups): Addition. + + Wed Feb 19 02:57:51 1997 Lars Magne Ingebrigtsen + + * gnus.texi (Server Variables): New. + Sun Feb 16 15:43:34 1997 Lars Magne Ingebrigtsen * gnus.texi (Mail Backend Variables): Fix.