+Tue Jun 11 02:29:33 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+
+ * gnus-score.el (gnus-score-find-trace): Erase contents first.
+
+ * nntp.el (nntp-send-region-to-server): Make sure the server is
+ up.
+
+ * gnus.el (gnus-summary-edit-article-done): Reversed parameters.
+
+ * nnheaderxm.el: Renamed.
+
+ * nnmail.el ((eq system-type 'windows-nt)): Moved here.
+
+Tue Jun 11 02:11:30 1996 Lars Magne Ingebrigtsen <larsi@eistla.ifi.uio.no>
+
+ * nnmail.el (nnmail-pop-password): New variable.
+ (nnmail-pop-password-required): New variable.
+ (nnmail-move-inbox): Use them.
+
+Mon Jun 10 21:40:13 1996 Lars Magne Ingebrigtsen <lars@eyesore.no>
+
+ * gnus-xmas.el (gnus-xmas-summary-recenter): Don't sit-for on
+ XEmacs 19.13.
+
+ * gnus-picon.el (gnus-group-display-picons): `set-to-buffer'?
+
+ * gnus.el (gnus-articles-to-read): Don't prompt for scored unless
+ there are many unscored ones.
+ (gnus-read-move-group-name): Prompt when group doesn't exist.
+ (gnus-output-to-file): New implementation.
+ (gnus-summary-save-article): Would duplicate while saving.
+ (gnus-summary-save-article): Prompts wouldn't be remembered.
+ (gnus-article-hide-headers): Inhibit point motion hooks.
+
Mon Jun 10 05:20:24 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+ * gnus.el: Gnus v5.2.14 is released.
+
* gnus-cus.el (()): Display X face by default.
* gnus-xmas.el (gnus-article-x-face-command): New default.
(setq byte-compile-warnings
'(free-vars unresolved callargs redefine obsolete))))
(when (or (not (member file '("gnus-xmas.el" "gnus-picon.el"
- "messagexmas.el")))
+ "messagexmas.el" "nnheaderxm.el")))
xemacs)
(condition-case ()
(byte-compile-file file)
(defun gnus-cache-update-article (group article)
"If ARTICLE is in the cache, remove it and re-enter it."
(when (gnus-cache-possibly-remove-article article nil nil nil t)
- (gnus-cache-possibly-enter-article
- gnus-newsgroup-name article (gnus-summary-article-header article)
- nil nil nil t)))
+ (let ((gnus-use-cache nil))
+ (gnus-cache-possibly-enter-article
+ gnus-newsgroup-name article (gnus-summary-article-header article)
+ nil nil nil t))))
(defun gnus-cache-possibly-remove-article (article ticked dormant unread
&optional force)
See the documentation for `gnus-article-highlight-citation'.
If given a negative prefix, always show; if given a positive prefix,
always hide."
- (interactive (append (gnus-hidden-arg) 'force))
+ (interactive (append (gnus-hidden-arg) (list 'force)))
(setq gnus-cited-text-button-line-format-spec
(gnus-parse-format gnus-cited-text-button-line-format
gnus-cited-text-button-line-format-alist t))
cited text with attributions. When called interactively, these two
variables are ignored.
See also the documentation for `gnus-article-highlight-citation'."
- (interactive (append (gnus-hidden-arg) 'force))
+ (interactive (append (gnus-hidden-arg) (list 'force)))
(unless (gnus-article-check-hidden-text 'cite arg)
(save-excursion
(set-buffer gnus-article-buffer)
(errbuf (get-buffer-create " *Gnus rcvstore*"))
;; Find the rcvstore program.
(exec-path (if mh-lib (cons mh-lib exec-path) exec-path)))
- (gnus-eval-in-buffer-window
- gnus-original-article-buffer
- (save-restriction
- (widen)
- (unwind-protect
- (call-process-region
- (point-min) (point-max) "rcvstore" nil errbuf nil folder)
- (set-buffer errbuf)
- (if (zerop (buffer-size))
- (message "Article saved in folder: %s" folder)
- (message "%s" (buffer-string)))
- (kill-buffer errbuf))))
+ (gnus-eval-in-buffer-window gnus-original-article-buffer
+ (save-restriction
+ (widen)
+ (unwind-protect
+ (call-process-region
+ (point-min) (point-max) "rcvstore" nil errbuf nil folder)
+ (set-buffer errbuf)
+ (if (zerop (buffer-size))
+ (message "Article saved in folder: %s" folder)
+ (message "%s" (buffer-string)))
+ (kill-buffer errbuf))))
(setq gnus-newsgroup-last-folder folder)))
(defun gnus-Folder-save-name (newsgroup headers &optional last-folder)
(replace-in-string from ".*@\\([_a-zA-Z0-9-.]+\\).*"
"\\1")
"\\." "/")) "/")))
- (set-to-buffer (gnus-get-buffer-name gnus-picons-display-where))
+ (set-buffer (gnus-get-buffer-name gnus-picons-display-where))
(gnus-add-current-to-buffer-list)
(beginning-of-buffer)
(setq iconpoint (point))
(save-excursion
(let
((iconpoint (point)))
- (set-to-buffer (gnus-get-buffer-name gnus-picons-display-where))
+ (set-buffer (gnus-get-buffer-name gnus-picons-display-where))
(gnus-add-current-to-buffer-list)
(beginning-of-buffer)
(cond
(gnus-newsgroup-scored nil)
(buf (current-buffer))
trace)
+ (when (get-buffer "*Gnus Scores*")
+ (save-excursion
+ (set-buffer "*Gnus Scores*")
+ (erase-buffer)))
(setq gnus-score-trace nil)
(gnus-possibly-score-headers 'trace)
(if (not (setq trace gnus-score-trace))
"*Non-nil means that gnus-uu won't peek inside archives looking for files to display.
Default is nil.")
-(defvar gnus-uu-view-and-save nil
- "*Non-nil means that the user will always be asked to save a file after viewing it.
-If the variable is nil, the user will only be asked to save if the
-viewing is unsuccessful. Default is nil.")
-
(defvar gnus-uu-ignore-default-view-rules nil
"*Non-nil means that gnus-uu will ignore the default viewing rules.
Only the user viewing rules will be consulted. Default is nil.")
;; Suggested by earle@mahendo.JPL.NASA.GOV (Greg Earle).
;; Recenter only when requested. Suggested by popovich@park.cs.columbia.edu.
(when gnus-auto-center-summary
- (sit-for 0)
(let* ((height (if (fboundp 'window-displayed-height)
- (window-displayed-height)
+ (progn
+ (sit-for 0)
+ (window-displayed-height))
(- (window-height) 2)))
(top (cond ((< height 4) 0)
((< height 7) 1)
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version-number "5.2.14"
+(defconst gnus-version-number "5.2.15"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
"How many articles from %s (default %d): "
gnus-newsgroup-name number))))
(if (string-match "^[ \t]*$" input) number input)))
- ((and (> scored marked) (< scored number))
+ ((and (> scored marked) (< scored number)
+ (> (- scored number) 20))
(let ((input
(read-string
(format "%s %s (%d scored, %d total): "
(gnus-configure-windows 'summary)
(gnus-summary-update-article (cdr gnus-article-current))
(when gnus-use-cache
- (gnus-cache-update-article
- (cdr gnus-article-current) (car gnus-article-current)))
+ (gnus-cache-update-article
+ (car gnus-article-current) (cdr gnus-article-current)))
(when gnus-keep-backlog
(gnus-backlog-remove-article
(car gnus-article-current) (cdr gnus-article-current))))
(gnus-summary-select-article t nil nil article))
(save-excursion
(set-buffer save-buffer)
+ (erase-buffer)
(insert-buffer-substring gnus-original-article-buffer))
(unless gnus-save-all-headers
;; Remove headers accoring to `gnus-saved-headers'.
(error "No default saver is defined.")
;; !!! Magic! The saving functions all save
;; `gnus-original-article-buffer' (or so they think),
- ;; but we bind that variable to out save-buffer.
+ ;; but we bind that variable to our save-buffer.
(set-buffer gnus-article-buffer)
(let ((gnus-original-article-buffer save-buffer))
+ (set-buffer gnus-summary-buffer)
(setq file (funcall
gnus-default-article-saver
(cond
(setq to-newsgroup (or default "")))
(or (gnus-active to-newsgroup)
(gnus-activate-group to-newsgroup)
+ (if (gnus-y-or-n-p (format "No such group: %s. Create it? "
+ to-newsgroup))
+ (or (gnus-request-create-group to-newsgroup)
+ (error "Couldn't create group %s" to-newsgroup)))
(error "No such group: %s" to-newsgroup)))
to-newsgroup))
((and gnus-visible-headers
(listp gnus-visible-headers))
(mapconcat 'identity gnus-visible-headers "\\|"))))
+ (inhibit-point-motion-hooks t)
want-list beg)
;; First we narrow to just the headers.
(widen)
(defun gnus-output-to-file (file-name)
"Append the current article to a file named FILE-NAME."
- (setq file-name (expand-file-name file-name))
- (let ((artbuf (current-buffer))
- (tmpbuf (get-buffer-create " *Gnus-output*")))
- (save-excursion
- (set-buffer tmpbuf)
- (buffer-disable-undo (current-buffer))
- (erase-buffer)
+ (let ((artbuf (current-buffer)))
+ (nnheader-temp-write nil
(insert-buffer-substring artbuf)
;; Append newline at end of the buffer as separator, and then
;; save it to file.
(goto-char (point-max))
(insert "\n")
- (append-to-file (point-min) (point-max) file-name))
- (kill-buffer tmpbuf)))
+ (append-to-file (point-min) (point-max) file-name))))
(defun gnus-convert-article-to-rmail ()
"Convert article in current buffer to Rmail message format."
(setq message-buffer-list
(nconc message-buffer-list (list (current-buffer))))))
+(defvar mc-modes-alist)
(defun message-setup (headers &optional replybuffer actions)
(when (and (boundp 'mc-modes-alist)
(not (assq 'message-mode mc-modes-alist)))
(nnoo-import nndb
(nntp))
-
+
(provide 'nndb)
"Concat DIR as directory to FILE."
(concat (file-name-as-directory dir) file))
-(require 'nnheaderems)
+(defun nnheader-ms-strip-cr ()
+ "Strip ^M from the end of all lines."
+ (save-excursion
+ (goto-char (point-min))
+ (while (re-search-forward "\r$" nil t)
+ (delete-backward-char 1))))
+
+(fset 'nnheader-run-at-time 'run-at-time)
+(fset 'nnheader-cancel-timer 'cancel-timer)
+(fset 'nnheader-find-file-noselect 'find-file-noselect)
+(fset 'nnheader-insert-file-contents-literally
+ 'insert-file-contents-literally)
+
+(when (string-match "XEmacs\\|Lucid" emacs-version)
+ (require 'nnheaderxm))
(run-hooks 'nnheader-load-hook)
--- /dev/null
+;;; nnheaderxm.el --- making Gnus backends work under XEmacs
+;; Copyright (C) 1996 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Keywords: news
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+(defun nnheader-xmas-run-at-time (time repeat function &rest args)
+ (start-itimer
+ "nnheader-run-at-time"
+ `(lambda ()
+ (,function ,@args))
+ time repeat))
+
+(defun nnheader-xmas-cancel-timer (timer)
+ (delete-itimer timer))
+
+;; Written by Erik Naggum <erik@naggum.no>.
+;; Saved by Steve Baur <steve@miranova.com>.
+(defun nnheader-xmas-insert-file-contents-literally (filename &optional visit beg end replace)
+ "Like `insert-file-contents', q.v., but only reads in the file.
+A buffer may be modified in several ways after reading into the buffer due
+to advanced Emacs features, such as file-name-handlers, format decoding,
+find-file-hooks, etc.
+ This function ensures that none of these modifications will take place."
+ (let ( ; (file-name-handler-alist nil)
+ (format-alist nil)
+ (after-insert-file-functions nil)
+ (find-buffer-file-type-function
+ (if (fboundp 'find-buffer-file-type)
+ (symbol-function 'find-buffer-file-type)
+ nil)))
+ (unwind-protect
+ (progn
+ (fset 'find-buffer-file-type (lambda (filename) t))
+ (insert-file-contents filename visit beg end replace))
+ (if find-buffer-file-type-function
+ (fset 'find-buffer-file-type find-buffer-file-type-function)
+ (fmakunbound 'find-buffer-file-type)))))
+
+(defun nnheader-xmas-find-file-noselect (filename &optional nowarn rawfile)
+ "Read file FILENAME into a buffer and return the buffer.
+If a buffer exists visiting FILENAME, return that one, but
+verify that the file has not changed since visited or saved.
+The buffer is not selected, just returned to the caller."
+ (setq filename
+ (abbreviate-file-name
+ (expand-file-name filename)))
+ (if (file-directory-p filename)
+ (if find-file-run-dired
+ (dired-noselect filename)
+ (error "%s is a directory." filename))
+ (let* ((buf (get-file-buffer filename))
+ (truename (abbreviate-file-name (file-truename filename)))
+ (number (nthcdr 10 (file-attributes truename)))
+ ;; Find any buffer for a file which has same truename.
+ (other (and (not buf)
+ (if (fboundp 'find-buffer-visiting)
+ (find-buffer-visiting filename)
+ (get-file-buffer filename))))
+ error)
+ ;; Let user know if there is a buffer with the same truename.
+ (if other
+ (progn
+ (or nowarn
+ (string-equal filename (buffer-file-name other))
+ (message "%s and %s are the same file"
+ filename (buffer-file-name other)))
+ ;; Optionally also find that buffer.
+ (if (or (and (boundp 'find-file-existing-other-name)
+ find-file-existing-other-name)
+ find-file-visit-truename)
+ (setq buf other))))
+ (if buf
+ (or nowarn
+ (verify-visited-file-modtime buf)
+ (cond ((not (file-exists-p filename))
+ (error "File %s no longer exists!" filename))
+ ((yes-or-no-p
+ (if (string= (file-name-nondirectory filename)
+ (buffer-name buf))
+ (format
+ (if (buffer-modified-p buf)
+ "File %s changed on disk. Discard your edits? "
+ "File %s changed on disk. Reread from disk? ")
+ (file-name-nondirectory filename))
+ (format
+ (if (buffer-modified-p buf)
+ "File %s changed on disk. Discard your edits in %s? "
+ "File %s changed on disk. Reread from disk into %s? ")
+ (file-name-nondirectory filename)
+ (buffer-name buf))))
+ (save-excursion
+ (set-buffer buf)
+ (revert-buffer t t)))))
+ (save-excursion
+;;; The truename stuff makes this obsolete.
+;;; (let* ((link-name (car (file-attributes filename)))
+;;; (linked-buf (and (stringp link-name)
+;;; (get-file-buffer link-name))))
+;;; (if (bufferp linked-buf)
+;;; (message "Symbolic link to file in buffer %s"
+;;; (buffer-name linked-buf))))
+ (setq buf (create-file-buffer filename))
+ ;; (set-buffer-major-mode buf)
+ (set-buffer buf)
+ (erase-buffer)
+ (if rawfile
+ (condition-case ()
+ (nnheader-insert-file-contents-literally filename t)
+ (file-error
+ ;; Unconditionally set error
+ (setq error t)))
+ (condition-case ()
+ (insert-file-contents filename t)
+ (file-error
+ ;; Run find-file-not-found-hooks until one returns non-nil.
+ (or t ; (run-hook-with-args-until-success 'find-file-not-found-hooks)
+ ;; If they fail too, set error.
+ (setq error t)))))
+ ;; Find the file's truename, and maybe use that as visited name.
+ (setq buffer-file-truename truename)
+ (setq buffer-file-number number)
+ ;; On VMS, we may want to remember which directory in a search list
+ ;; the file was found in.
+ (and (eq system-type 'vax-vms)
+ (let (logical)
+ (if (string-match ":" (file-name-directory filename))
+ (setq logical (substring (file-name-directory filename)
+ 0 (match-beginning 0))))
+ (not (member logical find-file-not-true-dirname-list)))
+ (setq buffer-file-name buffer-file-truename))
+ (if find-file-visit-truename
+ (setq buffer-file-name
+ (setq filename
+ (expand-file-name buffer-file-truename))))
+ ;; Set buffer's default directory to that of the file.
+ (setq default-directory (file-name-directory filename))
+ ;; Turn off backup files for certain file names. Since
+ ;; this is a permanent local, the major mode won't eliminate it.
+ (and (not (funcall backup-enable-predicate buffer-file-name))
+ (progn
+ (make-local-variable 'backup-inhibited)
+ (setq backup-inhibited t)))
+ (if rawfile
+ nil
+ (after-find-file error (not nowarn)))))
+ buf)))
+
+(fset 'nnheader-run-at-time 'nnheader-xmas-run-at-time)
+(fset 'nnheader-cancel-timer 'nnheader-xmas-cancel-timer)
+(fset 'nnheader-find-file-noselect 'nnheader-xmas-find-file-noselect)
+(fset 'nnheader-insert-file-contents-literally
+ (if (fboundp 'insert-file-contents-literally)
+ 'insert-file-contents-literally
+ 'nnheader-xmas-insert-file-contents-literally))
+
+(provide 'nnheaderxm)
+
+;;; nnheaderxm.el ends here.
"*A command to be executed to move mail from the inbox.
The default is \"movemail\".")
+(defvar nnmail-pop-password nil
+ "*Password to use when reading mail from a POP server, if required.")
+
+(defvar nnmail-pop-password-required nil
+ "*Non-nil if a password is required when reading mail using POP.")
+
(defvar nnmail-read-incoming-hook nil
"*Hook that will be run after the incoming mail has been transferred.
The incoming mail is moved from `nnmail-spool-file' (which normally is
(if (eq (process-status \"display-time\") 'run)
(display-time-filter display-time-process \"\"))))")
+(when (eq system-type 'windows-nt)
+ (add-hook 'nnmail-prepare-incoming-hook 'nnheader-ms-strip-cr))
+
;; Suggested by Erik Selberg <speed@cs.washington.edu>.
(defvar nnmail-prepare-incoming-hook nil
"*Hook called before treating incoming mail.
;;; Internal variables.
+(eval-and-compile
+ (autoload 'ange-ftp-read-passwd "ange-ftp"))
+
(defvar nnmail-split-fancy-syntax-table
(copy-syntax-table (standard-syntax-table))
"Syntax table used by `nnmail-split-fancy'.")
(list (- (+ (car current) (if rest -1 0)) (car time))
(- (+ (or rest 0) (nth 1 current)) (nth 1 time)))))
-;; Function taken from rmail.el.
+;; Function rewritten from rmail.el.
(defun nnmail-move-inbox (inbox)
"Move INBOX to `nnmail-crash-box'."
(let ((inbox (file-truename
(expand-file-name (substitute-in-file-name inbox))))
(tofile (file-truename (expand-file-name
(substitute-in-file-name nnmail-crash-box))))
- movemail popmail errors)
+ movemail popmail errors password)
;; If getting from mail spool directory,
;; use movemail to move rather than just renaming,
;; so as to interlock with the mailer.
(if (member inbox nnmail-moved-inboxes)
nil
(if popmail
- (message "Getting mail from post office ...")
+ (progn
+ (setq password nnmail-pop-password)
+ (when (and nnmail-pop-password-required (not nnmail-pop-password))
+ (setq password
+ (ange-ftp-read-passwd
+ (format "Password for %s: "
+ (substring inbox (+ popmail 3))))))
+ (message "Getting mail from post office ..."))
(when (or (and (file-exists-p tofile)
(/= 0 (nth 7 (file-attributes tofile))))
(and (file-exists-p inbox)
(setq errors (generate-new-buffer " *nnmail loss*"))
(buffer-disable-undo errors)
(let ((default-directory "/"))
- (call-process
- (expand-file-name nnmail-movemail-program exec-directory)
- nil errors nil inbox tofile))
+ (apply
+ 'call-process
+ (append
+ (list
+ (expand-file-name nnmail-movemail-program exec-directory)
+ nil errors nil inbox tofile)
+ (when password (list password)))))
(if (not (buffer-modified-p errors))
;; No output => movemail won
(push tofile nnmail-moved-inboxes)
nnmh-current-directory)
(int-to-string
(setq article (pop articles))))))
-
(not (file-directory-p file)))
(insert (format "221 %d Article retrieved.\n" article))
(setq beg (point))
dir)
;; Recurse down directories.
(while (setq dir (pop dirs))
- (when (and (not (member (file-name-nondirectory file) '("." "..")))
+ (when (and (not (member (file-name-nondirectory dir) '("." "..")))
(file-directory-p dir)
(file-readable-p dir))
(nnmh-request-list-1 dir))))
dir)
(while dirs
(setq dir (pop dirs))
- (when (and (not (member (file-name-nondirectory file) '("." "..")))
+ (when (and (not (member (file-name-nondirectory dir) '("." "..")))
(file-directory-p dir))
(nnml-generate-nov-databases-1 dir))))
;; Do this directory.
;; large, so we send it piecemeal.
(let ((last (point-min))
(size 100)) ;Size of text sent at once.
- (while (/= last (point-max))
+ (while (and (/= last (point-max))
+ (memq (process-status nntp-server-process) '(open run)))
(process-send-region
nntp-server-process
last (setq last (min (+ last size) (point-max))))
(@code{gnus-group-browse-foreign-server}).
@end table
-@findex gnus-browse-server-mode
+@findex gnus-browse-mode
A new buffer with a list of available groups will appear. This buffer
-will be use the @code{gnus-browse-server-mode}. This buffer looks a bit
+will be use the @code{gnus-browse-mode}. This buffer looks a bit
(well, a lot) like a normal group buffer, but with one major difference
- you can't enter any of the groups. If you want to read any of the
news available on that server, you have to subscribe to the groups you
@item S D b
@kindex S D b (Summary)
@findex gnus-summary-resend-bounced-mail
-@vindex gnus-bounced-headers-junk
@cindex bouncing mail
If you have sent a mail, but the mail was bounced back to you for some
reason (wrong address, transient failure), you can use this command to
resend that bounced mail (@code{gnus-summary-resend-bounced-mail}). You
will be popped into a mail buffer where you can edit the headers before
-sending the mail off again. The headers that match the regexp
-@code{gnus-bounced-headers-junk} (default @samp{^Received:}) are
-automatically deleted first. If you give a prefix to this command, and
+sending the mail off again. If you give a prefix to this command, and
the bounced mail is a reply to some other mail, Gnus will try to fetch
that mail and display it for easy perusal of its headers. This might
very well fail, though.
@item S D r
@kindex S D r (Summary)
@findex gnus-summary-resend-message
-@vindex gnus-ignored-resent-headers
Not to be confused with the previous command,
@code{gnus-summary-resend-message} will prompt you for an address to
send the current message off to, and then send it to that place. The
@code{Resent-To}, @code{Resent-From} and so on will be added. This
means that you actually send a mail to someone that has a @code{To}
header that (probably) points to yourself. This will confuse people.
-So, natcherly you'll only do that if you're really eVIl. All old
-headers that match the regular expression
-@code{gnus-ignored-resent-headers} will be deleted before resending the
-message. The default is @samp{"^Return-receipt"}.
+So, natcherly you'll only do that if you're really eVIl.
This command is mainly used if you have several accounts and want to
ship a mail to a different account of yours. (If you're both
@item e
@kindex e (Pick)
-@findex gnus-uu-unmark-regexp
-Pick articles that match a regexp (@code{gnus-uu-unmark-regexp}).
+@findex gnus-uu-mark-by-regexp
+Pick articles that match a regexp (@code{gnus-uu-mark-by-regexp}).
@item E
@kindex E (Pick)
-@findex gnus-uu-unmark-regexp
-Unpick articles that match a regexp (@code{gnus-uu-unmark-regexp}).
+@findex gnus-uu-unmark-by-regexp
+Unpick articles that match a regexp (@code{gnus-uu-unmark-by-regexp}).
@item b
@kindex b (Pick)
@item B DEL
@kindex B DEL (Summary)
-@findex gnus-summary-delete-articles
+@findex gnus-summary-delete-article
Delete the mail article. This is ``delete'' as in ``delete it from your
disk forever and ever, never to return again.'' Use with caution.
(@code{gnus-summary-delete-article}).
heinous crime.
Remember: Cross-posting is kinda ok, but posting the same article
-separately to several groups is not.
+separately to several groups is not. Massive cross-posting (aka.
+@dfn{velveeta}) is to be avoided.
@cindex cross-posting
@cindex Xref
@kindex C-c C-c (Post)
All commands for posting and mailing will put you in a message buffer
where you can edit the article all you like, before you send the article
-by pressing @kbd{C-c C-c}. (@pxref{(message)Top}). If you are in a
-foreign news group, and you wish to post the article using the foreign
-server, you can give a prefix to @kbd{C-c C-c} to make Gnus try to post
-using the foreign server.
+by pressing @kbd{C-c C-c}. @xref{Top, , Top, message, The Message
+Manual}. If you are in a foreign news group, and you wish to post the
+article using the foreign server, you can give a prefix to @kbd{C-c C-c}
+to make Gnus try to post using the foreign server.
@menu
* Mail:: Mailing and replying.
you don't want to spell-check by hand, you could add automatic
spell-checking via the @code{ispell} package:
-@vindex news-inews-hook
@cindex ispell
@findex ispell-message
@lisp
@table @code
-@item gnus-author-copy
-@vindex gnus-author-copy
-@cindex AUTHORCOPY
-This is a file name, and all outgoing articles will be saved in that
-file. Initialized from the @code{AUTHORCOPY} environment variable.
-
-If this variable begins with the character @samp{|}, outgoing articles
-will be piped to the named program. It is possible to save an article in
-an MH folder as follows:
-
-@lisp
-(setq gnus-author-copy
- "|/usr/local/lib/mh/rcvstore +Article")
-@end lisp
-
-If the first character is not a pipe, articles are saved using the
-function specified by the @code{gnus-author-copy-saver} variable.
-
-@item gnus-author-copy-saver
-@vindex gnus-author-copy-saver
-@findex rmail-output
-A function called to save outgoing articles. This function will be
-called with the same of the file to store the article in. The default
-function is @code{rmail-output} which saves in the Unix mailbox format.
-
@item gnus-outgoing-message-group
@vindex gnus-outgoing-message-group
All outgoing messages will be put in this group. If you want to store
@cindex POP mail
@cindex MAILHOST
@cindex movemail
+@vindex nnmail-pop-password
+@vindex nnmail-pop-password-required
The backends will look for new mail in this file. If this variable is
@code{nil}, the mail backends will never attempt to fetch mail by
themselves. If you are using a POP mail server and your name is
devil! You can also set this variable to @code{pop}, and Gnus will try
to figure out the POP mail string by itself. In any case, Gnus will
call @code{movemail} which will contact the POP server named in the
-@code{MAILHOST} environment variable.
+@code{MAILHOST} environment variable. If the POP server needs a
+password, you can either set @code{nnmail-pop-password-required} to
+@code{t} and be prompted for the password, or set
+@code{nnmail-pop-password} to the password itself.
When you use a mail backend, Gnus will slurp all your mail from your
inbox and plonk it down in your home directory. Gnus doesn't move any
@node Duplicates
@subsection Duplicates
-@vindex nnmail-delete-duplicates
+@vindex nnmail-treat-duplicates
@vindex nnmail-message-id-cache-length
@vindex nnmail-message-id-cache-file
-@vindex nnmail-treat-duplicates
@cindex duplicate mails
If you are a member of a couple of mailing list, you will sometime
receive two copies of the same mail. This can be quite annoying, so
there is controlled by the @code{nnmail-message-id-cache-length}
variable, which is 1000 by default. (So 1000 @code{Message-ID}s will be
stored.) If all this sounds scary to you, you can set
-@code{nnmail-delete-duplicates} to @code{warn} (which is what it is by
+@code{nnmail-treat-duplicates} to @code{warn} (which is what it is by
default), and @code{nnmail} won't delete duplicate mails. Instead it
will generate a brand new @code{Message-ID} for the mail and insert a
warning into the head of the mail saying that it thinks that this is a
Require confirmation before catching up a group if non-@code{nil}. It
is @code{t} by default.
-@item gnus-interactive-post
-@vindex gnus-interactive-post
-If non-@code{nil}, the user will be prompted for a group name when
-posting an article. It is @code{t} by default.
-
@item gnus-interactive-exit
@vindex gnus-interactive-exit
Require confirmation before exiting Gnus. This variable is @code{t} by
frame will be created where picons will be shown. As you can see,
instead of the normal @code{1.0} top-level spec, each additional split
should have a frame parameter alist as the size spec.
-@xref{(elisp)Frame Parameters}.
+@xref{Frame Parameters, , Frame Parameters, elisp, The GNU Emacs Lisp
+Reference Manual}.
Here's a list of all possible keys for
@code{gnus-buffer-configuration}:
@code{(invisible t intangible t)} by default on most systems, which
makes invisible text invisible and intangible.
-@item gnus-parse-header-hook
-@vindex gnus-parse-header-hook
+@item gnus-parse-headers-hook
+@vindex gnus-parse-headers-hook
A hook called before parsing headers. It can be used, for instance, to
gather statistics on the headers fetched, or perhaps you'd like to prune
some headers. I don't see why you'd want that, though.