+Sat Feb 14 19:28:01 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Quassia Gnus v0.26 is released.
+
+Sat Feb 14 18:40:55 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-agent.el (gnus-agent-directory): Translate file chars.
+
+ * gnus-sum.el (gnus-summary-print-article): Don't display all
+ headers.
+ (gnus-summary-edit-parameters): New command and keystroke.
+
+ * gnus-group.el (gnus-group-rename-group): Mark dribble.
+
+Sat Feb 14 18:39:45 1998 Fred Oberhauser <foberhauser@psipenta.de>
+
+ * nnmail.el (nnmail-process-babyl-mail-format): Fix point
+ movement.
+
+Sat Feb 14 18:31:39 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.el (gnus-group-get-parameter): Dix fix.
+
+Sat Feb 14 18:29:12 1998 Kim-Minh Kaplan <KimMinh.Kaplan@utopia.eunet.fr>
+
+ * gnus-picon.el: Updated documentation.
+
+Sat Feb 14 18:26:53 1998 Joev Dubach <dubach@dcepea.harvard.edu>
+
+ * nntp.el (nntp-send-authinfo-from-file): Doc fix.
+
+Sun Jan 11 23:44:12 1998 Ken Raeburn <raeburn@cygnus.com>
+
+ * nnagent.el (nnagent-request-update-info): New no-op fn.
+
+Sat Feb 14 17:41:44 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-srvr.el (gnus-browse-unsubscribe-group): Wouldn't allow
+ subscription of visited groups.
+
+ * gnus-util.el (gnus-run-hooks): New function.
+ Use it everywhere.
+
+ * nntp.el (nntp-authinfo-password): New variable.
+ (nntp-send-authinfo): Cache authinfo password.
+
+ * gnus-sum.el (gnus-summary-mark-article-as-unread): Don't do
+ anything if the mark doesn't change.
+
+1998-01-17 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus-sum.el (gnus-summary-work-articles): change buffer
+ before looking at marked articles
+ (gnus-summary-work-articles): better check of marked articles
+
+Sat Feb 14 15:10:36 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nntp.el (nntp-send-authinfo): Use new .netrc functionality.
+
+ * gnus-util.el (gnus-netrc-syntax-table): New variable.
+ (gnus-parse-netrc): New function.
+ (gnus-netrc-machine): Ditto.
+ (gnus-netrc-get): Ditto.
+
+ * gnus-draft.el (gnus-draft-make-menu-bar): Added deletion.
+
+ * gnus.el (gnus-expert-user): Dix fox.
+
+ * nnmail.el (nnmail-article-group): Remove duplicates from split.
+
+ * message.el (message-check-news-header-syntax): Check more on
+ Message-ID.
+
+ * nnmh.el: Don't call nnmail-activate.
+
+ * gnus.el: User-variabelize all custom vars.
+
Fri Feb 13 22:40:39 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Quassia Gnus v0.25 is released.
;;; dgnushack.el --- a hack to set the load path for byte-compiling
-;; Copyright (C) 1994,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Version: 4.19
;; Copyright (C) 1996 Free Software Foundation
;; Author: Steven L. Baur <steve@miranova.com>
-;; Keywords: news fun sound
-
-;; 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)
:group 'gnus-visual)
(defcustom earcon-auto-play nil
- "When True, automatically play sounds as well as buttonize them."
+ "*When True, automatically play sounds as well as buttonize them."
:type 'boolean
:group 'earcon)
(defcustom earcon-prefix "**"
- "String denoting the start of an earcon."
+ "*String denoting the start of an earcon."
:type 'string
:group 'earcon)
(defcustom earcon-suffix "**"
- "String denoting the end of an earcon."
+ "*String denoting the end of an earcon."
:type 'string
:group 'earcon)
("cackle" 1 "witch.au")
("yell\\|roar" 1 "yell2.au")
("whoop-de-doo" 1 "whistle.au"))
- "A list of regexps to map earcons to real sounds."
+ "*A list of regexps to map earcons to real sounds."
:type '(repeat (list regexp
(integer :tag "Match")
(string :tag "Sound")))
;;; gnus-agent.el --- unplugged support for Gnus
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98 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
(eval-when-compile (require 'cl))
(defcustom gnus-agent-directory (nnheader-concat gnus-directory "agent/")
- "Where the Gnus agent will store its files."
+ "*Where the Gnus agent will store its files."
:group 'gnus-agent
:type 'directory)
(defcustom gnus-agent-plugged-hook nil
- "Hook run when plugging into the network."
+ "*Hook run when plugging into the network."
:group 'gnus-agent
:type 'hook)
(defcustom gnus-agent-unplugged-hook nil
- "Hook run when unplugging from the network."
+ "*Hook run when unplugging from the network."
:group 'gnus-agent
:type 'hook)
(defcustom gnus-agent-handle-level gnus-level-subscribed
- "Groups on levels higher than this variable will be ignored by the Agent."
+ "*Groups on levels higher than this variable will be ignored by the Agent."
:group 'gnus-agent
:type 'integer)
(defsubst gnus-agent-directory ()
"Path of the Gnus agent directory."
- (nnheader-concat gnus-agent-directory (gnus-agent-method) "/"))
+ (nnheader-concat gnus-agent-directory
+ (nnheader-translate-file-chars (gnus-agent-method)) "/"))
(defun gnus-agent-lib-file (file)
"The full path of the Gnus agent library FILE."
buffer))))
minor-mode-map-alist))
(gnus-agent-toggle-plugged gnus-plugged)
- (run-hooks 'gnus-agent-mode-hook)))
+ (gnus-run-hooks 'gnus-agent-mode-hook)))
(defvar gnus-agent-group-mode-map (make-sparse-keymap))
(gnus-define-keys gnus-agent-group-mode-map
(interactive (list (not gnus-plugged)))
(if plugged
(progn
- (run-hooks 'gnus-agent-plugged-hook)
+ (gnus-run-hooks 'gnus-agent-plugged-hook)
(setcar (cdr gnus-agent-mode-status) " Plugged"))
(gnus-agent-close-connections)
- (run-hooks 'gnus-agent-unplugged-hook)
+ (gnus-run-hooks 'gnus-agent-unplugged-hook)
(setcar (cdr gnus-agent-mode-status) " Unplugged"))
(setq gnus-plugged plugged)
(set-buffer-modified-p t))
["Edit groups" gnus-category-edit-groups t]
["Exit" gnus-category-exit t]))
- (run-hooks 'gnus-category-menu-hook)))
+ (gnus-run-hooks 'gnus-category-menu-hook)))
(defun gnus-category-mode ()
"Major mode for listing and editing agent categories.
(buffer-disable-undo (current-buffer))
(setq truncate-lines t)
(setq buffer-read-only t)
- (run-hooks 'gnus-category-mode-hook))
+ (gnus-run-hooks 'gnus-category-mode-hook))
(defalias 'gnus-category-position-point 'gnus-goto-colon)
;;; gnus-art.el --- article mode commands for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
"^Date-Received:" "^References:" "^Control:" "^Xref:" "^Lines:"
"^Posted:" "^Relay-Version:" "^Message-ID:" "^Nf-ID:" "^Nf-From:"
"^Approved:" "^Sender:" "^Received:" "^Mail-from:")
- "All headers that start with this regexp will be hidden.
+ "*All headers that start with this regexp will be hidden.
This variable can also be a list of regexps of headers to be ignored.
If `gnus-visible-headers' is non-nil, this variable will be ignored."
:type '(choice :custom-show nil
(defcustom gnus-visible-headers
"^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-From:\\|X-Sent:"
- "All headers that do not match this regexp will be hidden.
+ "*All headers that do not match this regexp will be hidden.
This variable can also be a list of regexp of headers to remain visible.
If this variable is non-nil, `gnus-ignored-headers' will be ignored."
:type '(repeat :value-to-internal (lambda (widget value)
(defcustom gnus-sorted-header-list
'("^From:" "^Subject:" "^Summary:" "^Keywords:" "^Newsgroups:"
"^Followup-To:" "^To:" "^Cc:" "^Date:" "^Organization:")
- "This variable is a list of regular expressions.
+ "*This variable is a list of regular expressions.
If it is non-nil, headers that match the regular expressions will
be placed first in the article buffer in the sequence specified by
this list."
:group 'gnus-article-hiding)
(defcustom gnus-boring-article-headers '(empty followup-to reply-to)
- "Headers that are only to be displayed if they have interesting data.
+ "*Headers that are only to be displayed if they have interesting data.
Possible values in this list are `empty', `newsgroups', `followup-to',
`reply-to', `date', `long-to', and `many-to'."
:type '(set (const :tag "Headers with no content." empty)
:group 'gnus-article-hiding)
(defcustom gnus-signature-separator '("^-- $" "^-- *$")
- "Regexp matching signature separator.
+ "*Regexp matching signature separator.
This can also be a list of regexps. In that case, it will be checked
from head to tail looking for a separator. Searches will be done from
the end of the buffer."
:group 'gnus-article-signature)
(defcustom gnus-signature-limit nil
- "Provide a limit to what is considered a signature.
+ "*Provide a limit to what is considered a signature.
If it is a number, no signature may not be longer (in characters) than
that number. If it is a floating point number, no signature may be
longer (in lines) than that number. If it is a function, the function
:group 'gnus-article-signature)
(defcustom gnus-hidden-properties '(invisible t intangible t)
- "Property list to use for hiding text."
+ "*Property list to use for hiding text."
:type 'sexp
:group 'gnus-article-hiding)
(defcustom gnus-article-x-face-command
"{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -"
- "String or function to be executed to display an X-Face header.
+ "*String or function to be executed to display an X-Face header.
If it is a string, the command will be executed in a sub-shell
asynchronously. The compressed face will be piped to this command."
:type 'string ;Leave function case to Lisp.
:group 'gnus-article-washing)
(defcustom gnus-article-x-face-too-ugly nil
- "Regexp matching posters whose face shouldn't be shown automatically."
+ "*Regexp matching posters whose face shouldn't be shown automatically."
:type '(choice regexp (const nil))
:group 'gnus-article-washing)
(format format (car spec) (cadr spec))
2 3 (intern (format "gnus-emphasis-%s" (caddr spec)))))
types)))
- "Alist that says how to fontify certain phrases.
+ "*Alist that says how to fontify certain phrases.
Each item looks like this:
(\"_\\\\(\\\\w+\\\\)_\" 0 1 'underline)
:group 'gnus-article-emphasis)
(defcustom gnus-article-time-format "%a, %b %d %Y %T %Z"
- "Format for display of Date headers in article bodies.
+ "*Format for display of Date headers in article bodies.
See `format-time-string' for the possible values.
The variable can also be function, which should return a complete Date
(sexp :tag "once" :format "%t\n" :value t)))
(defcustom gnus-saved-headers gnus-visible-headers
- "Headers to keep if `gnus-save-all-headers' is nil.
+ "*Headers to keep if `gnus-save-all-headers' is nil.
If `gnus-save-all-headers' is non-nil, this variable will be ignored.
If that variable is nil, however, all headers that match this regexp
will be kept while the rest will be deleted before saving."
:type 'regexp)
(defcustom gnus-default-article-saver 'gnus-summary-save-in-rmail
- "A function to save articles in your favourite format.
+ "*A function to save articles in your favourite format.
The function must be interactively callable (in other words, it must
be an Emacs command).
(function-item gnus-summary-write-to-file)))
(defcustom gnus-rmail-save-name 'gnus-plain-save-name
- "A function generating a file name to save articles in Rmail format.
+ "*A function generating a file name to save articles in Rmail format.
The function is called with NEWSGROUP, HEADERS, and optional LAST-FILE."
:group 'gnus-article-saving
:type 'function)
(defcustom gnus-mail-save-name 'gnus-plain-save-name
- "A function generating a file name to save articles in Unix mail format.
+ "*A function generating a file name to save articles in Unix mail format.
The function is called with NEWSGROUP, HEADERS, and optional LAST-FILE."
:group 'gnus-article-saving
:type 'function)
(defcustom gnus-folder-save-name 'gnus-folder-save-name
- "A function generating a file name to save articles in MH folder.
+ "*A function generating a file name to save articles in MH folder.
The function is called with NEWSGROUP, HEADERS, and optional LAST-FOLDER."
:group 'gnus-article-saving
:type 'function)
(defcustom gnus-file-save-name 'gnus-numeric-save-name
- "A function generating a file name to save articles in article format.
+ "*A function generating a file name to save articles in article format.
The function is called with NEWSGROUP, HEADERS, and optional
LAST-FILE."
:group 'gnus-article-saving
(defcustom gnus-split-methods
'((gnus-article-archive-name)
(gnus-article-nndoc-name))
- "Variable used to suggest where articles are to be saved.
+ "*Variable used to suggest where articles are to be saved.
For instance, if you would like to save articles related to Gnus in
the file \"gnus-stuff\", and articles related to VM in \"vm-stuff\",
you could set this variable to something like:
:type 'boolean)
(defcustom gnus-show-mime-method 'metamail-buffer
- "Function to process a MIME message.
+ "*Function to process a MIME message.
The function is called from the article buffer."
:group 'gnus-article-mime
:type 'function)
:group 'gnus-article-various)
(defcustom gnus-article-button-face 'bold
- "Face used for highlighting buttons in the article buffer.
+ "*Face used for highlighting buttons in the article buffer.
An article button is a piece of text that you can activate by pressing
`RET' or `mouse-2' above it."
:group 'gnus-article-buttons)
(defcustom gnus-article-mouse-face 'highlight
- "Face used for mouse highlighting in the article buffer.
+ "*Face used for mouse highlighting in the article buffer.
Article buttons will be displayed in this face when the cursor is
above them."
:group 'gnus-article-buttons)
(defcustom gnus-signature-face 'gnus-signature-face
- "Face used for highlighting a signature in the article buffer.
+ "*Face used for highlighting a signature in the article buffer.
Obsolete; use the face `gnus-signature-face' for customizations instead."
:type 'face
:group 'gnus-article-highlight
("Subject" nil gnus-header-subject-face)
("Newsgroups:.*," nil gnus-header-newsgroups-face)
("" gnus-header-name-face gnus-header-content-face))
- "Controls highlighting of article header.
+ "*Controls highlighting of article header.
An alist of the form (HEADER NAME CONTENT).
(gnus-article-hide-text-type
(match-beginning 0) (match-end 0) 'pgp))
(widen))
- (run-hooks 'gnus-article-hide-pgp-hook))))))
+ (gnus-run-hooks 'gnus-article-hide-pgp-hook))))))
(defun article-hide-pem (&optional arg)
"Toggle hiding of any PEM headers and signatures in the current article.
(define-key gnus-article-mode-map [menu-bar post]
(cons "Post" gnus-summary-post-menu)))
- (run-hooks 'gnus-article-menu-hook)))
+ (gnus-run-hooks 'gnus-article-menu-hook)))
(defun gnus-article-mode ()
"Major mode for displaying an article.
(buffer-disable-undo (current-buffer))
(setq buffer-read-only t)
(set-syntax-table gnus-article-mode-syntax-table)
- (run-hooks 'gnus-article-mode-hook))
+ (gnus-run-hooks 'gnus-article-mode-hook))
(defun gnus-article-setup-buffer ()
"Initialize the article buffer."
(setq gnus-current-headers nil))
(gnus-summary-goto-subject gnus-current-article)
(gnus-summary-show-thread)
- (run-hooks 'gnus-mark-article-hook)
+ (gnus-run-hooks 'gnus-mark-article-hook)
(gnus-set-mode-line 'summary)
(when (gnus-visual-p 'article-highlight 'highlight)
- (run-hooks 'gnus-visual-mark-article-hook))
+ (gnus-run-hooks 'gnus-visual-mark-article-hook))
;; Set the global newsgroup variables here.
;; Suggested by Jim Sisolak
;; <sisolak@trans4.neep.wisc.edu>.
;; Hooks for getting information from the article.
;; This hook must be called before being narrowed.
(let (buffer-read-only)
- (run-hooks 'internal-hook)
- (run-hooks 'gnus-article-prepare-hook)
+ (gnus-run-hooks 'internal-hook)
+ (gnus-run-hooks 'gnus-article-prepare-hook)
;; Decode MIME message.
(when gnus-show-mime
(if (or (not gnus-strict-mime)
(funcall gnus-show-mime-method))
(funcall gnus-decode-encoded-word-method)))
;; Perform the article display hooks.
- (run-hooks 'gnus-article-display-hook))
+ (gnus-run-hooks 'gnus-article-display-hook))
;; Do page break.
(goto-char (point-min))
(setq gnus-page-broken
;;;
(defcustom gnus-article-edit-mode-hook nil
- "Hook run in article edit mode buffers."
+ "*Hook run in article edit mode buffers."
:group 'gnus-article-various
:type 'hook)
(setq buffer-read-only nil)
(buffer-enable-undo)
(widen)
- (run-hooks 'text-mode 'gnus-article-edit-mode-hook))
+ (gnus-run-hooks 'text-mode 'gnus-article-edit-mode-hook))
(defun gnus-article-edit (&optional force)
"Edit the current article.
;;; Internal Variables:
(defcustom gnus-button-url-regexp "\\b\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?\\([-a-zA-Z0-9_=!?#$@~`%&*+|\\/:;.,]\\|\\w\\)+\\([-a-zA-Z0-9_=#$@~`%&*+|\\/]\\|\\w\\)"
- "Regular expression that matches URLs."
+ "*Regular expression that matches URLs."
:group 'gnus-article-buttons
:type 'regexp)
("<URL: *\\([^>]*\\)>" 0 t gnus-button-embedded-url 1)
;; Raw URLs.
(,gnus-button-url-regexp 0 t gnus-button-url 0))
- "Alist of regexps matching buttons in article bodies.
+ "*Alist of regexps matching buttons in article bodies.
Each entry has the form (REGEXP BUTTON FORM CALLBACK PAR...), where
REGEXP: is the string matching text around the button,
("^[^:]+:" ,gnus-button-url-regexp 0 t gnus-button-url 0)
("^[^:]+:" "\\(<\\(url: \\)?news:\\([^>\n ]*\\)>\\)" 1 t
gnus-button-message-id 3))
- "Alist of headers and regexps to match buttons in article heads.
+ "*Alist of headers and regexps to match buttons in article heads.
This alist is very similar to `gnus-button-alist', except that each
alist has an additional HEADER element first in each entry:
;;; gnus-async.el --- asynchronous support for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
(integer :tag "some" 0)))
(defcustom gnus-prefetched-article-deletion-strategy '(read exit)
- "List of symbols that say when to remove articles from the prefetch buffer.
+ "*List of symbols that say when to remove articles from the prefetch buffer.
Possible values in this list are `read', which means that
articles are removed as they are read, and `exit', which means
that all articles belonging to a group are removed on exit
:type 'boolean)
(defcustom gnus-async-prefetch-article-p 'gnus-async-unread-p
- "Function called to say whether an article should be prefetched or not.
+ "*Function called to say whether an article should be prefetched or not.
The function is called with one parameter -- the article data.
It should return non-nil if the article is to be prefetched."
:group 'gnus-asynchronous
;; Copyright (C) 1996 Free Software Foundation
;; Author: Steven L. Baur <steve@miranova.com>
-;; Keywords: news
;; This file is part of GNU Emacs.
; "Enable Sound Effects for Gnus."
; (interactive)
; (setq gnus-audio-effects-enabled t)
-; (run-hooks gnus-audio-enable-hooks))
+; (gnus-run-hooks gnus-audio-enable-hooks))
;;;###autoload
;(defun gnus-audio-disable-sound ()
; "Disable Sound Effects for Gnus."
; (interactive)
; (setq gnus-audio-effects-enabled nil)
-; (run-hooks gnus-audio-disable-hooks))
+; (gnus-run-hooks gnus-audio-disable-hooks))
;;;###autoload
(defun gnus-audio-play (file)
;;; gnus-bcklg.el --- backlog functions for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-cache.el --- cache interface for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
:type 'file)
(defcustom gnus-cache-enter-articles '(ticked dormant)
- "Classes of articles to enter into the cache."
+ "*Classes of articles to enter into the cache."
:group 'gnus-cache
:type '(set (const ticked) (const dormant) (const unread) (const read)))
(defcustom gnus-cache-remove-articles '(read)
- "Classes of articles to remove from the cache."
+ "*Classes of articles to remove from the cache."
:group 'gnus-cache
:type '(set (const ticked) (const dormant) (const unread) (const read)))
;;; gnus-cite.el --- parse citations in articles for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
;; Keywords: news, mail
(defcustom gnus-cite-reply-regexp
"^\\(Subject: Re\\|In-Reply-To\\|References\\):"
- "If headers match this regexp it is reasonable to believe that
+ "*If headers match this regexp it is reasonable to believe that
article has citations."
:group 'gnus-cite
:type 'string)
(defcustom gnus-cite-always-check nil
- "Check article always for citations. Set it t to check all articles."
+ "*Check article always for citations. Set it t to check all articles."
:group 'gnus-cite
:type '(choice (const :tag "no" nil)
(const :tag "yes" t)))
(defcustom gnus-cited-text-button-line-format "%(%{[...]%}%)\n"
- "Format of cited text buttons."
+ "*Format of cited text buttons."
:group 'gnus-cite
:type 'string)
(defcustom gnus-cited-lines-visible nil
- "The number of lines of hidden cited text to remain visible."
+ "*The number of lines of hidden cited text to remain visible."
:group 'gnus-cite
:type '(choice (const :tag "none" nil)
integer))
(defcustom gnus-cite-parse-max-size 25000
- "Maximum article size (in bytes) where parsing citations is allowed.
+ "*Maximum article size (in bytes) where parsing citations is allowed.
Set it to nil to parse all articles."
:group 'gnus-cite
:type '(choice (const :tag "all" nil)
(defcustom gnus-cite-prefix-regexp
"^[]>|:}+ ]*[]>|:}+]\\(.*>\\)?\\|^.*>"
- "Regexp matching the longest possible citation prefix on a line."
+ "*Regexp matching the longest possible citation prefix on a line."
:group 'gnus-cite
:type 'regexp)
(defcustom gnus-cite-max-prefix 20
- "Maximum possible length for a citation prefix."
+ "*Maximum possible length for a citation prefix."
:group 'gnus-cite
:type 'integer)
(defcustom gnus-supercite-regexp
(concat "^\\(" gnus-cite-prefix-regexp "\\)? *"
">>>>> +\"\\([^\"\n]+\\)\" +==")
- "Regexp matching normal Supercite attribution lines.
+ "*Regexp matching normal Supercite attribution lines.
The first grouping must match prefixes added by other packages."
:group 'gnus-cite
:type 'regexp)
(defcustom gnus-supercite-secondary-regexp "^.*\"\\([^\"\n]+\\)\" +=="
- "Regexp matching mangled Supercite attribution lines.
+ "*Regexp matching mangled Supercite attribution lines.
The first regexp group should match the Supercite attribution."
:group 'gnus-cite
:type 'regexp)
(defcustom gnus-cite-minimum-match-count 2
- "Minimum number of identical prefixes before we believe it's a citation."
+ "*Minimum number of identical prefixes before we believe it's a citation."
:group 'gnus-cite
:type 'integer)
(defcustom gnus-cite-attribution-prefix
"in article\\|in <\\|On \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),"
- "Regexp matching the beginning of an attribution line."
+ "*Regexp matching the beginning of an attribution line."
:group 'gnus-cite
:type 'regexp)
(defcustom gnus-cite-attribution-suffix
"\\(\\(wrote\\|writes\\|said\\|says\\|>\\)\\(:\\|\\.\\.\\.\\)\\)[ \t]*$"
- "Regexp matching the end of an attribution line.
+ "*Regexp matching the end of an attribution line.
The text matching the first grouping will be used as a button."
:group 'gnus-cite
:type 'regexp)
"Face used for attribution lines.")
(defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
- "Face used for attribution lines.
+ "*Face used for attribution lines.
It is merged with the face for the cited text belonging to the attribution."
:group 'gnus-cite
:type 'face)
'(gnus-cite-face-1 gnus-cite-face-2 gnus-cite-face-3 gnus-cite-face-4
gnus-cite-face-5 gnus-cite-face-6 gnus-cite-face-7 gnus-cite-face-8
gnus-cite-face-9 gnus-cite-face-10 gnus-cite-face-11)
- "List of faces used for highlighting citations.
+ "*List of faces used for highlighting citations.
When there are citations from multiple articles in the same message,
Gnus will try to give each citation from each article its own face.
:type '(repeat face))
(defcustom gnus-cite-hide-percentage 50
- "Only hide excess citation if above this percentage of the body."
+ "*Only hide excess citation if above this percentage of the body."
:group 'gnus-cite
:type 'number)
(defcustom gnus-cite-hide-absolute 10
- "Only hide excess citation if above this number of lines in the body."
+ "*Only hide excess citation if above this number of lines in the body."
:group 'gnus-cite
:type 'integer)
(setq major-mode 'gnus-custom-mode
mode-name "Gnus Customize")
(use-local-map widget-keymap)
- (run-hooks 'gnus-custom-mode-hook))
+ (gnus-run-hooks 'gnus-custom-mode-hook))
;;; Group Customization:
;;; gnus-demon.el --- daemonic Gnus behaviour
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
:group 'gnus)
(defcustom gnus-demon-handlers nil
- "Alist of daemonic handlers to be run at intervals.
+ "*Alist of daemonic handlers to be run at intervals.
Each handler is a list on the form
\(FUNCTION TIME IDLE)
;;; gnus-draft.el --- draft message support for Gnus
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98 Free Software Foundation, Inc.
-;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Author: Lars Magne Ingebrigtgnus-run-hooks
;; Keywords: news
;; This file is part of GNU Emacs.
["Toggle whether to send" gnus-draft-toggle-sending t]
["Edit" gnus-draft-edit-message t]
["Send selected message(s)" gnus-draft-send-message t]
- ["Send all messages" gnus-draft-send-all-messages t]))))
+ ["Send all messages" gnus-draft-send-all-messages t]
+ ["Delete draft" gnus-summary-delete-article t]))))
(defun gnus-draft-mode (&optional arg)
"Minor mode for providing a draft summary buffers.
(when (gnus-visual-p 'draft-menu 'menu)
(gnus-draft-make-menu-bar))
(gnus-add-minor-mode 'gnus-draft-mode " Draft" gnus-draft-mode-map)
- (run-hooks 'gnus-draft-mode-hook))))
+ (gnus-run-hooks 'gnus-draft-mode-hook))))
;;; Commands
;;; gnus-dup.el --- suppression of duplicate articles in Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-eform.el --- a mode for editing forms for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
:group 'gnus)
(defcustom gnus-edit-form-mode-hook nil
- "Hook run in `gnus-edit-form-mode' buffers."
+ "*Hook run in `gnus-edit-form-mode' buffers."
:group 'gnus-edit-form
:type 'hook)
(defcustom gnus-edit-form-menu-hook nil
- "Hook run when creating menus in `gnus-edit-form-mode' buffers."
+ "*Hook run when creating menus in `gnus-edit-form-mode' buffers."
:group 'gnus-edit-form
:type 'hook)
'("Edit Form"
["Exit and save changes" gnus-edit-form-done t]
["Exit" gnus-edit-form-exit t]))
- (run-hooks 'gnus-edit-form-menu-hook)))
+ (gnus-run-hooks 'gnus-edit-form-menu-hook)))
(defun gnus-edit-form-mode ()
"Major mode for editing forms.
(use-local-map gnus-edit-form-mode-map)
(make-local-variable 'gnus-edit-form-done-function)
(make-local-variable 'gnus-prev-winconf)
- (run-hooks 'gnus-edit-form-mode-hook))
+ (gnus-run-hooks 'gnus-edit-form-mode-hook))
(defun gnus-edit-form (form documentation exit-func)
"Edit FORM in a new buffer.
;;; gnus-ems.el --- functions for making Gnus work under different Emacsen
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-gl.el --- an interface to GroupLens for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Brad Miller <bmiller@cs.umn.edu>
;; Keywords: news, score
(gnus-grouplens-make-menu-bar))
(gnus-add-minor-mode
'gnus-grouplens-mode " GroupLens" gnus-grouplens-mode-map)
- (run-hooks 'gnus-grouplens-mode-hook))))
+ (gnus-run-hooks 'gnus-grouplens-mode-hook))))
(provide 'gnus-gl)
;;; gnus-group.el --- group mode commands for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
:type 'string)
(defcustom gnus-group-mode-hook nil
- "Hook for Gnus group mode."
+ "*Hook for Gnus group mode."
:group 'gnus-group-various
:options '(gnus-topic-mode)
:type 'hook)
(defcustom gnus-group-menu-hook nil
- "Hook run after the creation of the group mode menu."
+ "*Hook run after the creation of the group mode menu."
:group 'gnus-group-various
:type 'hook)
(defcustom gnus-group-catchup-group-hook nil
- "Hook run when catching up a group from the group buffer."
+ "*Hook run when catching up a group from the group buffer."
:group 'gnus-group-various
:link '(custom-manual "(gnus)Group Data")
:type 'hook)
(defcustom gnus-group-update-group-hook nil
- "Hook called when updating group lines."
+ "*Hook called when updating group lines."
:group 'gnus-group-visual
:type 'hook)
:type 'function)
(defcustom gnus-group-prepare-hook nil
- "Hook called after the group buffer has been generated.
+ "*Hook called after the group buffer has been generated.
If you want to modify the group buffer, you can use this hook."
:group 'gnus-group-listing
:type 'hook)
(defcustom gnus-suspend-gnus-hook nil
- "Hook called when suspending (not exiting) Gnus."
+ "*Hook called when suspending (not exiting) Gnus."
:group 'gnus-exit
:type 'hook)
(defcustom gnus-exit-gnus-hook nil
- "Hook called when exiting Gnus."
+ "*Hook called when exiting Gnus."
:group 'gnus-exit
:type 'hook)
(defcustom gnus-after-exiting-gnus-hook nil
- "Hook called after exiting Gnus."
+ "*Hook called after exiting Gnus."
:group 'gnus-exit
:type 'hook)
(defcustom gnus-group-update-hook '(gnus-group-highlight-line)
- "Hook called when a group line is changed.
+ "*Hook called when a group line is changed.
The hook will not be called if `gnus-visual' is nil.
The default function `gnus-group-highlight-line' will
(unless file
(error "Couldn't find doc group"))
file))))))
- "Alist of useful group-server pairs."
+ "*Alist of useful group-server pairs."
:group 'gnus-group-listing
:type '(repeat (list (string :tag "Description")
(string :tag "Name")
gnus-group-mail-low-empty-face)
(t .
gnus-group-mail-low-face))
- "Controls the highlighting of group buffer lines.
+ "*Controls the highlighting of group buffer lines.
Below is a list of `Form'/`Face' pairs. When deciding how a a
particular group line should be displayed, each form is
:type '(repeat (cons (sexp :tag "Form") face)))
(defcustom gnus-new-mail-mark ?%
- "Mark used for groups with new mail."
+ "*Mark used for groups with new mail."
:group 'gnus-group-visual
:type 'character)
["Exit from Gnus" gnus-group-exit t]
["Exit without saving" gnus-group-quit t]))
- (run-hooks 'gnus-group-menu-hook)))
+ (gnus-run-hooks 'gnus-group-menu-hook)))
(defun gnus-group-mode ()
"Major mode for reading news.
(add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
(when gnus-use-undo
(gnus-undo-mode 1))
- (run-hooks 'gnus-group-mode-hook))
+ (gnus-run-hooks 'gnus-group-mode-hook))
(defun gnus-update-group-mark-positions ()
(save-excursion
(gnus-group-set-mode-line)
(setq gnus-group-list-mode (cons level all))
- (run-hooks 'gnus-group-prepare-hook)
+ (gnus-run-hooks 'gnus-group-prepare-hook)
t))
(defun gnus-group-prepare-flat-list-dead (groups level mark regexp)
gnus-level ,gnus-tmp-level))
(when (inline (gnus-visual-p 'group-highlight 'highlight))
(forward-line -1)
- (run-hooks 'gnus-group-update-hook)
+ (gnus-run-hooks 'gnus-group-update-hook)
(forward-line))
;; Allow XEmacs to remove front-sticky text properties.
(gnus-group-remove-excess-properties)))
(gnus-group-insert-group-line-info group)
(save-excursion
(forward-line -1)
- (run-hooks 'gnus-group-update-group-hook)))
+ (gnus-run-hooks 'gnus-group-update-group-hook)))
(setq loc (1+ loc)))
(unless (or found visible-only)
;; No such line in the buffer, find out where it's supposed to
(gnus-group-insert-group-line-info group)
(save-excursion
(forward-line -1)
- (run-hooks 'gnus-group-update-group-hook))))
+ (gnus-run-hooks 'gnus-group-update-group-hook))))
(when gnus-group-update-group-function
(funcall gnus-group-update-group-function group))
(gnus-group-set-mode-line)))
(gnus-set-active new-name (gnus-active group))
(gnus-message 6 "Renaming group %s to %s...done" group new-name)
new-name)
+ (gnus-dribble-touch)
(gnus-group-position-point)))
(defun gnus-group-edit-group (group &optional part)
(gnus-add-marked-articles group 'tick nil nil 'force)
(gnus-add-marked-articles group 'dormant nil nil 'force))
(let ((gnus-newsgroup-name group))
- (run-hooks 'gnus-group-catchup-group-hook))
+ (gnus-run-hooks 'gnus-group-catchup-group-hook))
num))))
(defun gnus-group-expire-articles (&optional n)
\"hard\" re-reading of the active files from all servers."
(interactive "P")
(let ((gnus-inhibit-demon t))
- (run-hooks 'gnus-get-new-news-hook)
+ (gnus-run-hooks 'gnus-get-new-news-hook)
;; Read any slave files.
(unless gnus-slave
(gnus-get-unread-articles arg))
(let ((gnus-read-active-file (if arg nil gnus-read-active-file)))
(gnus-get-unread-articles arg)))
- (run-hooks 'gnus-after-getting-new-news-hook)
+ (gnus-run-hooks 'gnus-after-getting-new-news-hook)
(gnus-group-list-groups (and (numberp arg)
(max (car gnus-group-list-mode) arg)))))
In fact, cleanup buffers except for group mode buffer.
The hook gnus-suspend-gnus-hook is called before actually suspending."
(interactive)
- (run-hooks 'gnus-suspend-gnus-hook)
+ (gnus-run-hooks 'gnus-suspend-gnus-hook)
;; Kill Gnus buffers except for group mode buffer.
(let* ((group-buf (get-buffer gnus-group-buffer))
;; Do this on a separate list in case the user does a ^G before we finish
(not gnus-interactive-exit) ;Without confirmation
gnus-expert-user
(gnus-y-or-n-p "Are you sure you want to quit reading news? "))
- (run-hooks 'gnus-exit-gnus-hook)
+ (gnus-run-hooks 'gnus-exit-gnus-hook)
;; Offer to save data from non-quitted summary buffers.
(gnus-offer-save-summaries)
;; Save the newsrc file(s).
;; Reset everything.
(gnus-clear-system)
;; Allow the user to do things after cleaning up.
- (run-hooks 'gnus-after-exiting-gnus-hook)))
+ (gnus-run-hooks 'gnus-after-exiting-gnus-hook)))
(defun gnus-group-quit ()
"Quit reading news without updating .newsrc.eld or .newsrc.
(gnus-yes-or-no-p
(format "Quit reading news without saving %s? "
(file-name-nondirectory gnus-current-startup-file))))
- (run-hooks 'gnus-exit-gnus-hook)
+ (gnus-run-hooks 'gnus-exit-gnus-hook)
(gnus-configure-windows 'group t)
(gnus-dribble-save)
(gnus-close-backends)
(gnus-clear-system)
(gnus-kill-buffer gnus-group-buffer)
;; Allow the user to do things after cleaning up.
- (run-hooks 'gnus-after-exiting-gnus-hook)))
+ (gnus-run-hooks 'gnus-after-exiting-gnus-hook)))
(defun gnus-group-describe-briefly ()
"Give a one line description of the group mode commands."
;;; gnus-int.el --- backend interface functions for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
(require 'gnus)
(defcustom gnus-open-server-hook nil
- "Hook called just before opening connection to the news server."
+ "*Hook called just before opening connection to the news server."
:group 'gnus-start
:type 'hook)
(t
(require 'nntp)))
(setq gnus-current-select-method gnus-select-method)
- (run-hooks 'gnus-open-server-hook)
+ (gnus-run-hooks 'gnus-open-server-hook)
(or
;; gnus-open-server-hook might have opened it
(gnus-server-opened gnus-select-method)
(gnus-message 5 "Opening %s server%s..." (car method)
(if (equal (nth 1 method) "") ""
(format " on %s" (nth 1 method)))))
- (run-hooks 'gnus-open-server-hook)
+ (gnus-run-hooks 'gnus-open-server-hook)
(prog1
(gnus-open-server method)
(unless silent
;;; gnus-kill.el --- kill commands for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(require 'gnus-range)
(defcustom gnus-kill-file-mode-hook nil
- "Hook for Gnus kill file mode."
+ "*Hook for Gnus kill file mode."
:group 'gnus-score-kill
:type 'hook)
:type 'boolean)
(defcustom gnus-winconf-kill-file nil
- "What does this do, Lars?"
+ "*What does this do, Lars?"
:group 'gnus-score-kill
:type 'sexp)
(setq major-mode 'gnus-kill-file-mode)
(setq mode-name "Kill")
(lisp-mode-variables nil)
- (run-hooks 'emacs-lisp-mode-hook 'gnus-kill-file-mode-hook))
+ (gnus-run-hooks 'emacs-lisp-mode-hook 'gnus-kill-file-mode-hook))
(defun gnus-kill-file-edit-file (newsgroup)
"Begin editing a kill file for NEWSGROUP.
;;; gnus-logic.el --- advanced scoring code for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-mh.el --- mh-e interface for Gnus
-;; Copyright (C) 1994,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;;; gnus-move.el --- commands for moving Gnus from one server to another
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-msg.el --- mail and post interface for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(set (make-local-variable 'gnus-message-group-art)
(cons ,gnus-newsgroup-name ,article))
(make-local-variable 'gnus-newsgroup-name)
- (run-hooks 'gnus-message-setup-hook))
+ (gnus-run-hooks 'gnus-message-setup-hook))
(gnus-configure-windows ,config t)
(set-buffer-modified-p nil))))
;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
(defcustom gnus-nocem-groups
'("news.lists.filters" "news.admin.net-abuse.bulletins"
"alt.nocem.misc" "news.admin.net-abuse.announce")
- "List of groups that will be searched for NoCeM messages."
+ "*List of groups that will be searched for NoCeM messages."
:group 'gnus-nocem
:type '(repeat (string :tag "Group")))
"snowhare@xmission.com" ; Benjamin "Snowhare" Franz
"red@redpoll.mrfs.oh.us (Richard E. Depew)" ; ARMM! ARMM!
)
- "List of NoCeM issuers to pay attention to.
+ "*List of NoCeM issuers to pay attention to.
This can also be a list of `(ISSUER CONDITIONS)' elements."
:group 'gnus-nocem
;;; gnus-picon.el --- displaying pretty icons in Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Wes Hardaker <hardaker@ece.ucdavis.edu>
;; Keywords: news xpm annotation glyph faces
:group 'picons)
(defcustom gnus-picons-news-directories '("news")
- "*Sub-directory of the faces database containing the icons for newsgroups."
+ "*List of directories to search for newsgroups faces."
:type '(repeat string)
:group 'picons)
(define-obsolete-variable-alias 'gnus-picons-news-directory
;;; gnus-range.el --- range and sequence functions for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-salt.el --- alternate summary mode interfaces for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Keywords: news
;; This file is part of GNU Emacs.
:group 'gnus-summary-pick)
(defcustom gnus-pick-mode-hook nil
- "Hook run in summary pick mode buffers."
+ "*Hook run in summary pick mode buffers."
:type 'hook
:group 'gnus-summary-pick)
:group 'gnus-summary-pick)
(defcustom gnus-pick-elegant-flow t
- "If non-nil, gnus-pick-start-reading will run gnus-summary-next-group when no articles have been picked."
+ "*If non-nil, gnus-pick-start-reading will run gnus-summary-next-group when no articles have been picked."
:type 'boolean
:group 'gnus-summary-pick)
(when (gnus-visual-p 'pick-menu 'menu)
(gnus-pick-make-menu-bar))
(gnus-add-minor-mode 'gnus-pick-mode " Pick" gnus-pick-mode-map)
- (run-hooks 'gnus-pick-mode-hook))))
+ (gnus-run-hooks 'gnus-pick-mode-hook))))
(defun gnus-pick-setup-message ()
"Make Message do the right thing on exit."
(when (gnus-visual-p 'binary-menu 'menu)
(gnus-binary-make-menu-bar))
(gnus-add-minor-mode 'gnus-binary-mode " Binary" gnus-binary-mode-map)
- (run-hooks 'gnus-binary-mode-hook))))
+ (gnus-run-hooks 'gnus-binary-mode-hook))))
(defun gnus-binary-display-article (article &optional all-header)
"Run ARTICLE through the binary decode functions."
;;;
(defcustom gnus-tree-line-format "%(%[%3,3n%]%)"
- "Format of tree elements."
+ "*Format of tree elements."
:type 'string
:group 'gnus-summary-tree)
(defcustom gnus-tree-minimize-window t
- "If non-nil, minimize the tree buffer window.
+ "*If non-nil, minimize the tree buffer window.
If a number, never let the tree buffer grow taller than that number of
lines."
:type 'boolean
(gnus-set-work-buffer)
(gnus-tree-node-insert (make-mail-header "") nil)
(setq gnus-tree-node-length (1- (point))))
- (run-hooks 'gnus-tree-mode-hook))
+ (gnus-run-hooks 'gnus-tree-mode-hook))
(defun gnus-tree-read-summary-keys (&optional arg)
"Read a summary buffer key sequence and execute it."
(buffer-disable-undo (current-buffer))
(setq buffer-read-only t)
(make-local-variable 'gnus-carpal-attached-buffer)
- (run-hooks 'gnus-carpal-mode-hook))
+ (gnus-run-hooks 'gnus-carpal-mode-hook))
(defun gnus-carpal-setup-buffer (type)
(let ((buffer (symbol-value (intern (format "gnus-carpal-%s-buffer" type)))))
;;; gnus-score.el --- scoring code for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <amanda@iesd.auc.dk>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(require 'message)
(defcustom gnus-global-score-files nil
- "List of global score files and directories.
+ "*List of global score files and directories.
Set this variable if you want to use people's score files. One entry
for each score file or each score file directory. Gnus will decide
by itself what score files are applicable to which group.
:type '(repeat file))
(defcustom gnus-score-file-single-match-alist nil
- "Alist mapping regexps to lists of score files.
+ "*Alist mapping regexps to lists of score files.
Each element of this alist should be of the form
(\"REGEXP\" [ \"SCORE-FILE-1\" ] [ \"SCORE-FILE-2\" ] ... )
:type '(repeat (cons regexp (repeat file))))
(defcustom gnus-score-file-multiple-match-alist nil
- "Alist mapping regexps to lists of score files.
+ "*Alist mapping regexps to lists of score files.
Each element of this alist should be of the form
(\"REGEXP\" [ \"SCORE-FILE-1\" ] [ \"SCORE-FILE-2\" ] ... )
:type '(repeat (cons regexp (repeat file))))
(defcustom gnus-score-file-suffix "SCORE"
- "Suffix of the score files."
+ "*Suffix of the score files."
:group 'gnus-score-files
:type 'string)
(defcustom gnus-adaptive-file-suffix "ADAPT"
- "Suffix of the adaptive score files."
+ "*Suffix of the adaptive score files."
:group 'gnus-score-files
:group 'gnus-score-adapt
:type 'string)
(defcustom gnus-score-find-score-files-function 'gnus-score-find-bnews
- "Function used to find score files.
+ "*Function used to find score files.
The function will be called with the group name as the argument, and
should return a list of score files to apply to that group. The score
files do not actually have to exist.
:type 'number)
(defcustom gnus-home-score-file nil
- "Variable to control where interactive score entries are to go.
+ "*Variable to control where interactive score entries are to go.
It can be:
* A string
(function :value fun)))
(defcustom gnus-home-adapt-file nil
- "Variable to control where new adaptive score entries are to go.
+ "*Variable to control where new adaptive score entries are to go.
This variable allows the same syntax as `gnus-home-score-file'."
:group 'gnus-score-adapt
:group 'gnus-score-files
(gnus-catchup-mark (subject -10))
(gnus-killed-mark (from -1) (subject -20))
(gnus-del-mark (from -2) (subject -15)))
-"Alist of marks and scores."
+"*Alist of marks and scores."
:group 'gnus-score-adapt
:type '(repeat (cons (symbol :tag "Mark")
(repeat (list (choice :tag "Header"
(integer :tag "Score"))))))
(defcustom gnus-ignored-adaptive-words nil
- "List of words to be ignored when doing adaptive word scoring."
+ "*List of words to be ignored when doing adaptive word scoring."
:group 'gnus-score-adapt
:type '(repeat string))
"being" "current" "back" "still" "go" "point" "value" "each" "did"
"both" "true" "off" "say" "another" "state" "might" "under" "start"
"try" "re")
- "Default list of words to be ignored when doing adaptive word scoring."
+ "*Default list of words to be ignored when doing adaptive word scoring."
:group 'gnus-score-adapt
:type '(repeat string))
(,gnus-catchup-mark . -10)
(,gnus-killed-mark . -20)
(,gnus-del-mark . -15))
-"Alist of marks and scores."
+"*Alist of marks and scores."
:group 'gnus-score-adapt
:type '(repeat (cons (character :tag "Mark")
(integer :tag "Score"))))
(defcustom gnus-adaptive-word-minimum nil
- "If a number, this is the minimum score value that can be assigned to a word."
+ "*If a number, this is the minimum score value that can be assigned to a word."
:group 'gnus-score-adapt
:type '(choice (const nil) integer))
:type '(choice (const nil) integer))
(defcustom gnus-score-uncacheable-files "ADAPT$"
- "All score files that match this regexp will not be cached."
+ "*All score files that match this regexp will not be cached."
:group 'gnus-score-adapt
:group 'gnus-score-files
:type 'regexp)
(defcustom gnus-score-default-header nil
- "Default header when entering new scores.
+ "*Default header when entering new scores.
Should be one of the following symbols.
(const :tag "ask" nil)))
(defcustom gnus-score-default-type nil
- "Default match type when entering new scores.
+ "*Default match type when entering new scores.
Should be one of the following symbols.
(const :tag "ask" nil)))
(defcustom gnus-score-default-fold nil
- "Use case folding for new score file entries iff not nil."
+ "*Use case folding for new score file entries iff not nil."
:group 'gnus-score-default
:type 'boolean)
(defcustom gnus-score-default-duration nil
- "Default duration of effect when entering new scores.
+ "*Default duration of effect when entering new scores.
Should be one of the following symbols.
(const :tag "ask" nil)))
(defcustom gnus-score-after-write-file-function nil
- "Function called with the name of the score file just written to disk."
+ "*Function called with the name of the score file just written to disk."
:group 'gnus-score-files
:type 'function)
;;; gnus-soup.el --- SOUP packet writing support for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;;; gnus-spec.el --- format spec functions for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-srvr.el --- virtual server support for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
["Close All" gnus-server-close-all-servers t]
["Reset All" gnus-server-remove-denials t]))
- (run-hooks 'gnus-server-menu-hook)))
+ (gnus-run-hooks 'gnus-server-menu-hook)))
(defvar gnus-server-mode-map nil)
(put 'gnus-server-mode 'mode-class 'special)
(buffer-disable-undo (current-buffer))
(setq truncate-lines t)
(setq buffer-read-only t)
- (run-hooks 'gnus-server-mode-hook))
+ (gnus-run-hooks 'gnus-server-mode-hook))
(defun gnus-server-insert-server-line (name method)
(let* ((how (car method))
(defun gnus-server-exit ()
"Return to the group buffer."
(interactive)
- (run-hooks 'gnus-server-exit-hook)
+ (gnus-run-hooks 'gnus-server-exit-hook)
(kill-buffer (current-buffer))
(gnus-configure-windows 'group t))
["Next" gnus-browse-next-group t]
["Prev" gnus-browse-next-group t]
["Exit" gnus-browse-exit t]))
- (run-hooks 'gnus-browse-menu-hook)))
+ (gnus-run-hooks 'gnus-browse-menu-hook)))
(defvar gnus-browse-current-method nil)
(defvar gnus-browse-return-buffer nil)
(setq truncate-lines t)
(gnus-set-default-directory)
(setq buffer-read-only t)
- (run-hooks 'gnus-browse-mode-hook))
+ (gnus-run-hooks 'gnus-browse-mode-hook))
(defun gnus-browse-read-group (&optional no-article)
"Enter the group at the current line."
;; If this group it killed, then we want to subscribe it.
(when (= (following-char) ?K)
(setq sub t))
- (when (gnus-gethash (setq group (gnus-browse-group-name))
- gnus-newsrc-hashtb)
+ (when (cadr (gnus-gethash (setq group (gnus-browse-group-name))
+ gnus-newsrc-hashtb))
(error "Group already subscribed"))
;; Make sure the group has been properly removed before we
;; subscribe to it.
;;; gnus-start.el --- startup functions for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
(eval-when-compile (require 'cl))
(defcustom gnus-startup-file (nnheader-concat gnus-home-directory ".newsrc")
- "Your `.newsrc' file.
+ "*Your `.newsrc' file.
`.newsrc-SERVER' will be used instead if that exists."
:group 'gnus-start
:type 'file)
(defcustom gnus-init-file (nnheader-concat gnus-home-directory ".gnus")
- "Your Gnus Emacs-Lisp startup file name.
+ "*Your Gnus Emacs-Lisp startup file name.
If a file with the `.el' or `.elc' suffixes exists, it will be read instead."
:group 'gnus-start
:type 'file)
(directory-file-name installation-directory))
"site-lisp/gnus-init")
(error nil))
- "The site-wide Gnus Emacs-Lisp startup file name, or nil if none.
+ "*The site-wide Gnus Emacs-Lisp startup file name, or nil if none.
If a file with the `.el' or `.elc' suffixes exists, it will be read instead."
:group 'gnus-start
:type '(choice file (const nil)))
(defcustom gnus-default-subscribed-newsgroups nil
- "List of newsgroups to subscribe, when a user runs Gnus the first time.
+ "*List of newsgroups to subscribe, when a user runs Gnus the first time.
The value should be a list of strings.
If it is t, Gnus will not do anything special the first time it is
started; it'll just use the normal newsgroups subscription methods."
"[][\"#'()]" ; bogus characters
)
"\\|"))
- "A regexp to match uninteresting newsgroups in the active file.
+ "*A regexp to match uninteresting newsgroups in the active file.
Any lines in the active file matching this regular expression are
removed from the newsgroup list before anything else is done to it,
thus making them effectively non-existent."
:type 'boolean)
(defcustom gnus-check-bogus-groups-hook nil
- "A hook run after removing bogus groups."
+ "*A hook run after removing bogus groups."
:group 'gnus-start-server
:type 'hook)
(defcustom gnus-startup-hook nil
- "A hook called at startup.
+ "*A hook called at startup.
This hook is called after Gnus is connected to the NNTP server."
:group 'gnus-start
:type 'hook)
(defcustom gnus-before-startup-hook nil
- "A hook called at before startup.
+ "*A hook called at before startup.
This hook is called as the first thing when Gnus is started."
:group 'gnus-start
:type 'hook)
(defcustom gnus-started-hook nil
- "A hook called as the last thing after startup."
+ "*A hook called as the last thing after startup."
:group 'gnus-start
:type 'hook)
(defcustom gnus-setup-news-hook nil
- "A hook after reading the .newsrc file, but before generating the buffer."
+ "*A hook after reading the .newsrc file, but before generating the buffer."
:group 'gnus-start
:type 'hook)
(defcustom gnus-get-new-news-hook nil
- "A hook run just before Gnus checks for new news."
+ "*A hook run just before Gnus checks for new news."
:group 'gnus-group-new
:type 'hook)
(defcustom gnus-after-getting-new-news-hook
(when (gnus-boundp 'display-time-timer)
'(display-time-event-handler))
- "A hook run after Gnus checks for new news."
+ "*A hook run after Gnus checks for new news."
:group 'gnus-group-new
:type 'hook)
(defcustom gnus-save-newsrc-hook nil
- "A hook called before saving any of the newsrc files."
+ "*A hook called before saving any of the newsrc files."
:group 'gnus-newsrc
:type 'hook)
(defcustom gnus-save-quick-newsrc-hook nil
- "A hook called just before saving the quick newsrc file.
+ "*A hook called just before saving the quick newsrc file.
Can be used to turn version control on or off."
:group 'gnus-newsrc
:type 'hook)
(defcustom gnus-save-standard-newsrc-hook nil
- "A hook called just before saving the standard newsrc file.
+ "*A hook called just before saving the standard newsrc file.
Can be used to turn version control on or off."
:group 'gnus-newsrc
:type 'hook)
(gnus-splash)
(gnus-clear-system)
- (run-hooks 'gnus-before-startup-hook)
+ (gnus-run-hooks 'gnus-before-startup-hook)
(nnheader-init-server-buffer)
(setq gnus-slave slave)
(gnus-read-init-file)
(if (and (not dont-connect)
(not did-connect))
(gnus-group-quit)
- (run-hooks 'gnus-startup-hook)
+ (gnus-run-hooks 'gnus-startup-hook)
;; NNTP server is successfully open.
;; Find the current startup file name.
;; Do the actual startup.
(gnus-setup-news nil level dont-connect)
- (run-hooks 'gnus-setup-news-hook)
+ (gnus-run-hooks 'gnus-setup-news-hook)
(gnus-start-draft-setup)
;; Generate the group buffer.
(gnus-group-list-groups level)
(gnus-group-first-unread-group)
(gnus-configure-windows 'group)
(gnus-group-set-mode-line)
- (run-hooks 'gnus-started-hook))))))
+ (gnus-run-hooks 'gnus-started-hook))))))
(defun gnus-start-draft-setup ()
"Make sure the draft group exists."
(set (car dead-lists)
(delete group (symbol-value (car dead-lists))))))
(setq dead-lists (cdr dead-lists))))
- (run-hooks 'gnus-check-bogus-groups-hook)
+ (gnus-run-hooks 'gnus-check-bogus-groups-hook)
(gnus-message 5 "Checking bogus newsgroups...done"))))
(defun gnus-check-duplicate-killed-groups ()
(set-buffer gnus-dribble-buffer)
(buffer-size)))))
(gnus-message 4 "(No changes need to be saved)")
- (run-hooks 'gnus-save-newsrc-hook)
+ (gnus-run-hooks 'gnus-save-newsrc-hook)
(if gnus-slave
(gnus-slave-save-newsrc)
;; Save .newsrc.
(erase-buffer)
(gnus-message 5 "Saving %s.eld..." gnus-current-startup-file)
(gnus-gnus-to-quick-newsrc-format)
- (run-hooks 'gnus-save-quick-newsrc-hook)
+ (gnus-run-hooks 'gnus-save-quick-newsrc-hook)
(save-buffer)
(kill-buffer (current-buffer))
(gnus-message
(if gnus-modtime-botch
(delete-file gnus-startup-file)
(clear-visited-file-modtime))
- (run-hooks 'gnus-save-standard-newsrc-hook)
+ (gnus-run-hooks 'gnus-save-standard-newsrc-hook)
(save-buffer)
(kill-buffer (current-buffer)))))
;;; gnus-sum.el --- summary mode commands for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
(sexp :menu-tag "on" t)))
(defcustom gnus-simplify-subject-functions nil
- "List of functions taking a string argument that simplify subjects.
+ "*List of functions taking a string argument that simplify subjects.
The functions are applied recursively."
:group 'gnus-thread
:type '(repeat (list function)))
(defcustom gnus-summary-thread-gathering-function
'gnus-gather-threads-by-subject
- "Function used for gathering loose threads.
+ "*Function used for gathering loose threads.
There are two pre-defined functions: `gnus-gather-threads-by-subject',
which only takes Subjects into consideration; and
`gnus-gather-threads-by-references', which compared the References
:type 'function)
(defcustom gnus-summary-expunge-below nil
- "All articles that have a score less than this variable will be expunged.
+ "*All articles that have a score less than this variable will be expunged.
This variable is local to the summary buffers."
:group 'gnus-score-default
:type '(choice (const :tag "off" nil)
integer))
(defcustom gnus-thread-expunge-below nil
- "All threads that have a total score less than this variable will be expunged.
+ "*All threads that have a total score less than this variable will be expunged.
See `gnus-thread-score-function' for en explanation of what a
\"thread score\" is.
:group 'gnus-summary-visual
:type 'hook)
-;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(defcustom gnus-structured-field-decoder 'identity
- "Function to decode non-ASCII characters in structured field for summary."
+ "*Function to decode non-ASCII characters in structured field for summary."
:group 'gnus-various
:type 'function)
(defcustom gnus-unstructured-field-decoder 'identity
- "Function to decode non-ASCII characters in unstructured field for summary."
+ "*Function to decode non-ASCII characters in unstructured field for summary."
:group 'gnus-various
:type 'function)
:type 'hook)
(defcustom gnus-summary-selected-face 'gnus-summary-selected-face
- "Face used for highlighting the current article in the summary buffer."
+ "*Face used for highlighting the current article in the summary buffer."
:group 'gnus-summary-visual
:type 'face)
. gnus-summary-low-read-face)
(t
. gnus-summary-normal-read-face))
- "Controls the highlighting of summary buffer lines.
+ "*Controls the highlighting of summary buffer lines.
A list of (FORM . FACE) pairs. When deciding how a a particular
summary line should be displayed, each form is evaluated. The content
face)))
(defcustom gnus-alter-header-function nil
- "Function called to allow alteration of article header structures.
+ "*Function called to allow alteration of article header structures.
The function is called with one parameter, the article header vector,
which it may alter in any way.")
"\C-c\C-v\C-v" gnus-uu-decode-uu-view
"\C-d" gnus-summary-enter-digest-group
"\M-\C-d" gnus-summary-read-document
+ "\M-\C-e" gnus-summary-edit-parameters
"\C-c\C-b" gnus-bug
"*" gnus-cache-enter-article
"\M-*" gnus-cache-remove-article
'request-expire-articles gnus-newsgroup-name)]
["Edit local kill file" gnus-summary-edit-local-kill t]
["Edit main kill file" gnus-summary-edit-global-kill t]
+ ["Edit group parameters" gnus-summary-edit-parameters t]
("Exit"
["Catchup and exit" gnus-summary-catchup-and-exit t]
["Catchup all and exit" gnus-summary-catchup-and-exit t]
["Rescan group" gnus-summary-rescan-group t]
["Update dribble" gnus-summary-save-newsrc t])))
- (run-hooks 'gnus-summary-menu-hook)))
+ (gnus-run-hooks 'gnus-summary-menu-hook)))
(defun gnus-score-set-default (var value)
"A version of set that updates the GNU Emacs menu-bar."
(add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
(make-local-hook 'pre-command-hook)
(add-hook 'pre-command-hook 'gnus-set-global-variables nil t)
- (run-hooks 'gnus-summary-mode-hook)
+ (gnus-run-hooks 'gnus-summary-mode-hook)
(gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy)
(gnus-update-summary-mark-positions))
'gnus-number gnus-tmp-number)
(when (gnus-visual-p 'summary-highlight 'highlight)
(forward-line -1)
- (run-hooks 'gnus-summary-update-hook)
+ (gnus-run-hooks 'gnus-summary-update-hook)
(forward-line 1))))
(defun gnus-summary-update-line (&optional dont-update)
'score))
;; Do visual highlighting.
(when (gnus-visual-p 'summary-highlight 'highlight)
- (run-hooks 'gnus-summary-update-hook)))))
+ (gnus-run-hooks 'gnus-summary-update-hook)))))
(defvar gnus-tmp-new-adopts nil)
(gnus-copy-sequence
(gnus-active gnus-newsgroup-name)))
;; You can change the summary buffer in some way with this hook.
- (run-hooks 'gnus-select-group-hook)
+ (gnus-run-hooks 'gnus-select-group-hook)
;; Set any local variables in the group parameters.
(gnus-summary-set-local-parameters gnus-newsgroup-name)
(gnus-update-format-specifications
((and gnus-newsgroup-scored show-all)
(gnus-summary-limit-include-expunged t))))
;; Function `gnus-apply-kill-file' must be called in this hook.
- (run-hooks 'gnus-apply-kill-hook)
+ (gnus-run-hooks 'gnus-apply-kill-hook)
(if (and (zerop (buffer-size))
(not no-display))
(progn
(select-window owin)))
;; Mark this buffer as "prepared".
(setq gnus-newsgroup-prepared t)
- (run-hooks 'gnus-summary-prepared-hook)
+ (gnus-run-hooks 'gnus-summary-prepared-hook)
t)))))
(defun gnus-summary-prepare ()
(erase-buffer)
(setq gnus-newsgroup-data nil
gnus-newsgroup-data-reverse nil)
- (run-hooks 'gnus-summary-generate-hook)
+ (gnus-run-hooks 'gnus-summary-generate-hook)
;; Generate the buffer, either with threads or without.
(when gnus-newsgroup-headers
(gnus-summary-prepare-threads
(setq gnus-newsgroup-data (nreverse gnus-newsgroup-data))
;; Call hooks for modifying summary buffer.
(goto-char (point-min))
- (run-hooks 'gnus-summary-prepare-hook)))
+ (gnus-run-hooks 'gnus-summary-prepare-hook)))
(defsubst gnus-general-simplify-subject (subject)
"Simply subject by the same rules as gnus-gather-threads-by-subject."
'gnus-number number)
(when gnus-visual-p
(forward-line -1)
- (run-hooks 'gnus-summary-update-hook)
+ (gnus-run-hooks 'gnus-summary-update-hook)
(forward-line 1))
(setq gnus-tmp-prev-subject subject)))
(set-buffer nntp-server-buffer)
;; Translate all TAB characters into SPACE characters.
(subst-char-in-region (point-min) (point-max) ?\t ? t)
- (run-hooks 'gnus-parse-headers-hook)
+ (gnus-run-hooks 'gnus-parse-headers-hook)
(let ((case-fold-search t)
in-reply-to header p lines)
(goto-char (point-min))
(progn
(goto-char p)
(if (search-forward "\nsubject: " nil t)
- ;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(funcall
gnus-unstructured-field-decoder (nnheader-header-value))
"(none)"))
(progn
(goto-char p)
(if (search-forward "\nfrom: " nil t)
- ;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(funcall
gnus-structured-field-decoder (nnheader-header-value))
"(nobody)"))
(save-excursion
(set-buffer nntp-server-buffer)
;; Allow the user to mangle the headers before parsing them.
- (run-hooks 'gnus-parse-headers-hook)
+ (gnus-run-hooks 'gnus-parse-headers-hook)
(goto-char (point-min))
(while (not (eobp))
(condition-case ()
"Return a list of articles to be worked upon. The prefix argument,
the list of process marked articles, and the current article will be
taken into consideration."
- (cond
- (n
- ;; A numerical prefix has been given.
- (setq n (prefix-numeric-value n))
- (let ((backward (< n 0))
- (n (abs (prefix-numeric-value n)))
- articles article)
- (save-excursion
- (while
- (and (> n 0)
- (push (setq article (gnus-summary-article-number))
- articles)
- (if backward
- (gnus-summary-find-prev nil article)
- (gnus-summary-find-next nil article)))
- (decf n)))
- (nreverse articles)))
- ((gnus-region-active-p)
- ;; Work on the region between point and mark.
- (let ((max (max (point) (mark)))
- articles article)
- (save-excursion
- (goto-char (min (point) (mark)))
- (while
- (and
- (push (setq article (gnus-summary-article-number)) articles)
- (gnus-summary-find-next nil article)
- (< (point) max)))
- (nreverse articles))))
- (gnus-newsgroup-processable
- ;; There are process-marked articles present.
- ;; Save current state.
- (gnus-summary-save-process-mark)
- ;; Return the list.
- (reverse gnus-newsgroup-processable))
- (t
- ;; Just return the current article.
- (list (gnus-summary-article-number)))))
+ (save-excursion
+ (set-buffer gnus-summary-buffer)
+ (cond
+ (n
+ ;; A numerical prefix has been given.
+ (setq n (prefix-numeric-value n))
+ (let ((backward (< n 0))
+ (n (abs (prefix-numeric-value n)))
+ articles article)
+ (save-excursion
+ (while
+ (and (> n 0)
+ (push (setq article (gnus-summary-article-number))
+ articles)
+ (if backward
+ (gnus-summary-find-prev nil article)
+ (gnus-summary-find-next nil article)))
+ (decf n)))
+ (nreverse articles)))
+ ((and (gnus-region-active-p) (mark))
+ (message "region active")
+ ;; Work on the region between point and mark.
+ (let ((max (max (point) (mark)))
+ articles article)
+ (save-excursion
+ (goto-char (min (min (point) (mark))))
+ (while
+ (and
+ (push (setq article (gnus-summary-article-number)) articles)
+ (gnus-summary-find-next nil article)
+ (< (point) max)))
+ (nreverse articles))))
+ (gnus-newsgroup-processable
+ ;; There are process-marked articles present.
+ ;; Save current state.
+ (gnus-summary-save-process-mark)
+ ;; Return the list.
+ (reverse gnus-newsgroup-processable))
+ (t
+ ;; Just return the current article.
+ (list (gnus-summary-article-number))))))
(defun gnus-summary-save-process-mark ()
"Push the current set of process marked articles on the stack."
(mode major-mode)
(group-point nil)
(buf (current-buffer)))
- (run-hooks 'gnus-summary-prepare-exit-hook)
+ (gnus-run-hooks 'gnus-summary-prepare-exit-hook)
;; If we have several article buffers, we kill them at exit.
(unless gnus-single-article-buffer
(gnus-kill-buffer gnus-original-article-buffer)
(nnmail-purge-split-history group)
;; Make all changes in this group permanent.
(unless quit-config
- (run-hooks 'gnus-exit-group-hook)
+ (gnus-run-hooks 'gnus-exit-group-hook)
(gnus-summary-update-info)
;; Do adaptive scoring, and possibly save score files.
(when gnus-newsgroup-adaptive
(set-buffer gnus-group-buffer)
(unless quit-config
(gnus-group-jump-to-group group))
- (run-hooks 'gnus-summary-exit-hook)
+ (gnus-run-hooks 'gnus-summary-exit-hook)
(unless (or quit-config
;; If this group has disappeared from the summary
;; buffer, don't skip forwards.
(when (gnus-buffer-live-p current-buffer)
(set-buffer current-buffer)
(gnus-summary-exit))
- (run-hooks 'gnus-group-no-more-groups-hook))
+ (gnus-run-hooks 'gnus-group-no-more-groups-hook))
;; We try to enter the target group.
(gnus-group-jump-to-group target-group)
(let ((unreads (gnus-group-group-unread)))
(if gnus-summary-display-article-function
(funcall gnus-summary-display-article-function article all-header)
(gnus-article-prepare article all-header))
- (run-hooks 'gnus-select-article-hook)
+ (gnus-run-hooks 'gnus-select-article-hook)
(when (and gnus-current-article
(not (zerop gnus-current-article)))
(gnus-summary-goto-subject gnus-current-article))
(gnus-summary-select-article nil nil nil number)
(gnus-message 3 "Couldn't fetch article %s" message-id))))))))
+(defun gnus-summary-edit-parameters ()
+ "Edit the group parameters of the current group."
+ (gnus-group-edit-group gnus-newsgroup-name 'params))
+
(defun gnus-summary-enter-digest-group (&optional force)
"Enter an nndoc group based on the current article.
If FORCE, force a digest interpretation. If not, try
to save in."
(interactive (list (ps-print-preprint current-prefix-arg)
current-prefix-arg))
- (dolist (nbr (gnus-summary-work-articles n))
- (gnus-summary-select-article 'all nil 'pseudo nbr)
+ (dolist (article (gnus-summary-work-articles n))
+ (gnus-summary-select-article nil nil 'pseudo article)
(gnus-eval-in-buffer-window gnus-article-buffer
(let ((buffer (generate-new-buffer " *print*")))
(unwind-protect
"/pagenumberstring load"
(concat "("
(mail-header-date gnus-current-headers) ")"))))
- (run-hooks 'gnus-ps-print-hook)
+ (gnus-run-hooks 'gnus-ps-print-hook)
(ps-print-buffer-with-faces filename)))
(kill-buffer buffer))))))
(setq e (1- (or (search-forward "\n\n" nil t) (point-max)))))
(insert-buffer-substring gnus-original-article-buffer 1 e)
(let ((article-inhibit-hiding t))
- (run-hooks 'gnus-article-display-hook))
+ (gnus-run-hooks 'gnus-article-display-hook))
(when (or (not hidden) (and (numberp arg) (< arg 0)))
(gnus-article-hide-headers)))))
(gnus-summary-move-article n nil nil 'crosspost))
(defcustom gnus-summary-respool-default-method nil
- "Default method for respooling an article.
+ "*Default method for respooling an article.
If nil, use to the current newsgroup method."
:type `(choice (gnus-select-method :value (nnml ""))
(const nil))
;; We need to update the info for
;; this group for `gnus-list-of-read-articles'
;; to give us the right answer.
- (run-hooks 'gnus-exit-group-hook)
+ (gnus-run-hooks 'gnus-exit-group-hook)
(gnus-summary-update-info)
(gnus-list-of-read-articles gnus-newsgroup-name))
(setq gnus-newsgroup-expirable
(unless no-highlight
(save-excursion
(set-buffer gnus-article-buffer)
- (run-hooks 'gnus-article-display-hook)
+ (gnus-run-hooks 'gnus-article-display-hook)
(set-buffer gnus-original-article-buffer)
(gnus-request-article
(cdr gnus-article-current)
(car gnus-article-current) (current-buffer))))
;; Prettify the summary buffer line.
(when (gnus-visual-p 'summary-highlight 'highlight)
- (run-hooks 'gnus-visual-mark-article-hook))))
+ (gnus-run-hooks 'gnus-visual-mark-article-hook))))
(defun gnus-summary-edit-wash (key)
"Perform editing command in the article buffer."
(defun gnus-summary-mark-article-as-unread (mark)
"Mark the current article quickly as unread with MARK."
- (let ((article (gnus-summary-article-number)))
- (if (<= article 0)
- (progn
- (gnus-error 1 "Can't mark negative article numbers")
- nil)
- (setq gnus-newsgroup-marked (delq article gnus-newsgroup-marked))
- (setq gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant))
- (setq gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable))
- (setq gnus-newsgroup-reads (delq article gnus-newsgroup-reads))
- (cond ((= mark gnus-ticked-mark)
- (push article gnus-newsgroup-marked))
- ((= mark gnus-dormant-mark)
- (push article gnus-newsgroup-dormant))
- (t
- (push article gnus-newsgroup-unreads)))
- (setq gnus-newsgroup-reads
- (delq (assq article gnus-newsgroup-reads)
- gnus-newsgroup-reads))
-
- ;; See whether the article is to be put in the cache.
- (and gnus-use-cache
- (vectorp (gnus-summary-article-header article))
- (save-excursion
- (gnus-cache-possibly-enter-article
- gnus-newsgroup-name article
- (gnus-summary-article-header article)
- (= mark gnus-ticked-mark)
- (= mark gnus-dormant-mark) (= mark gnus-unread-mark))))
-
- ;; Fix the mark.
- (gnus-summary-update-mark mark 'unread)
- t)))
+ (let* ((article (gnus-summary-article-number))
+ (old-mark (gnus-summary-article-mark article)))
+ (if (eq mark old-mark)
+ t
+ (if (<= article 0)
+ (progn
+ (gnus-error 1 "Can't mark negative article numbers")
+ nil)
+ (setq gnus-newsgroup-marked (delq article gnus-newsgroup-marked))
+ (setq gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant))
+ (setq gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable))
+ (setq gnus-newsgroup-reads (delq article gnus-newsgroup-reads))
+ (cond ((= mark gnus-ticked-mark)
+ (push article gnus-newsgroup-marked))
+ ((= mark gnus-dormant-mark)
+ (push article gnus-newsgroup-dormant))
+ (t
+ (push article gnus-newsgroup-unreads)))
+ (setq gnus-newsgroup-reads
+ (delq (assq article gnus-newsgroup-reads)
+ gnus-newsgroup-reads))
+
+ ;; See whether the article is to be put in the cache.
+ (and gnus-use-cache
+ (vectorp (gnus-summary-article-header article))
+ (save-excursion
+ (gnus-cache-possibly-enter-article
+ gnus-newsgroup-name article
+ (gnus-summary-article-header article)
+ (= mark gnus-ticked-mark)
+ (= mark gnus-dormant-mark) (= mark gnus-unread-mark))))
+
+ ;; Fix the mark.
+ (gnus-summary-update-mark mark 'unread)
+ t))))
(defun gnus-summary-mark-article (&optional article mark no-expire)
"Mark ARTICLE with MARK. MARK can be any character.
(t gnus-unread-mark))
'replied)
(when (gnus-visual-p 'summary-highlight 'highlight)
- (run-hooks 'gnus-summary-update-hook))
+ (gnus-run-hooks 'gnus-summary-update-hook))
t)
(defun gnus-summary-update-mark (mark type)
(cond ((assq 'execute props)
(gnus-execute-command (cdr (assq 'execute props)))))
(let ((gnus-current-article (gnus-summary-article-number)))
- (run-hooks 'gnus-mark-article-hook)))
+ (gnus-run-hooks 'gnus-mark-article-hook)))
(defun gnus-execute-command (command &optional automatic)
(save-excursion
;;; gnus-topic.el --- a folding minor mode for Gnus group buffers
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Ilja Weis <kult@uni-paderborn.de>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
"Minor mode for Gnus group buffers.")
(defcustom gnus-topic-mode-hook nil
- "Hook run in topic mode buffers."
+ "*Hook run in topic mode buffers."
:type 'hook
:group 'gnus-topic)
(defcustom gnus-topic-line-format "%i[ %(%{%n%}%) -- %A ]%v\n"
- "Format of topic lines.
+ "*Format of topic lines.
It works along the same lines as a normal formatting string,
with some simple extensions.
(gnus-group-set-mode-line)
(setq gnus-group-list-mode (cons level all))
- (run-hooks 'gnus-group-prepare-hook))))
+ (gnus-run-hooks 'gnus-group-prepare-hook))))
(defun gnus-topic-prepare-topic (topicl level &optional list-level all silent
lowest)
;; We check the topology.
(when gnus-newsrc-alist
(gnus-topic-check-topology))
- (run-hooks 'gnus-topic-mode-hook))
+ (gnus-run-hooks 'gnus-topic-mode-hook))
;; Remove topic infestation.
(unless gnus-topic-mode
(remove-hook 'gnus-summary-exit-hook 'gnus-topic-update-topic)
;;; gnus-undo.el --- minor mode for undoing in Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
(gnus-add-minor-mode 'gnus-undo-mode "" gnus-undo-mode-map)
(make-local-hook 'post-command-hook)
(add-hook 'post-command-hook 'gnus-undo-boundary nil t)
- (run-hooks 'gnus-undo-mode-hook)))
+ (gnus-run-hooks 'gnus-undo-mode-hook)))
;;; Interface functions.
;;; gnus-util.el --- utility functions for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
(set symbol nil))
symbol))
-;; modified by MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; function `substring' might cut on a middle of multi-octet
-;; character.
(defun gnus-truncate-string (str width)
(substring str 0 width))
(setq address (substring from (match-beginning 0) (match-end 0))))
;; Then we check whether the "name <address>" format is used.
(and address
- ;; Fix by MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Linear white space is not required.
(string-match (concat "[ \t]*<" (regexp-quote address) ">") from)
(and (setq name (substring from 0 (match-beginning 0)))
(1- (match-end 0)))))
(and (string-match "()" from)
(setq name address))
- ;; Fix by MORIOKA Tomohiko <morioka@jaist.ac.jp>.
;; XOVER might not support folded From headers.
(and (string-match "(.*" from)
(setq name (substring from (1+ (match-beginning 0))
(setq arg (funcall (pop myfuns) arg)))
arg))
+(defun gnus-run-hooks (&rest funcs)
+ "Does the same as `run-hooks', but saves excursion."
+ (save-excursion
+ (apply 'run-hooks funcs)))
+
+;;;
+;;; .netrc and .authinforc parsing
+;;;
+
+(defvar gnus-netrc-syntax-table
+ (let ((table (copy-syntax-table text-mode-syntax-table)))
+ (modify-syntax-entry ?- "w" table)
+ (modify-syntax-entry ?_ "w" table)
+ (modify-syntax-entry ?! "w" table)
+ (modify-syntax-entry ?. "w" table)
+ (modify-syntax-entry ?, "w" table)
+ (modify-syntax-entry ?: "w" table)
+ (modify-syntax-entry ?\; "w" table)
+ (modify-syntax-entry ?% "w" table)
+ (modify-syntax-entry ?) "w" table)
+ (modify-syntax-entry ?( "w" table)
+ table)
+ "Syntax table when parsing .netrc files.")
+
+(defun gnus-parse-netrc (file)
+ "Parse FILE and return an list of all entries in the file."
+ (if (not (file-exists-p file))
+ ()
+ (save-excursion
+ (let ((tokens '("machine" "default" "login"
+ "password" "account" "macdef"))
+ alist elem result pair)
+ (nnheader-set-temp-buffer " *netrc*")
+ (set-syntax-table gnus-netrc-syntax-table)
+ (insert-file-contents file)
+ (goto-char (point-min))
+ ;; Go through the file, line by line.
+ (while (not (eobp))
+ (narrow-to-region (point) (gnus-point-at-eol))
+ ;; For each line, get the tokens and values.
+ (while (not (eobp))
+ (skip-chars-forward "\t ")
+ (unless (eobp)
+ (setq elem (buffer-substring
+ (point) (progn (forward-sexp 1) (point))))
+ (if (member elem tokens)
+ (progn
+ ;; Tokens that don't have a following value are ignored.
+ (when (and pair (cdr pair))
+ (push pair alist))
+ (setq pair (list elem)))
+ ;; Values that haven't got a preceding token are ignored.
+ (when pair
+ (setcdr pair elem)
+ (push pair alist)
+ (setq pair nil)))))
+ (push alist result)
+ (setq alist nil
+ pair nil)
+ (widen)
+ (forward-line 1))
+ result))))
+
+(defun gnus-netrc-machine (list machine)
+ "Return the netrc values from LIST for MACHINE."
+ (while (and list
+ (not (equal (cdr (assoc "machine" (car list))) machine)))
+ (pop list))
+ (when list
+ (car list)))
+
+(defun gnus-netrc-get (alist type)
+ "Return the value of token TYPE from ALIST."
+ (cdr (assoc type alist)))
+
(provide 'gnus-util)
;;; gnus-util.el ends here
;;; gnus-uu.el --- extract (uu)encoded files in Gnus
-;; Copyright (C) 1985,86,87,93,94,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1985,86,87,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Created: 2 Oct 1993
("\\.\\(flc\\|fli\\|rle\\|iff\\|pfx\\|avi\\|sme\\|rpza\\|dl\\|qt\\|rsrc\\|mov\\)$" "xanim")
("\\.\\(tar\\|arj\\|zip\\|zoo\\|arc\\|gz\\|Z\\|lzh\\|ar\\|lha\\)$"
"gnus-uu-archive"))
- "Default actions to be taken when the user asks to view a file.
+ "*Default actions to be taken when the user asks to view a file.
To change the behaviour, you can either edit this variable or set
`gnus-uu-user-view-rules' to something useful.
:type '(repeat (group regexp (string :tag "Command"))))
(defcustom gnus-uu-user-view-rules nil
- "What actions are to be taken to view a file.
+ "*What actions are to be taken to view a file.
See the documentation on the `gnus-uu-default-view-rules' variable for
details."
:group 'gnus-extract-view
(defcustom gnus-uu-user-view-rules-end
'(("" "file"))
- "What actions are to be taken if no rule matched the file name.
+ "*What actions are to be taken if no rule matched the file name.
See the documentation on the `gnus-uu-default-view-rules' variable for
details."
:group 'gnus-extract-view
("\\.Z$" "uncompress")
("\\.gz$" "gunzip")
("\\.arc$" "arc -x"))
- "See `gnus-uu-user-archive-rules'."
+ "*See `gnus-uu-user-archive-rules'."
:group 'gnus-extract-archive
:type '(repeat (group regexp (string :tag "Command"))))
(list "uncompress" "gunzip"))
(defcustom gnus-uu-user-archive-rules nil
- "A list that can be set to override the default archive unpacking commands.
+ "*A list that can be set to override the default archive unpacking commands.
To use, for instance, 'untar' to unpack tar files and 'zip -x' to
unpack zip files, say the following:
(setq gnus-uu-user-archive-rules
:type 'boolean)
(defcustom gnus-uu-grabbed-file-functions nil
- "Functions run on each file after successful decoding.
+ "*Functions run on each file after successful decoding.
They will be called with the name of the file as the argument.
Likely functions you can use in this list are `gnus-uu-grab-view'
and `gnus-uu-grab-move'."
:type 'boolean)
(defcustom gnus-uu-pre-uudecode-hook nil
- "Hook run before sending a message to uudecode."
+ "*Hook run before sending a message to uudecode."
:group 'gnus-extract
:type 'hook)
(defcustom gnus-uu-digest-headers
'("^Date:" "^From:" "^To:" "^Cc:" "^Subject:" "^Message-ID:" "^Keywords:"
"^Summary:" "^References:")
- "List of regexps to match headers included in digested messages.
+ "*List of regexps to match headers included in digested messages.
The headers will be included in the sequence they are matched."
:group 'gnus-extract
:type '(repeat regexp))
;; Try to correct mishandled uucode.
(when gnus-uu-correct-stripped-uucode
(gnus-uu-check-correct-stripped-uucode start-char (point)))
- (run-hooks 'gnus-uu-pre-uudecode-hook)
+ (gnus-run-hooks 'gnus-uu-pre-uudecode-hook)
;; Send the text to the process.
(condition-case nil
;; and "spiral.jpg", respectively.) The function should return nil if
;; the encoding wasn't successful.
(defcustom gnus-uu-post-encode-method 'gnus-uu-post-encode-uuencode
- "Function used for encoding binary files.
+ "*Function used for encoding binary files.
There are three functions supplied with gnus-uu for encoding files:
`gnus-uu-post-encode-uuencode', which does straight uuencoding;
`gnus-uu-post-encode-mime', which encodes with base64 and adds MIME
(function :tag "Other")))
(defcustom gnus-uu-post-include-before-composing nil
- "Non-nil means that gnus-uu will ask for a file to encode before you compose the article.
+ "*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
\\[gnus-uu-post-insert-binary-in-article] or have one included for you when you post the article."
:group 'gnus-extract-post
:type 'boolean)
(defcustom gnus-uu-post-length 990
- "Maximum length of an article.
+ "*Maximum length of an article.
The encoded file will be split into how many articles it takes to
post the entire file."
:group 'gnus-extract-post
:type 'integer)
(defcustom gnus-uu-post-threaded nil
- "Non-nil means that gnus-uu will post the encoded file in a thread.
+ "*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
:type 'boolean)
(defcustom gnus-uu-post-separate-description t
- "Non-nil means that the description will be posted in a separate article.
+ "*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
;;; gnus-vm.el --- vm interface for Gnus
-;; Copyright (C) 1994,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
;; Author: Per Persson <pp@gnu.ai.mit.edu>
;; Keywords: news, mail
;;; gnus-win.el --- window configuration functions for Gnus
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; gnus-xmas.el --- Gnus functions for XEmacs
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
"Color alist used for the Gnus logo.")
(defcustom gnus-xmas-logo-color-style 'moss
- "Color styles used for the Gnus logo."
+ "*Color styles used for the Gnus logo."
:type '(choice (const flame) (const pine) (const moss)
(const irish) (const sky) (const tin)
(const velvet) (const grape) (const labia)
(featurep 'xpm))
'gnus-xmas-article-display-xface
"{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -")
- "String or function to be executed to display an X-Face header.
+ "*String or function to be executed to display an X-Face header.
If it is a string, the command will be executed in a sub-shell
asynchronously. The compressed face will be piped to this command."
:type '(choice string function))
gnus-summary-selected-face)))
(defcustom gnus-xmas-force-redisplay nil
- "If non-nil, force a redisplay before recentering the summary buffer.
+ "*If non-nil, force a redisplay before recentering the summary buffer.
This is ugly, but it works around a bug in `window-displayed-height'."
:type 'boolean
:group 'gnus-xmas)
;;; gnus.el --- a newsreader for GNU Emacs
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.25"
+(defconst gnus-version-number "0.26"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number)
"Version string for this version of Gnus.")
(defcustom gnus-inhibit-startup-message nil
- "If non-nil, the startup message will not be displayed.
+ "*If non-nil, the startup message will not be displayed.
This variable is used before `.gnus.el' is loaded, so it should
be set in `.emacs' instead."
:group 'gnus-start
:type 'boolean)
(defcustom gnus-play-startup-jingle nil
- "If non-nil, play the Gnus jingle at startup."
+ "*If non-nil, play the Gnus jingle at startup."
:group 'gnus-start
:type 'boolean)
(require 'nnheader)
(defcustom gnus-home-directory "~/"
- "Directory variable that specifies the \"home\" directory.
+ "*Directory variable that specifies the \"home\" directory.
All other Gnus path variables are initialized from this variable."
:group 'gnus-files
:type 'directory)
(defcustom gnus-directory (or (getenv "SAVEDIR")
(nnheader-concat gnus-home-directory "News/"))
- "Directory variable from which all other Gnus file variables are derived."
+ "*Directory variable from which all other Gnus file variables are derived."
:group 'gnus-files
:type 'directory)
(setq gnus-select-method '(nntp \"my.nntp.server\" (nntp-port-number 899)))")
(defcustom gnus-nntpserver-file "/etc/nntpserver"
- "A file with only the name of the nntp server in it."
+ "*A file with only the name of the nntp server in it."
:group 'gnus-files
:group 'gnus-server
:type 'file)
nil
(list gnus-nntp-service)))
(error nil))
- "Default method for selecting a newsgroup.
+ "*Default method for selecting a newsgroup.
This variable should be a list, where the first element is how the
news is to be fetched, the second is the address.
,(nnheader-concat message-directory "archive/active"))
(nnfolder-get-new-mail nil)
(nnfolder-inhibit-expiry t))
- "Method used for archiving messages you've sent.
+ "*Method used for archiving messages you've sent.
This should be a mail method.
It's probably not a very effective to change this variable once you've
string))
(defcustom gnus-secondary-servers nil
- "List of NNTP servers that the user can choose between interactively.
+ "*List of NNTP servers that the user can choose between interactively.
To make Gnus query you for a server, you have to give `gnus' a
non-numeric prefix - `C-u M-x gnus', in short."
:group 'gnus-server
string))
(defcustom gnus-secondary-select-methods nil
- "A list of secondary methods that will be used for reading news.
+ "*A list of secondary methods that will be used for reading news.
This is a list where each element is a complete select method (see
`gnus-select-method').
Should be set in paths.el, and shouldn't be touched by the user.")
(defcustom gnus-local-domain nil
- "Local domain name without a host name.
+ "*Local domain name without a host name.
The DOMAINNAME environment variable is used instead if it is defined.
If the `system-name' function returns the full Internet name, there is
no need to set this variable."
;; Customization variables
(defcustom gnus-refer-article-method nil
- "Preferred method for fetching an article by Message-ID.
+ "*Preferred method for fetching an article by Message-ID.
If you are reading news from the local spool (with nnspool), fetching
articles by Message-ID is painfully slow. By setting this method to an
nntp method, you might get acceptable results.
"/ftp@nctuccca.edu.tw:/USENET/FAQ/"
"/ftp@hwarang.postech.ac.kr:/pub/usenet/"
"/ftp@ftp.hk.super.net:/mirror/faqs/")
- "Directory where the group FAQs are stored.
+ "*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.
:type 'boolean)
(defcustom gnus-use-demon nil
- "If non-nil, Gnus might use some demons."
+ "*If non-nil, Gnus might use some demons."
:group 'gnus-meta
:type 'boolean)
(defcustom gnus-summary-prepare-exit-hook
'(gnus-summary-expire-articles)
- "A hook called when preparing to exit from the summary buffer.
+ "*A hook called when preparing to exit from the summary buffer.
It calls `gnus-summary-expire-articles' by default."
:group 'gnus-summary-exit
:type 'hook)
(defcustom gnus-expert-user nil
"*Non-nil means that you will never be asked for confirmation about anything.
-And that means *anything*."
+That doesn't mean *anything* anything; particularly destructive
+commands will still require prompting."
:group 'gnus-meta
:type 'boolean)
:type 'boolean)
(defcustom gnus-shell-command-separator ";"
- "String used to separate to shell commands."
+ "*String used to separate to shell commands."
:group 'gnus-files
:type 'string)
("nngateway" none address prompt-address physical-address)
("nnweb" none)
("nnagent" post-mail))
- "An alist of valid select methods.
+ "*An alist of valid select methods.
The first element of each list lists should be a string with the name
of the select method. The other elements may be the category of
this method (i. e., `post', `mail', `none' or whatever) or other
(sexp :tag "Value")))))
(defcustom gnus-updated-mode-lines '(group article summary tree)
- "List of buffers that should update their mode lines.
+ "*List of buffers that should update their mode lines.
The list may contain the symbols `group', `article', `tree' and
`summary'. If the corresponding symbol is present, Gnus will keep
that mode line updated with information that may be pertinent.
regexp))
(defcustom gnus-group-uncollapsed-levels 1
- "Number of group name elements to leave alone when making a short group name."
+ "*Number of group name elements to leave alone when making a short group name."
:group 'gnus-group-visual
:type 'integer)
;; Hooks.
(defcustom gnus-load-hook nil
- "A hook run while Gnus is loaded."
+ "*A hook run while Gnus is loaded."
:group 'gnus-start
:type 'hook)
(defcustom gnus-apply-kill-hook '(gnus-apply-kill-file)
- "A hook called to apply kill files to a group.
+ "*A hook called to apply kill files to a group.
This hook is intended to apply a kill file to the selected newsgroup.
The function `gnus-apply-kill-file' is called by default.
:type 'hook)
(defcustom gnus-group-change-level-function nil
- "Function run when a group level is changed.
+ "*Function run when a group level is changed.
It is called with three parameters -- GROUP, LEVEL and OLDLEVEL."
:group 'gnus-group-level
:type 'function)
browse-menu server-menu
page-marker tree-menu binary-menu pick-menu
grouplens-menu)
- "Enable visual features.
+ "*Enable visual features.
If `visual' is disabled, there will be no menus and few faces. Most of
the visual customization options below will be ignored. Gnus will use
less space and be faster as a result.
'highlight)
'default)
(error 'highlight))
- "Face used for group or summary buffer mouse highlighting.
+ "*Face used for group or summary buffer mouse highlighting.
The line beneath the mouse pointer will be highlighted with this
face."
:group 'gnus-visual
gnus-article-hide-boring-headers
gnus-article-treat-overstrike
gnus-article-maybe-highlight))
- "Controls how the article buffer will look.
+ "*Controls how the article buffer will look.
If you leave the list empty, the article will appear exactly as it is
stored on the disk. The list entries will hide or highlight various
(defun gnus-group-get-parameter (group &optional symbol)
"Return the group parameters for GROUP.
-If SYMBOL, return the value of that symbol in the group parameters."
+If SYMBOL, return the value of that symbol in the group parameters.
+Most functions should use `gnus-group-find-parameter', which
+also examines the topic parameters."
(let ((params (gnus-info-params (gnus-get-info group))))
(if symbol
(gnus-group-parameter-value params symbol)
(kill-buffer (current-buffer))))))
(defcustom gnus-kill-file-name "KILL"
- "Suffix of the kill files."
+ "*Suffix of the kill files."
:group 'gnus-score-kill
:group 'gnus-score-files
:type 'string)
;;; message.el --- composing mail and news messages
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: mail, news
:type 'integer)
(defcustom message-send-rename-function nil
- "Function called to rename the buffer after sending it."
+ "*Function called to rename the buffer after sending it."
:group 'message-buffers
:type 'function)
(defcustom message-syntax-checks nil
;; Guess this one shouldn't be easy to customize...
- "Controls what syntax checks should not be performed on outgoing posts.
+ "*Controls what syntax checks should not be performed on outgoing posts.
To disable checking of long signatures, for instance, add
`(signature . disabled)' to this list.
'(From Newsgroups Subject Date Message-ID
(optional . Organization) Lines
(optional . X-Newsreader))
- "Headers to be generated or prompted for when posting an article.
+ "*Headers to be generated or prompted for when posting an article.
RFC977 and RFC1036 require From, Date, Newsgroups, Subject,
Message-ID. Organization, Lines, In-Reply-To, Expires, and
X-Newsreader are optional. If don't you want message to insert some
(defcustom message-required-mail-headers
'(From Subject Date (optional . In-Reply-To) Message-ID Lines
(optional . X-Mailer))
- "Headers to be generated or prompted for when mailing a message.
+ "*Headers to be generated or prompted for when mailing a message.
RFC822 required that From, Date, To, Subject and Message-ID be
included. Organization, Lines and X-Mailer are optional."
:group 'message-mail
:type '(repeat sexp))
(defcustom message-deletable-headers '(Message-ID Date Lines)
- "Headers to be deleted if they already exist and were generated by message previously."
+ "*Headers to be deleted if they already exist and were generated by message previously."
:group 'message-headers
:type 'sexp)
;;;###autoload
(defcustom message-signature-separator "^-- *$"
- "Regexp matching the signature separator."
+ "*Regexp matching the signature separator."
:type 'regexp
:group 'message-various)
"*The string which is inserted for elided text.")
(defcustom message-interactive nil
- "Non-nil means when sending a message wait for and display errors.
+ "*Non-nil means when sending a message wait for and display errors.
nil means let mailer mail back a message to report errors."
:group 'message-sending
:group 'message-mail
:type 'regexp)
(defcustom message-cancel-message "I am canceling my own article."
- "Message to be inserted in the cancel message."
+ "*Message to be inserted in the cancel message."
:group 'message-interface
:type 'string)
;; Useful to set in site-init.el
;;;###autoload
(defcustom message-send-mail-function 'message-send-mail-with-sendmail
- "Function to call to send the current buffer as mail.
+ "*Function to call to send the current buffer as mail.
The headers should be delimited by a line whose contents match the
variable `mail-header-separator'.
:group 'message-mail)
(defcustom message-send-news-function 'message-send-news
- "Function to call to send the current buffer as news.
+ "*Function to call to send the current buffer as news.
The headers should be delimited by a line whose contents match the
variable `mail-header-separator'."
:group 'message-sending
:type 'function)
(defcustom message-reply-to-function nil
- "Function that should return a list of headers.
+ "*Function that should return a list of headers.
This function should pick out addresses from the To, Cc, and From headers
and respond with new To and Cc headers."
:group 'message-interface
:type 'function)
(defcustom message-wide-reply-to-function nil
- "Function that should return a list of headers.
+ "*Function that should return a list of headers.
This function should pick out addresses from the To, Cc, and From headers
and respond with new To and Cc headers."
:group 'message-interface
:type 'function)
(defcustom message-followup-to-function nil
- "Function that should return a list of headers.
+ "*Function that should return a list of headers.
This function should pick out addresses from the To, Cc, and From headers
and respond with new To and Cc headers."
:group 'message-interface
;; qmail-related stuff
(defcustom message-qmail-inject-program "/var/qmail/bin/qmail-inject"
- "Location of the qmail-inject program."
+ "*Location of the qmail-inject program."
:group 'message-sending
:type 'file)
(defcustom message-qmail-inject-args nil
- "Arguments passed to qmail-inject programs.
+ "*Arguments passed to qmail-inject programs.
This should be a list of strings, one string for each argument.
For e.g., if you wish to set the envelope sender address so that bounces
((boundp 'gnus-select-method)
gnus-select-method)
(t '(nnspool "")))
- "Method used to post news."
+ "*Method used to post news."
:group 'message-news
:group 'message-sending
;; This should be the `gnus-select-method' widget, but that might
:type 'boolean)
(defcustom message-setup-hook nil
- "Normal hook, run each time a new outgoing message is initialized.
+ "*Normal hook, run each time a new outgoing message is initialized.
The function `message-setup' runs this hook."
:group 'message-various
:type 'hook)
(defcustom message-signature-setup-hook nil
- "Normal hook, run each time a new outgoing message is initialized.
+ "*Normal hook, run each time a new outgoing message is initialized.
It is run after the headers have been inserted and before
the signature is inserted."
:group 'message-various
:type 'hook)
(defcustom message-mode-hook nil
- "Hook run in message mode buffers."
+ "*Hook run in message mode buffers."
:group 'message-various
:type 'hook)
(defcustom message-header-hook nil
- "Hook run in a message mode buffer narrowed to the headers."
+ "*Hook run in a message mode buffer narrowed to the headers."
:group 'message-various
:type 'hook)
(defcustom message-header-setup-hook nil
- "Hook called narrowed to the headers when setting up a message
+ "*Hook called narrowed to the headers when setting up a message
buffer."
:group 'message-various
:type 'hook)
:type 'function)
(defcustom message-expires 14
- "Number of days before your article expires."
+ "*Number of days before your article expires."
:group 'message-news
:group 'message-headers
:link '(custom-manual "(message)News Headers")
:type 'integer)
(defcustom message-user-path nil
- "If nil, use the NNTP server name in the Path header.
+ "*If nil, use the NNTP server name in the Path header.
If stringp, use this; if non-nil, use no host name (user name only)."
:group 'message-news
:group 'message-headers
;; 33 and 126, except colon)", i. e., any chars except ctl chars,
;; space, or colon.
'(looking-at "[ \t]\\|[][!\"#$%&'()*+,-./0-9;<=>?@A-Z\\\\^_`a-z{|}~]+:"))
- "Set this non-nil if the system's mailer runs the header and body together.
+ "*Set this non-nil if the system's mailer runs the header and body together.
\(This problem exists on Sunos 4 when sendmail is run in remote mode.)
The value should be an expression to test whether the problem will
actually occur."
The cdr of ech entry is a function for applying the face to a region.")
(defcustom message-send-hook nil
- "Hook run before sending messages."
+ "*Hook run before sending messages."
:group 'message-various
:options '(ispell-message)
:type 'hook)
(defcustom message-send-mail-hook nil
- "Hook run before sending mail messages."
+ "*Hook run before sending mail messages."
:group 'message-various
:type 'hook)
(defcustom message-send-news-hook nil
- "Hook run before sending news messages."
+ "*Hook run before sending news messages."
:group 'message-various
:type 'hook)
(defcustom message-sent-hook nil
- "Hook run after sending messages."
+ "*Hook run after sending messages."
:group 'message-various
:type 'hook)
(mail-abbrevs-setup)
(funcall (intern "mail-aliases-setup"))))
(message-set-auto-save-file-name)
- (run-hooks 'text-mode-hook 'message-mode-hook)
+ (gnus-run-hooks 'text-mode-hook 'message-mode-hook)
(unless (string-match "XEmacs" emacs-version)
(set (make-local-variable 'font-lock-defaults)
'(message-font-lock-keywords t))))
(let ((inhibit-read-only t))
(put-text-property (point-min) (point-max) 'read-only nil))
(message-fix-before-sending)
- (run-hooks 'message-send-hook)
+ (gnus-run-hooks 'message-send-hook)
(message "Sending...")
(let ((alist message-send-method-alist)
(success t)
(message-do-fcc)
;;(when (fboundp 'mail-hist-put-headers-into-history)
;; (mail-hist-put-headers-into-history))
- (run-hooks 'message-sent-hook)
+ (gnus-run-hooks 'message-sent-hook)
(message "Sending...done")
;; Mark the buffer as unmodified and delete autosave.
(set-buffer-modified-p nil)
(if news nil message-deletable-headers)))
(message-generate-headers message-required-mail-headers))
;; Let the user do all of the above.
- (run-hooks 'message-header-hook))
+ (gnus-run-hooks 'message-header-hook))
(unwind-protect
(save-excursion
(set-buffer tembuf)
(replace-match "\n")
(backward-char 1)
(setq delimline (point-marker))
- (run-hooks 'message-send-mail-hook)
+ (gnus-run-hooks 'message-send-mail-hook)
;; Insert an extra newline if we need it to work around
;; Sun's bug that swallows newlines.
(goto-char (1+ delimline))
(re-search-forward
(concat "^" (regexp-quote mail-header-separator) "\n"))
(replace-match "\n")
- (run-hooks 'message-send-mail-hook)
+ (gnus-run-hooks 'message-send-mail-hook)
;; send the message
(case
(let ((coding-system-for-write 'binary))
(concat "^" (symbol-name (car headers)) ": *") nil t)
(message-delete-line))
(pop headers))))
- (run-hooks 'message-send-mail-hook)
+ (gnus-run-hooks 'message-send-mail-hook)
;; Pass it on to mh.
(mh-send-letter)))
;; Insert some headers.
(message-generate-headers message-required-news-headers)
;; Let the user do all of the above.
- (run-hooks 'message-header-hook))
+ (gnus-run-hooks 'message-header-hook))
(message-cleanup-headers)
(if (not (message-check-news-syntax))
(progn
(concat "^" (regexp-quote mail-header-separator) "\n"))
(replace-match "\n")
(backward-char 1))
- (run-hooks 'message-send-news-hook)
+ (gnus-run-hooks 'message-send-news-hook)
;;(require (car method))
;;(funcall (intern (format "%s-open-server" (car method)))
;;(cadr method) (cddr method))
(let* ((case-fold-search t)
(message-id (message-fetch-field "message-id" t)))
(or (not message-id)
+ ;; Is there an @ in the ID?
(and (string-match "@" message-id)
- (string-match "@[^\\.]*\\." message-id))
+ ;; Is there a dot in the ID?
+ (string-match "@[^.]*\\." message-id)
+ ;; Does the ID end with a dot?
+ (not (string-match "\\.>" message-id)))
(y-or-n-p
(format "The Message-ID looks strange: \"%s\". Really post? "
message-id)))))
(delq 'Lines
(delq 'Subject
(copy-sequence message-required-mail-headers))))))
- (run-hooks 'message-signature-setup-hook)
+ (gnus-run-hooks 'message-signature-setup-hook)
(message-insert-signature)
(save-restriction
(message-narrow-to-headers)
- (run-hooks 'message-header-setup-hook))
+ (gnus-run-hooks 'message-header-setup-hook))
(set-buffer-modified-p nil)
(setq buffer-undo-list nil)
- (run-hooks 'message-setup-hook)
+ (gnus-run-hooks 'message-setup-hook)
(message-position-point)
(undo-boundary))
;;; messagexmas.el --- XEmacs extensions to message
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: mail, news
;;; messcompat.el --- making message mode compatible with mail mode
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: mail, news
;;; nnagent.el --- offline backend for Gnus
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news, mail
(deffoo nnagent-request-newgroups (date server)
nil)
+(deffoo nnagent-request-update-info (group info &optional server)
+ nil)
+
(deffoo nnagent-request-post (&optional server)
(gnus-request-accept-article "nndraft:queue"))
;;; nnbabyl.el --- rmail mbox access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
(nnbabyl-insert-lines)
(nnmail-insert-xref group-art)
(nnbabyl-insert-newsgroup-line group-art)
- (run-hooks 'nnbabyl-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnbabyl-prepare-save-mail-hook)
group-art)
(defun nnbabyl-insert-newsgroup-line (group-art)
;;; nndb.el --- nndb access for Gnus
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Kai Grossjohann <grossjohann@ls6.informatik.uni-dortmund.de>
;;; nndir.el --- single directory newsgroup access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; nndoc.el --- single file access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
(if (stringp nndoc-address)
(nnheader-insert-file-contents nndoc-address)
(insert-buffer-substring nndoc-address))
- (run-hooks 'nndoc-open-document-hook))))
+ (gnus-run-hooks 'nndoc-open-document-hook))))
;; Initialize the nndoc structures according to this new document.
(when (and nndoc-current-buffer
(not nndoc-dissection-alist))
;;; nndraft.el --- draft article access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; nneething.el --- random file access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Scott Byer <byer@mv.us.adobe.com>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(setq save-list group-art-list)
(nnmail-insert-lines)
(nnmail-insert-xref group-art-list)
- (run-hooks 'nnmail-prepare-save-mail-hook)
- (run-hooks 'nnfolder-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnmail-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnfolder-prepare-save-mail-hook)
;; Insert the mail into each of the destination groups.
(while (setq group-art (pop group-art-list))
(defun nnfolder-save-buffer ()
"Save the buffer."
(when (buffer-modified-p)
- (run-hooks 'nnfolder-save-buffer-hook)
+ (gnus-run-hooks 'nnfolder-save-buffer-hook)
(gnus-make-directory (file-name-directory (buffer-file-name)))
(save-buffer)))
;;; nngateway.el --- posting news via mail gateways
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news, mail
;;; nnheader.el --- header access macros for Gnus and its backends
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(when (string-match (car ange-ftp-path-format) path)
(ange-ftp-re-read-dir path)))))
-;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(defvar nnheader-file-coding-system 'raw-text
"Coding system used in file backends of Gnus.")
(auto-mode-alist (nnheader-auto-mode-alist))
(default-major-mode 'fundamental-mode)
(after-insert-file-functions nil)
- ;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(coding-system-for-read nnheader-file-coding-system))
(insert-file-contents filename visit beg end replace)))
(default-major-mode 'fundamental-mode)
(enable-local-variables nil)
(after-insert-file-functions nil)
- ;; 1997/5/16 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(coding-system-for-read nnheader-file-coding-system))
(apply 'find-file-noselect args)))
;;; nnheaderxm.el --- making Gnus backends work under XEmacs
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; nnkiboze.el --- select virtual news access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
-;;; nnlsitserv.el --- retrieving articles via web mailing list archives
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;;; nnlistserv.el --- retrieving articles via web mailing list archives
+;; Copyright (C) 1997,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news, mail
;;; nnmail.el --- mail support functions for the Gnus mail backends
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news, mail
(defcustom nnmail-split-methods
'(("mail.misc" ""))
- "Incoming mail will be split according to this variable.
+ "*Incoming mail will be split according to this variable.
If you'd like, for instance, one mail group for mail from the
\"4ad-l\" mailing list, one group for junk mail and one for everything
;; Suggested by Erik Selberg <speed@cs.washington.edu>.
(defcustom nnmail-crosspost t
- "If non-nil, do crossposting if several split methods match the mail.
+ "*If non-nil, do crossposting if several split methods match the mail.
If nil, the first match found will be used."
:group 'nnmail-split
:type 'boolean)
;; Added by gord@enci.ucalgary.ca (Gordon Matzigkeit).
(defcustom nnmail-keep-last-article nil
- "If non-nil, nnmail will never delete/move a group's last article.
+ "*If non-nil, nnmail will never delete/move a group's last article.
It can be marked expirable, so it will be deleted when it is no longer last.
You may need to set this variable if other programs are putting
:type 'boolean)
(defcustom nnmail-use-long-file-names nil
- "If non-nil the mail backends will use long file and directory names.
+ "*If non-nil the mail backends will use long file and directory names.
If nil, groups like \"mail.misc\" will end up in directories like
\"mail/misc/\"."
:group 'nnmail-files
:type 'boolean)
(defcustom nnmail-default-file-modes 384
- "Set the mode bits of all new mail files to this integer."
+ "*Set the mode bits of all new mail files to this integer."
:group 'nnmail-files
:type 'integer)
(const never)))
(defcustom nnmail-expiry-wait-function nil
- "Variable that holds function to specify how old articles should be before they are expired.
+ "*Variable that holds function to specify how old articles should be before they are expired.
The function will be called with the name of the group that the
expiry is to be performed in, and it should return an integer that
says how many days an article can be stored before it is considered
(function :format "%v" nnmail-)))
(defcustom nnmail-cache-accepted-message-ids nil
- "If non-nil, put Message-IDs of Gcc'd articles into the duplicate cache."
+ "*If non-nil, put Message-IDs of Gcc'd articles into the duplicate cache."
:group 'nnmail
:type 'boolean)
(defcustom nnmail-spool-file
(or (getenv "MAIL")
(concat "/usr/spool/mail/" (user-login-name)))
- "Where the mail backends will look for incoming mail.
+ "*Where the mail backends will look for incoming mail.
This variable is \"/usr/spool/mail/$user\" by default.
If this variable is nil, no mail backends will read incoming mail.
If this variable is a list, all files mentioned in this list will be
:type 'file)
(defcustom nnmail-crash-box "~/.gnus-crash-box"
- "File where Gnus will store mail while processing it."
+ "*File where Gnus will store mail while processing it."
:group 'nnmail-files
:type 'file)
:type 'boolean)
(defcustom nnmail-delete-file-function 'delete-file
- "Function called to delete files in some mail backends."
+ "*Function called to delete files in some mail backends."
:group 'nnmail-files
:type 'function)
(if (string-match "windows-nt\\|emx" (format "%s" system-type))
'copy-file
'add-name-to-file)
- "Function called to create a copy of a file.
+ "*Function called to create a copy of a file.
This is `add-name-to-file' by default, which means that crossposts
will use hard links. If your file system doesn't allow hard
links, you could set this variable to `copy-file' instead."
(if (eq system-type 'windows-nt)
'(nnheader-ms-strip-cr)
nil)
- "Hook that will be run after the incoming mail has been transferred.
+ "*Hook that will be run after the incoming mail has been transferred.
The incoming mail is moved from `nnmail-spool-file' (which normally is
something like \"/usr/spool/mail/$user\") to the user's home
directory. This hook is called after the incoming mail box has been
;; Suggested by Erik Selberg <speed@cs.washington.edu>.
(defcustom nnmail-prepare-incoming-hook nil
- "Hook called before treating incoming mail.
+ "*Hook called before treating incoming mail.
The hook is run in a buffer with all the new, incoming mail."
:group 'nnmail-prepare
:type 'hook)
(defcustom nnmail-prepare-incoming-header-hook nil
- "Hook called narrowed to the headers of each message.
+ "*Hook called narrowed to the headers of each message.
This can be used to remove excessive spaces (and stuff like
that) from the headers before splitting and saving the messages."
:group 'nnmail-prepare
:type 'hook)
(defcustom nnmail-prepare-incoming-message-hook nil
- "Hook called narrowed to each message."
+ "*Hook called narrowed to each message."
:group 'nnmail-prepare
:type 'hook)
(defcustom nnmail-list-identifiers nil
- "Regexp that matches list identifiers to be removed.
+ "*Regexp that matches list identifiers to be removed.
This can also be a list of regexps."
:group 'nnmail-prepare
:type '(choice (const :tag "none" nil)
(repeat :value (".*") regexp)))
(defcustom nnmail-pre-get-new-mail-hook nil
- "Hook called just before starting to handle new incoming mail."
+ "*Hook called just before starting to handle new incoming mail."
:group 'nnmail-retrieve
:type 'hook)
(defcustom nnmail-post-get-new-mail-hook nil
- "Hook called just after finishing handling new incoming mail."
+ "*Hook called just after finishing handling new incoming mail."
:group 'nnmail-retrieve
:type 'hook)
(defcustom nnmail-split-hook nil
- "Hook called before deciding where to split an article.
+ "*Hook called before deciding where to split an article.
The functions in this hook are free to modify the buffer
contents in any way they choose -- the buffer contents are
discarded after running the split process."
:type 'integer)
(defcustom nnmail-split-fancy "mail.misc"
- "Incoming mail can be split according to this fancy variable.
+ "*Incoming mail can be split according to this fancy variable.
To enable this, set `nnmail-split-methods' to `nnmail-split-fancy'.
The format is this variable is SPLIT, where SPLIT can be one of
(from . "from\\|sender\\|resent-from")
(nato . "to\\|cc\\|resent-to\\|resent-cc")
(naany . "from\\|to\\|cc\\|sender\\|resent-from\\|resent-to\\|resent-cc"))
- "Alist of abbreviations allowed in `nnmail-split-fancy'."
+ "*Alist of abbreviations allowed in `nnmail-split-fancy'."
:group 'nnmail-split
:type '(repeat (cons :format "%v" symbol regexp)))
(defun nnmail-request-post (&optional server)
(mail-send-and-exit nil))
-;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(defvar nnmail-file-coding-system 'raw-text
"Coding system used in nnmail.")
(let ((format-alist nil)
(after-insert-file-functions nil))
(condition-case ()
- ;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(let ((coding-system-for-read nnmail-file-coding-system)
- ;; 1997/8/12 by MORIOKA Tomohiko
- ;; for XEmacs/mule.
(pathname-coding-system 'binary))
(insert-file-contents file)
t)
(file-error nil))))
-;; 1997/8/10 by MORIOKA Tomohiko
(defvar nnmail-pathname-coding-system
'iso-8859-1
"*Coding system for pathname.")
group-assoc)))
group-assoc))
-;; 1997/8/12 by MORIOKA Tomohiko
(defvar nnmail-active-file-coding-system
'iso-8859-1
"*Coding system for active file.")
(defun nnmail-process-babyl-mail-format (func artnum-func)
(let ((case-fold-search t)
start message-id content-length do-search end)
- (goto-char (point-min))
(while (not (eobp))
+ (goto-char (point-min))
(re-search-forward
"\f\n0, *unseen,+\n\\(\\*\\*\\* EOOH \\*\\*\\*\n\\)?" nil t)
(goto-char (match-end 0))
(goto-char (point-min))
(when (looking-at ">From ")
(replace-match "X-From-Line: ") )
- (run-hooks 'nnmail-prepare-incoming-header-hook)
+ (gnus-run-hooks 'nnmail-prepare-incoming-header-hook)
(goto-char (point-max))
;; Find the Message-ID header.
(save-excursion
;; having a (possibly) faulty header.
(beginning-of-line)
(insert "X-"))
- (run-hooks 'nnmail-prepare-incoming-header-hook)
+ (gnus-run-hooks 'nnmail-prepare-incoming-header-hook)
;; Find the end of this article.
(goto-char (point-max))
(widen)
(insert "Original-")))
(forward-line 1)
(insert "Message-ID: " (setq message-id (nnmail-message-id)) "\n"))
- (run-hooks 'nnmail-prepare-incoming-header-hook)
+ (gnus-run-hooks 'nnmail-prepare-incoming-header-hook)
;; Find the end of this article.
(goto-char (point-max))
(widen)
(nnheader-insert-file-contents incoming)
(unless (zerop (buffer-size))
(goto-char (point-min))
- (save-excursion (run-hooks 'nnmail-prepare-incoming-hook))
+ (save-excursion (gnus-run-hooks 'nnmail-prepare-incoming-hook))
;; Handle both babyl, MMDF and unix mail formats, since movemail will
;; use the former when fetching from a mailbox, the latter when
;; fetching from a file.
(obuf (current-buffer))
(beg (point-min))
end group-art method regrepp)
- (if (and (sequencep methods) (= (length methods) 1))
+ (if (and (sequencep methods)
+ (= (length methods) 1))
;; If there is only just one group to put everything in, we
;; just return a list with just this one method in.
(setq group-art
(while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t)
(replace-match " " t t))
;; Allow washing.
- (run-hooks 'nnmail-split-hook)
+ (gnus-run-hooks 'nnmail-split-hook)
(if (and (symbolp nnmail-split-methods)
(fboundp nnmail-split-methods))
(let ((split
"Error in `nnmail-split-methods'; using `bogus' mail group")
(sit-for 1)
'("bogus")))))
+ (setq split (remove-duplicates split :test 'equal))
;; The article may be "cross-posted" to `junk'. What
;; to do? Just remove the `junk' spec. Don't really
;; see anything else to do...
(message-fetch-field header))))
(defun nnmail-check-duplication (message-id func artnum-func)
- (run-hooks 'nnmail-prepare-incoming-message-hook)
+ (gnus-run-hooks 'nnmail-prepare-incoming-message-hook)
;; If this is a duplicate message, then we do not save it.
(let* ((duplication (nnmail-cache-id-exists-p message-id))
(case-fold-search t)
;; We first activate all the groups.
(nnmail-activate method)
;; Allow the user to hook.
- (run-hooks 'nnmail-pre-get-new-mail-hook)
+ (gnus-run-hooks 'nnmail-pre-get-new-mail-hook)
;; Open the message-id cache.
(nnmail-cache-open)
;; The we go through all the existing spool files and split the
(nnmail-get-value "%s-active-file" method))
(when exit-func
(funcall exit-func))
- (run-hooks 'nnmail-read-incoming-hook)
+ (gnus-run-hooks 'nnmail-read-incoming-hook)
(nnheader-message 3 "%s: Reading incoming mail...done" method))
;; Close the message-id cache.
(nnmail-cache-close)
;; Allow the user to hook.
- (run-hooks 'nnmail-post-get-new-mail-hook)
+ (gnus-run-hooks 'nnmail-post-get-new-mail-hook)
;; Delete all the temporary files.
(while incomings
(setq incoming (pop incomings))
(defun nnmail-write-region (start end filename &optional append visit lockname)
"Do a `write-region', and then set the file modes."
- ;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(let ((coding-system-for-write nnmail-file-coding-system)
- ;; 1997/8/12 by MORIOKA Tomohiko
- ;; for XEmacs/mule.
(pathname-coding-system 'binary))
(write-region start end filename append visit lockname)
(set-file-modes filename nnmail-default-file-modes)))
;;; nnmbox.el --- mail mbox access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
(nnmail-insert-lines)
(nnmail-insert-xref group-art)
(nnmbox-insert-newsgroup-line group-art)
- (run-hooks 'nnmail-prepare-save-mail-hook)
- (run-hooks 'nnmbox-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnmail-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnmbox-prepare-save-mail-hook)
group-art))
(defun nnmbox-insert-newsgroup-line (group-art)
;;; nnmh.el --- mhspool access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
(directory-files nnmh-current-directory nil "^[0-9]+$" t)))
(is-old t)
article rest mod-time)
- (nnmail-activate 'nnmh)
+ (nnheader-init-server-buffer)
(while (and articles is-old)
(setq article (concat nnmh-current-directory
(nnmail-check-syntax)
(when nnmail-cache-accepted-message-ids
(nnmail-cache-insert (nnmail-fetch-field "message-id")))
+ (nnheader-init-server-buffer)
(prog1
(if (stringp group)
- (and
- (nnmail-activate 'nnmh)
- (if noinsert
- (nnmh-active-number group)
- (car (nnmh-save-mail
- (list (cons group (nnmh-active-number group)))
- noinsert))))
- (and
- (nnmail-activate 'nnmh)
- (let ((res (nnmail-article-group 'nnmh-active-number)))
- (if (and (null res)
- (yes-or-no-p "Moved to `junk' group; delete article? "))
- 'junk
- (car (nnmh-save-mail res noinsert))))))
+ (if noinsert
+ (nnmh-active-number group)
+ (car (nnmh-save-mail
+ (list (cons group (nnmh-active-number group)))
+ noinsert)))
+ (let ((res (nnmail-article-group 'nnmh-active-number)))
+ (if (and (null res)
+ (yes-or-no-p "Moved to `junk' group; delete article? "))
+ 'junk
+ (car (nnmh-save-mail res noinsert)))))
(when (and last nnmail-cache-accepted-message-ids)
(nnmail-cache-close))))
t)))
(deffoo nnmh-request-create-group (group &optional server args)
- (nnmail-activate 'nnmh)
+ (nnheader-init-server-buffer)
(unless (assoc group nnmh-group-alist)
(let (active)
(push (list group (setq active (cons 1 0)))
(unless noinsert
(nnmail-insert-lines)
(nnmail-insert-xref group-art))
- (run-hooks 'nnmail-prepare-save-mail-hook)
- (run-hooks 'nnmh-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnmail-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnmh-prepare-save-mail-hook)
(goto-char (point-min))
(while (looking-at "From ")
(replace-match "X-From-Line: ")
;;; nnml.el --- mail spool access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
(deffoo nnml-request-article (id &optional group server buffer)
(nnml-possibly-change-directory group server)
(let* ((nntp-server-buffer (or buffer nntp-server-buffer))
- ;; 1997/8/12 by MORIOKA Tomohiko
- ;; for XEmacs/mule.
(pathname-coding-system 'binary)
path gpath group-num)
(if (stringp id)
(deffoo nnml-request-list (&optional server)
(save-excursion
- ;; 1997/8/12 by MORIOKA Tomohiko
- ;; for XEmacs/mule.
(let ((nnmail-file-coding-system nnmail-active-file-coding-system)
(pathname-coding-system 'binary)) ; for XEmacs/mule
(nnmail-find-file nnml-active-file)
(let (chars headers)
(setq chars (nnmail-insert-lines))
(nnmail-insert-xref group-art)
- (run-hooks 'nnmail-prepare-save-mail-hook)
- (run-hooks 'nnml-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnmail-prepare-save-mail-hook)
+ (gnus-run-hooks 'nnml-prepare-save-mail-hook)
(goto-char (point-min))
(while (looking-at "From ")
(replace-match "X-From-Line: ")
;;; nnoo.el --- OO Gnus Backends
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; nnsoup.el --- SOUP access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nnspool.el --- spool access for GNU Emacs
-;; Copyright (C) 1988,89,90,93,94,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1988,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(defvoo nnspool-rejected-article-hook nil
"*A hook that will be run when an article has been rejected by the server.")
-;; 1997/8/14 by MORIOKA Tomohiko
(defvoo nnspool-file-coding-system nnheader-file-coding-system
"Coding system for nnspool.")
(nnheader-report 'nnspool "%s" (buffer-string))
(message "nnspool: %s" nnspool-status-string)
(ding)
- (run-hooks 'nnspool-rejected-article-hook))))
+ (gnus-run-hooks 'nnspool-rejected-article-hook))))
(defun nnspool-retrieve-headers-with-nov (articles &optional fetch-old)
(if (or gnus-nov-is-evil nnspool-nov-is-evil)
(defvar nntp-inside-change-function nil)
(defvoo nntp-last-command-time nil)
(defvoo nntp-last-command nil)
+(defvoo nntp-authinfo-password nil)
(defvar nntp-connection-list nil)
reading."
(nntp-send-command "^.*\r?\n" "MODE READER"))
+(defun nntp-send-authinfo ()
+ "Send the AUTHINFO to the nntp server.
+This function is supposed to be called from `nntp-server-opened-hook'.
+It will look in the \"~/.netrc\" file for matching entries. If
+nothing suitable is found there, it will prompt for a user name
+and a password."
+ (let* ((list (gnus-parse-netrc "~/.netrc"))
+ (alist (gnus-netrc-machine list nntp-address))
+ (user (gnus-netrc-get alist "login"))
+ (passwd (gnus-netrc-get alist "password")))
+ (nntp-send-command
+ "^3.*\r?\n" "AUTHINFO USER"
+ (or user (read-string (format "NNTP (%s) user name: " nntp-address))))
+ (nntp-send-command
+ "^2.*\r?\n" "AUTHINFO PASS"
+ (or passwd
+ nntp-authinfo-password
+ (setq nntp-authinfo-password
+ (nnmail-read-passwd (format "NNTP (%s) password: "
+ nntp-address)))))))
+
(defun nntp-send-nosy-authinfo ()
"Send the AUTHINFO to the nntp server.
This function is supposed to be called from `nntp-server-opened-hook'.
"^2.*\r?\n" "AUTHINFO PASS"
(nnmail-read-passwd "NNTP (%s) password: " nntp-address)))
-(defun nntp-send-authinfo ()
+(defun nntp-send-authinfo-from-file ()
"Send the AUTHINFO to the nntp server.
This function is supposed to be called from `nntp-server-opened-hook'.
-It will prompt for a password."
- (nntp-send-command "^3.*\r?\n" "AUTHINFO USER" (user-login-name))
- (nntp-send-command
- "^2.*\r?\n" "AUTHINFO PASS"
- (nnmail-read-passwd (format "NNTP (%s) password: " nntp-address))))
-(defun nntp-send-authinfo-from-file ()
- "Send the AUTHINFO to the nntp server.
-This function is supposed to be called from `nntp-server-opened-hook'."
+The authinfo login name is taken from the user's login name and the
+password contained in '~/.nntp-authinfo'."
(when (file-exists-p "~/.nntp-authinfo")
(nnheader-temp-write nil
(insert-file-contents "~/.nntp-authinfo")
(defun nntp-open-connection (buffer)
"Open a connection to PORT on ADDRESS delivering output to BUFFER."
- (run-hooks 'nntp-prepare-server-hook)
+ (gnus-run-hooks 'nntp-prepare-server-hook)
(let* ((pbuffer (nntp-make-process-buffer buffer))
(process
(condition-case ()
(erase-buffer)
(set-buffer nntp-server-buffer)
(let ((nnheader-callback-function nil))
- (run-hooks 'nntp-server-opened-hook))))
+ (gnus-run-hooks 'nntp-server-opened-hook))))
(when (buffer-name (process-buffer process))
(kill-buffer (process-buffer process)))
nil))))
;;; nnvirtual.el --- virtual newsgroups access for Gnus
-;; Copyright (C) 1994,95,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
;; Author: David Moore <dmoore@ucsd.edu>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;;; nnweb.el --- retrieving articles via web search engines
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
;;; pop3.el --- Post Office Protocol (RFC 1460) interface
-;; Copyright (C) 1996,1997 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Richard L. Pieri <ratinox@peorth.gweep.net>
;; Keywords: mail, pop3
(setq mode-name "Score")
(lisp-mode-variables nil)
(make-local-variable 'gnus-score-edit-exit-function)
- (run-hooks 'emacs-lisp-mode-hook 'gnus-score-mode-hook))
+ (gnus-run-hooks 'emacs-lisp-mode-hook 'gnus-score-mode-hook))
(defun gnus-score-make-menu-bar ()
(unless (boundp 'gnus-score-menu)
["Exit" gnus-score-edit-exit t]
["Insert date" gnus-score-edit-insert-date t]
["Format" gnus-score-pretty-print t]))
- (run-hooks 'gnus-score-menu-hook)))
+ (gnus-run-hooks 'gnus-score-menu-hook)))
(defun gnus-score-edit-insert-date ()
"Insert date in numerical format."
;;; smiley.el --- displaying smiley faces
-;; Copyright (C) 1996,97 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
;; Author: Wes Hardaker <hardaker@ece.ucdavis.edu>
;; Keywords: fun
:group 'gnus-visual)
(defcustom smiley-data-directory (message-xmas-find-glyph-directory "smilies")
- "Location of the smiley faces files."
+ "*Location of the smiley faces files."
:type 'directory
:group 'smiley)
("\\(;-*[>)}»]+\\)\\W" 1 "FaceWinking.xpm")
("\\(:-*[Vvµ]\\)\\W" 1 "FaceWry.xpm")
("\\([:|]-*P\\)\\W" 1 "FaceYukky.xpm"))
- "Normal and deformed faces for smilies."
+ "*Normal and deformed faces for smilies."
:type '(repeat (list regexp
(integer :tag "Match")
(string :tag "Image")))
("\\(:-+[Vvµ]\\)\\W" 1 "FaceWry.xpm")
("\\(][:8B]-[)>]\\)\\W" 1 "FaceDevilish.xpm")
("\\([:|]-+P\\)\\W" 1 "FaceYukky.xpm"))
- "Smileys with noses. These get less false matches."
+ "*Smileys with noses. These get less false matches."
:type '(repeat (list regexp
(integer :tag "Match")
(string :tag "Image")))
:group 'smiley)
(defcustom smiley-regexp-alist smiley-deformed-regexp-alist
- "A list of regexps to map smilies to real images.
+ "*A list of regexps to map smilies to real images.
Defaults to the contents of `smiley-deformed-regexp-alist'.
An alternative is `smiley-nosey-regexp-alist' that matches less
aggressively.
:group 'smiley)
(defcustom smiley-flesh-color "yellow"
- "Flesh color."
+ "*Flesh color."
:type 'string
:group 'smiley)
(defcustom smiley-features-color "black"
- "Features color."
+ "*Features color."
:type 'string
:group 'smiley)
(defcustom smiley-tongue-color "red"
- "Tongue color."
+ "*Tongue color."
:type 'string
:group 'smiley)
(defcustom smiley-circle-color "black"
- "Circle color."
+ "*Circle color."
:type 'string
:group 'smiley)
(defcustom smiley-mouse-face 'highlight
- "Face used for mouse highlighting in the smiley buffer.
+ "*Face used for mouse highlighting in the smiley buffer.
Smiley buttons will be displayed in this face when the cursor is
above them."
+Sat Feb 14 17:46:33 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Virtual Groups): Fix.
+ (NNTP): Addition.
+ (Really Various Summary Commands): Addition.
+
Fri Feb 13 18:23:19 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Mail Group Commands): Typo.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Quassia Gnus 0.25 Manual
+@settitle Quassia Gnus 0.26 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Quassia Gnus 0.25 Manual
+@title Quassia Gnus 0.26 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Quassia Gnus 0.25.
+This manual corresponds to Quassia Gnus 0.26.
@end ifinfo
Expand the summary buffer window (@code{gnus-summary-expand-window}).
If given a prefix, force an @code{article} window configuration.
+@item M-C-e
+@kindex M-C-e (Summary)
+@findex gnus-summary-edit-parameters
+Edit the group parameters (@pxref{Group Parameters}) of the current
+group (@code{gnus-summary-edit-parameters}).
+
@end table
@item nntp-authinfo-function
@vindex nntp-authinfo-function
+@findex nntp-send-authinfo
This function will be used to send @samp{AUTHINFO} to the @sc{nntp}
-server. Available functions include:
+server. The default function is @code{nntp-send-authinfo}, which looks
+through your @file{~/.netrc} for applicable entries. If none are found,
+it will prompt you for a login name and a password. The format of the
+@file{~/.netrc} file is defined in the @code{ftp} manual page, but here
+are the salient facts:
-@table @code
-@item nntp-send-authinfo
-@findex nntp-send-authinfo
-This function will use your current login name as the user name and will
-prompt you for the password. This is the default.
+@enumerate
+@item
+The file contains one or more line, each of which define one server.
-@item nntp-send-nosy-authinfo
-@findex nntp-send-nosy-authinfo
-This function will prompt you for both user name and password.
+@item
+Each line may contain an arbitrary number of token/value pairs. The
+valid tokens include @samp{machine}, @samp{login}, and @samp{password}.
-@item nntp-send-authinfo-from-file
-@findex nntp-send-authinfo-from-file
-This function will use your current login name as the user name and will
-read the @sc{nntp} password from @file{~/.nntp-authinfo}.
-@end table
+@end enumerate
+
+Here's an example file:
+
+@example
+machine news.uio.no login larsi password geheimnis
+machine nntp.ifi.uio.no login larsi
+@end example
+
+The token/value pairs may appear in any order; @samp{machine} doesn't
+have to be first, for instance.
+
+In this example, both login name and password have been supplied for the
+former server, while the latter has only the login name listed, and the
+user will be prompted for the password.
+
+Remember to not leave the @file{~/.netrc} world-readable.
@item nntp-server-action-alist
@vindex nntp-server-action-alist
and a server in Norway, you could use the following as the group regexp:
@example
-"^nntp+some.server.jp:soc.motss$\\|^nntp+some.server.no:soc.motss$"
+"^nntp\\+some\\.server\\.jp:soc\\.motss$\\|^nntp\\+some\\.server\\.no:soc\\.motss$"
@end example
+(Remember, though, that if you're creating the group with @kbd{G m}, you
+shouldn't double the backslashes, and you should leave off the quote
+characters at the beginning and the end of the string.)
+
This should work kinda smoothly---all articles from both groups should
end up in this one, and there should be no duplicates. Threading (and
the rest) will still work as usual, but there might be problems with the
@item gnus-expert-user
@vindex gnus-expert-user
-If this variable is non-@code{nil}, you will never ever be asked any
+If this variable is non-@code{nil}, you will seldom be asked any
questions by Gnus. It will simply assume you know what you're doing, no
matter how strange.
* Picon Requirements:: Don't go further if you aren't using XEmacs.
* Easy Picons:: Displaying Picons---the easy way.
* Hard Picons:: The way you should do it. You'll learn something.
-* Picon Configuration:: Other variables you can trash/tweak/munge/play with.
+* Picon Useless Configuration:: Other variables you can trash/tweak/munge/play with.
@end menu
@code{GIF} formats.
@end quotation
-For instructions on obtaining and installing the picons databases, point
-your Web browser at
-@file{http://www.cs.indiana.edu/picons/ftp/index.html}.
+@vindex gnus-picons-piconsearch-url
+If you have a permanent connection to the Internet you can use Steve
+Kinzler's Picons Search engine by setting
+@code{gnus-picons-piconsearch-url} to the string
+@file{http://www.cs.indiana.edu/picons/search.html}.
@vindex gnus-picons-database
-Gnus expects picons to be installed into a location pointed to by
+Otherwise you need a local copy of his database. For instructions on
+obtaining and installing the picons databases, point your Web browser at
+@file{http://www.cs.indiana.edu/picons/ftp/index.html}. Gnus expects
+picons to be installed into a location pointed to by
@code{gnus-picons-database}.
19.13 or greater since all other versions of Emacs aren't yet able to
display images.
-Additionally, you must have @code{xpm} support compiled into XEmacs.
+Additionally, you must have @code{x} support compiled into XEmacs. To
+display color picons which are much nicer than the black & white one,
+you also need one of @code{xpm} or @code{gif} compiled into XEmacs.
@vindex gnus-picons-convert-x-face
-If you want to display faces from @code{X-Face} headers, you must have
+If you want to display faces from @code{X-Face} headers, you should have
+the @code{xface} support compiled into XEmacs. Otherwise you must have
the @code{netpbm} utilities installed, or munge the
@code{gnus-picons-convert-x-face} variable to use something else.
(add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face)
@end lisp
+and make sure @code{gnus-picons-database} points to the directory
+containing the Picons databases.
+
+Alternatively if you want to use the web piconsearch engine add this:
+
+@lisp
+(setq gnus-picons-piconsearch-url "http://www.cs.indiana.edu:800/piconsearch")
+@end lisp
+
@node Hard Picons
@subsubsection Hard Picons
articles. It knows how to interact with three sections of the picons
database. Namely, it can display the picons newsgroup pictures,
author's face picture(s), and the authors domain. To enable this
-feature, you need to first decide where to display them.
+feature, you need to select where to get the picons from, and where to
+display them.
@table @code
+@item gnus-picons-database
+@vindex gnus-picons-database
+The location of the picons database. Should point to a directory
+containing the @file{news}, @file{domains}, @file{users} (and so on)
+subdirectories. This is only useful if
+@code{gnus-picons-piconsearch-url} is @code{nil}. Defaults to
+@file{/usr/local/faces/}.
+
+@item gnus-picons-piconsearch-url
+@vindex gnus-picons-piconsearch-url
+The URL for the web picons search engine. The only currently known
+engine is @file{http://www.cs.indiana.edu:800/piconsearch}. To
+workaround network delays, icons will be fetched in the background. If
+this is @code{nil} 'the default), then picons are fetched from local
+database indicated by @code{gnus-picons-database}.
+
@item gnus-picons-display-where
@vindex gnus-picons-display-where
Where the picon images should be displayed. It is @code{picons} by
Note: If you set @code{gnus-use-picons} to @code{t}, it will set up your
window configuration for you to include the @code{picons} buffer.
-Now that you've made that decision, you need to add the following
-functions to the appropriate hooks so these pictures will get
-displayed at the right time.
+Now that you've made those decision, you need to add the following
+functions to the appropriate hooks so these pictures will get displayed
+at the right time.
@vindex gnus-article-display-hook
@vindex gnus-picons-display-where
@end lisp
-@node Picon Configuration
-@subsubsection Picon Configuration
+@node Picon Useless Configuration
+@subsubsection Picon Useless Configuration
@iftex
@iflatex
don't need to worry about.
@table @code
-@item gnus-picons-database
-@vindex gnus-picons-database
-The location of the picons database. Should point to a directory
-containing the @file{news}, @file{domains}, @file{users} (and so on)
-subdirectories. Defaults to @file{/usr/local/faces/}.
-@item gnus-picons-news-directory
-@vindex gnus-picons-news-directory
-Sub-directory of the faces database containing the icons for
-newsgroups.
+@item gnus-picons-news-directories
+@vindex gnus-picons-news-directories
+List of subdirectories to search in @code{gnus-picons-database} for
+newsgroups faces. @code{("news")} is the default.
@item gnus-picons-user-directories
@vindex gnus-picons-user-directories
@vindex gnus-picons-domain-directories
List of subdirectories to search in @code{gnus-picons-database} for
domain name faces. Defaults to @code{("domains")}. Some people may
-want to add @samp{unknown} to this list.
+want to add @samp{"unknown"} to this list.
@item gnus-picons-convert-x-face
@vindex gnus-picons-convert-x-face
-The command to use to convert the @code{X-Face} header to an X bitmap
+If you don't have @code{xface} support builtin XEmacs, this is the
+command to use to convert the @code{X-Face} header to an X bitmap
(@code{xbm}). Defaults to @code{(format "@{ echo '/* Width=48,
Height=48 */'; uncompface; @} | icontopbm | pbmtoxbm > %s"
gnus-picons-x-face-file-name)}
Names a temporary file to store the @code{X-Face} bitmap in. Defaults
to @code{(format "/tmp/picon-xface.%s.xbm" (user-login-name))}.
+@item gnus-picons-has-modeline-p
+@vindex gnus-picons-has-modeline-p
+If you have set @code{gnus-picons-display-where} to @code{picons}, your
+XEmacs frame will become really cluttered. To alleviate this a bit you
+can set @code{gnus-picons-has-modeline-p} to @code{nil}; this will
+remove the mode line from the Picons buffer. This is only useful if
+@code{gnus-picons-display-where} is @code{picons}.
+
+@item gnus-picons-refresh-before-display
+@vindex gnus-picons-refresh-before-display
+If non-nil, display the article buffer before computing the picons.
+Defaults to @code{nil}.
+
+@item gnus-picons-display-as-address
+@vindex gnus-picons-display-as-address
+If @code{t} display textual email addresses along with pictures.
+Defaults to @code{t}.
+
+@item gnus-picons-file-suffixes
+@vindex gnus-picons-file-suffixes
+Ordered list of suffixes on picon file names to try. Defaults to
+@code{("xpm" "gif" "xbm")} minus those not builtin your XEmacs.
+
+@item gnus-picons-display-article-move-p
+@vindex gnus-picons-display-article-move-p
+Whether to move point to first empty line when displaying picons. This
+has only an effect if `gnus-picons-display-where' has value `article'.
+
+@item gnus-picons-clear-cache-on-shutdown
+@vindex gnus-picons-clear-cache-on-shutdown
+Whether to clear the picons cache when exiting gnus. Gnus caches every
+picons it finds while it is running. This saves some time in the search
+process but eats some memory. If this variable is set to @code{nil},
+Gnus will never clear the cache itself; you will have to manually call
+@code{gnus-picons-clear-cache} to clear it. Otherwise the cache will be
+cleared every time you exit Gnus. Defaults to @code{t}.
+
@iftex
@iflatex
\margindex{}
@end iflatex
@end iftex
-@item gnus-picons-buffer
-@vindex gnus-picons-buffer
-The name of the buffer that @code{picons} points to. Defaults to
-@samp{*Icon Buffer*}.
-
@end table
@node Smileys
Move all prompting to the new `M-n' default style.
@item
- have nntp cache the authinfo passwords.
-
-@item
command to display all dormant articles.
@item
& age > 14 days)?
@item
+New limit command---limit to articles that have a certain string
+in the head or body.
+
+@item
Solve the halting problem.
@c TODO
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 0.25 Manual
+@settitle Message 0.26 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 0.25 Manual
+@title Message 0.26 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 0.25. Message is distributed with
+This manual corresponds to Message 0.26. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.