+Thu Feb 20 04:16:50 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.4.15 is released.
+
+Thu Feb 20 03:28:00 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * 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 <hniksic@srce.hr>
+
+ * gnus-group.el (gnus-group-set-mode-line): Mark the change with
+ two asterisks.
+
+Thu Feb 20 03:19:28 1997 Joev Dubach <dubach1@husc.harvard.edu>
+
+ * gnus-topic.el (gnus-topic-prepare-topic): Show empty topics.
+
+Thu Feb 20 02:30:27 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * 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 <larsi@ifi.uio.no>
+
+ * 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 <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.4.14 is released.
%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.
+%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
(mode-string (eval gformat)))
;; Say whether the dribble buffer has been modified.
(setq mode-line-modified
- (if 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))))
(setq n (1- n))
(gnus-group-next-group way)))
(nreverse groups)))
- ((and (boundp 'transient-mark-mode)
- transient-mark-mode
- (boundp 'mark-active)
- mark-active)
+ ((gnus-region-active-p)
;; Work on the region between point and mark.
(let ((max (max (point) (mark)))
groups)
(if (string-match "^[^.]+\\." group)
(concat (match-string 0 group) gnus-score-file-suffix)
;; Group name without any dots.
- (concat group "." gnus-score-file-suffix)))
+ (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 "." gnus-adaptive-file-suffix)))
+ (concat group (if (gnus-use-long-file-name 'not-score) "." "/")
+ gnus-adaptive-file-suffix)))
;;;
;;; Score decays
'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)))))
+ (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)
(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
(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)))
+ (gnus-mode-line-buffer-identification (list mode-string)))
(set-buffer-modified-p t))))
(defun gnus-create-xref-hashtb (from-newsgroup headers unreads)
(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)
(run-hooks 'gnus-sum-load-hook)
gnus-topic-tallied-groups)))
(push (gnus-info-group info) gnus-topic-tallied-groups)
(incf unread (car entry)))
- (when (and (listp entry)
- (numberp (car entry)))
+ (when (listp entry)
(setq tick t)))
(goto-char beg)
;; Insert the topic line.
(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)))))))
+ (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)
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "5.4.14"
+(defconst gnus-version-number "5.4.15"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
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-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
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 ""))
+ (progn
+ (setq message-this-is-news nil)
+ (cons 'To (or reply-to from "")))
(cons 'Newsgroups newsgroups)))
(t
(if (or (equal followup-to newsgroups)
(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'.")
+`rfc934', `mime-digest', `standard-digest', `slack-digest',
+`clari-briefs' or `guess'.")
(defvoo nndoc-post-type 'mail
"*Whether the nndoc group is `mail' or `post'.")
(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^ \\*")
(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)))
+ t))
+
(defun nndoc-clari-briefs-type-p ()
(when (let ((case-fold-search nil))
(re-search-forward "^\t[^a-z]+ ([^a-z]+) --" nil t))
(defun nnml-request-regenerate (server)
(nnml-possibly-change-directory nil server)
- (nnml-generate-nov-databases))
+ (nnml-generate-nov-databases)
+ t)
(deffoo nnml-request-article (id &optional group server buffer)
(nnml-possibly-change-directory group server)
+Thu Feb 20 03:29:17 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Foreign Groups): Addition.
+
+Wed Feb 19 02:57:51 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Server Variables): New.
+
Sun Feb 16 15:43:34 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Mail Backend Variables): Fix.
(@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}.
+@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)
* 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
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
@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{mmdf}, @code{forward}, @code{rfc934}, @code{news}, @code{rnews},
@code{mime-digest}, @code{clari-briefs}, or @code{guess}.
@item nndoc-post-type
@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}.
+@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