+Sat Feb 1 14:19:54 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.4.9 is released.
+
+Sat Feb 1 13:30:33 1997 Hrvoje Niksic <hniksic@srce.hr>
+
+ * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Insert
+ "-*- emacs-lisp -*-" at the first line.
+
+Sat Feb 1 13:23:19 1997 Mark Borges <mdb@cdc.noaa.gov>
+
+ * gnus-xmas.el (gnus-xmas-define): Do the right characterp thing.
+
+Sat Feb 1 12:28:33 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * smiley.el (smiley-mouse-face): New variable.
+ (smiley-buffer): Use it.
+
+ * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Use gnus-prin1.
+
+ * gnus-util.el (gnus-prin1): Bind print-level and print-length to
+ nil
+
+ * gnus-art.el (gnus-button-alist): Let mailto: be less greedy.
+ (gnus-button-alist): Ditto with news:.
+
+ * gnus-topic.el (gnus-topic-unmark-topic): Let groups be unmarked.
+
+ * gnus.el (gnus-read-group): Place point at bol.
+
+ * gnus-util.el ((fboundp 'point-at-bol)): Use the functions if
+ they exist.
+
+ * gnus-msg.el (gnus-summary-supersede-article): Mark article as
+ canceled.
+
+Wed Jan 29 22:28:44 1997 Steven L Baur <steve@altair.xemacs.org>
+
+ * gnus-xmas.el (gnus-xmas-define): Correct XEmacs version test to
+ handle v20.
+
+Sat Feb 1 12:19:14 1997 Katsumi Yamaoka <yamaoka@ga.sony.co.jp>
+
+ * nnml.el (nnml-generate-active-info): Don't bug out.
+
+Sat Feb 1 00:52:03 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-fcc-handler-function): Changed default.
+ (message-output): New function.
+ (message-do-fcc): Use it.
+
+ * gnus-util.el (gnus-convert-article-to-rmail,
+ gnus-output-to-rmail): Moved here.
+
+ * message.el (message-check-news-header-syntax): Allow trailing
+ periods.
+ (message-check-news-header-syntax): Don't allow trailing periods.
+
+Fri Jan 31 22:18:03 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-resend): Rename "From ".
+
+ * nntp.el (nntp-accept-process-output): Use nnheader-message.
+
+Fri Jan 31 11:51:18 1997 Katsumi Yamaoka <yamaoka@ga.sony.co.jp>
+
+ * nnml.el (nnml-generate-nov-databases-1): Sort the file alist.
+
+Thu Jan 30 13:13:39 1997 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * gnus.el: More cleanup of customization groups.
+
+Thu Jan 30 04:33:01 1997 Sudish Joseph <sudish@mindspring.com>
+
+ * gnus-xmas.el (gnus-xmas-define): Use `char-or-char-int-p'.
+
Thu Jan 30 04:15:28 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.4.8 is released.
(save-excursion
(save-restriction
(widen)
- (if (and (file-readable-p filename) (mail-file-babyl-p filename))
- (gnus-output-to-rmail filename)
- (let ((mail-use-rfc822 t))
- (rmail-output filename 1 t t))))))
+ (if (and (file-readable-p filename)
+ (mail-file-babyl-p filename))
+ (gnus-output-to-rmail filename t)
+ (gnus-output-to-mail filename t)))))
;; Remember the directory name to save articles.
(setq gnus-newsgroup-last-mail filename)))
;;; Article savers.
-(defun gnus-output-to-rmail (file-name)
- "Append the current article to an Rmail file named FILE-NAME."
- (require 'rmail)
- ;; Most of these codes are borrowed from rmailout.el.
- (setq file-name (expand-file-name file-name))
- (setq rmail-default-rmail-file file-name)
- (let ((artbuf (current-buffer))
- (tmpbuf (get-buffer-create " *Gnus-output*")))
- (save-excursion
- (or (get-file-buffer file-name)
- (file-exists-p file-name)
- (if (gnus-yes-or-no-p
- (concat "\"" file-name "\" does not exist, create it? "))
- (let ((file-buffer (create-file-buffer file-name)))
- (save-excursion
- (set-buffer file-buffer)
- (rmail-insert-rmail-file-header)
- (let ((require-final-newline nil))
- (gnus-write-buffer file-name)))
- (kill-buffer file-buffer))
- (error "Output file does not exist")))
- (set-buffer tmpbuf)
- (buffer-disable-undo (current-buffer))
- (erase-buffer)
- (insert-buffer-substring artbuf)
- (gnus-convert-article-to-rmail)
- ;; Decide whether to append to a file or to an Emacs buffer.
- (let ((outbuf (get-file-buffer file-name)))
- (if (not outbuf)
- (append-to-file (point-min) (point-max) file-name)
- ;; File has been visited, in buffer OUTBUF.
- (set-buffer outbuf)
- (let ((buffer-read-only nil)
- (msg (and (boundp 'rmail-current-message)
- (symbol-value 'rmail-current-message))))
- ;; If MSG is non-nil, buffer is in RMAIL mode.
- (when msg
- (widen)
- (narrow-to-region (point-max) (point-max)))
- (insert-buffer-substring tmpbuf)
- (when msg
- (goto-char (point-min))
- (widen)
- (search-backward "\^_")
- (narrow-to-region (point) (point-max))
- (goto-char (1+ (point-min)))
- (rmail-count-new-messages t)
- (rmail-show-message msg))))))
- (kill-buffer tmpbuf)))
-
(defun gnus-output-to-file (file-name)
"Append the current article to a file named FILE-NAME."
(let ((artbuf (current-buffer)))
(insert "\n")
(append-to-file (point-min) (point-max) file-name))))
-(defun gnus-convert-article-to-rmail ()
- "Convert article in current buffer to Rmail message format."
- (let ((buffer-read-only nil))
- ;; Convert article directly into Babyl format.
- ;; Suggested by Rob Austein <sra@lcs.mit.edu>
- (goto-char (point-min))
- (insert "\^L\n0, unseen,,\n*** EOOH ***\n")
- (while (search-forward "\n\^_" nil t) ;single char
- (replace-match "\n^_" t t)) ;2 chars: "^" and "_"
- (goto-char (point-max))
- (insert "\^_")))
-
(defun gnus-narrow-to-page (&optional arg)
"Narrow the article buffer to a page.
If given a numerical ARG, move forward ARG pages."
:type 'regexp)
(defcustom gnus-button-alist
- `(("\\(\\b<?\\(url: ?\\)?news:\\([^>\n\t ]*\\)>?\\)" 1 t
+ `(("\\(\\b<\\(url: ?\\)?news:\\([^>\n\t ]*\\)>\\)" 1 t
gnus-button-message-id 3)
- ("\\(\\b<?\\(url: ?\\)?news:\\(//\\)?\\([^>\n\t ]*\\)>?\\)" 1 t
+ ("\\bnews:\\([^\n\t ]+\\)" 0 t gnus-button-message-id 1)
+ ("\\(\\b<\\(url: ?\\)?news:\\(//\\)?\\([^>\n\t ]*\\)>\\)" 1 t
gnus-button-fetch-group 4)
+ ("\\bnews:\\(//\\)?\\([^>\n\t ]+\\)" 0 t gnus-button-fetch-group 2)
("\\bin\\( +article\\)? +\\(<\\([^\n @<>]+@[^\n @<>]+\\)>\\)" 2
t gnus-button-message-id 3)
- ("\\(<URL: *\\)?mailto: *\\([^> \n\t]+\\)>?" 0 t gnus-url-mailto 2)
+ ("\\(<URL: *\\)mailto: *\\([^> \n\t]+\\)>" 0 t gnus-url-mailto 1)
+ ("\\bmailto:\\([^ \n\t]+\\)" 0 t gnus-url-mailto 2)
;; This is how URLs _should_ be embedded in text...
("<URL: *\\([^>]*\\)>" 0 t gnus-button-embedded-url 1)
;; Raw URLs.
:group 'gnus-group-foreign
:type 'directory)
-;; Suggested by Andrew Eskilsson <pi92ae@lelle.pt.hk-r.se>.
-(defcustom gnus-no-groups-message "No news is horrible news"
+(defcustom gnus-no-groups-message "No news is no news"
"*Message displayed by Gnus when no groups are available."
:group 'gnus-start
:type 'string)
(unless (gnus-check-backend-function
'request-rename-group (gnus-group-group-name))
(error "This backend does not support renaming groups"))
- (gnus-read-group "Rename group to: " (gnus-group-group-name)))))
+ (gnus-read-group "Rename group to: "
+ (gnus-group-real-name (gnus-group-group-name))))))
(unless (gnus-check-backend-function 'request-rename-group group)
(error "This backend does not support renaming groups"))
(unless group
(error "No group to rename"))
- (when (string-match "^[ \t]*$" new-name)
- (error "Not a valid group name"))
- (when (equal group new-name)
+ (when (equal (gnus-group-real-name group) new-name)
(error "Can't rename to the same name"))
;; We find the proper prefixed name.
(push
`((lambda ()
(gnus-cache-possibly-remove-article ,article nil nil nil t)))
+ message-send-actions)
+ (push
+ `((lambda ()
+ (when (buffer-name (get-buffer ,gnus-summary-buffer))
+ (save-excursion
+ (set-buffer (get-buffer ,gnus-summary-buffer))
+ (gnus-summary-mark-as-read ,article gnus-canceled-mark)))))
message-send-actions))))
\f
(defun gnus-gnus-to-quick-newsrc-format ()
"Insert Gnus variables such as gnus-newsrc-alist in lisp format."
(let ((print-quoted t))
+ (insert ";; -*- emacs-lisp -*-\n")
(insert ";; Gnus startup file.\n")
(insert
";; Never delete this file - touch .newsrc instead to force Gnus\n")
(delq 'gnus-killed-list (copy-sequence gnus-variable-list))))
;; Peel off the "dummy" group.
(gnus-newsrc-alist (cdr gnus-newsrc-alist))
- ;; Make sure the printing isn't abbreviated.
- (print-length nil)
variable)
;; Insert the variables into the file.
(while variables
(when (and (boundp (setq variable (pop variables)))
(symbol-value variable))
(insert "(setq " (symbol-name variable) " '")
- (prin1 (symbol-value variable) (current-buffer))
+ (gnus-prin1 (symbol-value variable))
(insert ")\n"))))))
(defun gnus-strip-killed-list ()
"Remove the process mark from all groups in the topic."
(interactive (list (gnus-group-topic-name)))
(if (not topic)
- (call-interactively 'gnus-group-mark-group)
+ (call-interactively 'gnus-group-unmark-group)
(gnus-topic-mark-topic topic t)))
(defun gnus-topic-get-new-news-this-topic (&optional n)
(when (gnus-buffer-exists-p buf)
(kill-buffer buf))))
-(defsubst gnus-point-at-bol ()
- "Return point at the beginning of the line."
- (let ((p (point)))
- (beginning-of-line)
- (prog1
- (point)
- (goto-char p))))
-
-(defsubst gnus-point-at-eol ()
- "Return point at the end of the line."
- (let ((p (point)))
- (end-of-line)
- (prog1
- (point)
- (goto-char p))))
+(if (fboundp 'point-at-bol)
+ (fset 'gnus-point-at-bol 'point-at-bol)
+ (defsubst gnus-point-at-bol ()
+ "Return point at the beginning of the line."
+ (let ((p (point)))
+ (beginning-of-line)
+ (prog1
+ (point)
+ (goto-char p)))))
+
+(if (fboundp 'point-at-eol)
+ (fset 'gnus-point-at-eol 'point-at-eol)
+ (defsubst gnus-point-at-eol ()
+ "Return point at the end of the line."
+ (let ((p (point)))
+ (end-of-line)
+ (prog1
+ (point)
+ (goto-char p)))))
(defun gnus-delete-first (elt list)
"Delete by side effect the first occurrence of ELT as a member of LIST."
(defun gnus-prin1 (form)
"Use `prin1' on FORM in the current buffer.
Bind `print-quoted' to t while printing."
- (let ((print-quoted t))
+ (let ((print-quoted t)
+ print-level print-length)
(prin1 form (current-buffer))))
(defun gnus-prin1-to-string (form)
;(put 'gnus-atomic-setq 'edebug-form-spec '(body))
+;;; Functions for saving to babyl/mail files.
+
+(defun gnus-output-to-rmail (filename &optional ask)
+ "Append the current article to an Rmail file named FILENAME."
+ (require 'rmail)
+ ;; Most of these codes are borrowed from rmailout.el.
+ (setq filename (expand-file-name filename))
+ (setq rmail-default-rmail-file filename)
+ (let ((artbuf (current-buffer))
+ (tmpbuf (get-buffer-create " *Gnus-output*")))
+ (save-excursion
+ (or (get-file-buffer filename)
+ (file-exists-p filename)
+ (if (or (not ask)
+ (gnus-yes-or-no-p
+ (concat "\"" filename "\" does not exist, create it? ")))
+ (let ((file-buffer (create-file-buffer filename)))
+ (save-excursion
+ (set-buffer file-buffer)
+ (rmail-insert-rmail-file-header)
+ (let ((require-final-newline nil))
+ (gnus-write-buffer filename)))
+ (kill-buffer file-buffer))
+ (error "Output file does not exist")))
+ (set-buffer tmpbuf)
+ (erase-buffer)
+ (insert-buffer-substring artbuf)
+ (gnus-convert-article-to-rmail)
+ ;; Decide whether to append to a file or to an Emacs buffer.
+ (let ((outbuf (get-file-buffer filename)))
+ (if (not outbuf)
+ (append-to-file (point-min) (point-max) filename)
+ ;; File has been visited, in buffer OUTBUF.
+ (set-buffer outbuf)
+ (let ((buffer-read-only nil)
+ (msg (and (boundp 'rmail-current-message)
+ (symbol-value 'rmail-current-message))))
+ ;; If MSG is non-nil, buffer is in RMAIL mode.
+ (when msg
+ (widen)
+ (narrow-to-region (point-max) (point-max)))
+ (insert-buffer-substring tmpbuf)
+ (when msg
+ (goto-char (point-min))
+ (widen)
+ (search-backward "\^_")
+ (narrow-to-region (point) (point-max))
+ (goto-char (1+ (point-min)))
+ (rmail-count-new-messages t)
+ (rmail-show-message msg))))))
+ (kill-buffer tmpbuf)))
+
+(defun gnus-output-to-mail (filename &optional ask)
+ "Append the current article to a mail file named FILENAME."
+ (setq filename (expand-file-name filename))
+ (let ((artbuf (current-buffer))
+ (tmpbuf (get-buffer-create " *Gnus-output*")))
+ (save-excursion
+ ;; Create the file, if it doesn't exist.
+ (when (and (not (get-file-buffer filename))
+ (not (file-exists-p filename)))
+ (if (or (not ask)
+ (gnus-yes-or-no-p
+ (concat "\"" filename "\" does not exist, create it? ")))
+ (let ((file-buffer (create-file-buffer filename)))
+ (save-excursion
+ (set-buffer file-buffer)
+ (let ((require-final-newline nil))
+ (gnus-write-buffer filename)))
+ (kill-buffer file-buffer))
+ (error "Output file does not exist")))
+ (set-buffer tmpbuf)
+ (erase-buffer)
+ (insert-buffer-substring artbuf)
+ (goto-char (point-min))
+ (unless (looking-at "From ")
+ (insert "From nobody " (current-time-string) "\n"))
+ ;; Decide whether to append to a file or to an Emacs buffer.
+ (let ((outbuf (get-file-buffer filename)))
+ (if (not outbuf)
+ (append-to-file (point-min) (point-max) filename)
+ ;; File has been visited, in buffer OUTBUF.
+ (set-buffer outbuf)
+ (let ((buffer-read-only nil))
+ (goto-char (point-max))
+ (insert-buffer-substring tmpbuf)))))
+ (kill-buffer tmpbuf)))
+
+(defun gnus-convert-article-to-rmail ()
+ "Convert article in current buffer to Rmail message format."
+ (let ((buffer-read-only nil))
+ ;; Convert article directly into Babyl format.
+ (goto-char (point-min))
+ (insert "\^L\n0, unseen,,\n*** EOOH ***\n")
+ (while (search-forward "\n\^_" nil t) ;single char
+ (replace-match "\n^_" t t)) ;2 chars: "^" and "_"
+ (goto-char (point-max))
+ (insert "\^_")))
+
(provide 'gnus-util)
;;; gnus-util.el ends here
(unless (face-differs-from-default-p 'underline)
(funcall (intern "set-face-underline-p") 'underline t))
- (fset 'gnus-characterp 'characterp)
+ (cond
+ ((fboundp 'char-or-char-int-p)
+ ;; Handle both types of marks for XEmacs-20.x.
+ (fset 'gnus-characterp 'char-or-char-int-p))
+ ;; V19 of XEmacs, probably.
+ (t
+ (fset 'gnus-characterp 'characterp)))
+
(fset 'gnus-make-overlay 'make-extent)
(fset 'gnus-overlay-put 'set-extent-property)
(fset 'gnus-move-overlay 'gnus-xmas-move-overlay)
(fset 'gnus-put-text-property 'gnus-xmas-put-text-property)
(require 'text-props)
- (when (< emacs-minor-version 14)
- (fset 'gnus-set-text-properties 'gnus-xmas-set-text-properties))
+ (if (and (<= emacs-major-version 19)
+ (< emacs-minor-version 14))
+ (fset 'gnus-set-text-properties 'gnus-xmas-set-text-properties))
(when (fboundp 'turn-off-scroll-in-place)
(add-hook 'gnus-article-mode-hook 'turn-off-scroll-in-place))
:link '(custom-manual "(gnus)Various Summary Stuff")
:group 'gnus-summary)
-;; Belongs to to gnus-uu.el
+;; Belongs to gnus-uu.el
(defgroup gnus-extract-view nil
"Viewing extracted files."
:link '(custom-manual "(gnus)Viewing Files")
:group 'gnus-extract)
-;; Other
+;; Belongs to gnus-score.el
(defgroup gnus-score nil
"Score and kill file handling."
- :group 'gnus )
+ :group 'gnus)
-(defgroup gnus-exit nil
- "Exiting gnus."
- :link '(custom-manual "(gnus)Exiting Gnus")
+(defgroup gnus-score-kill nil
+ "Kill files."
+ :group 'gnus-score)
+
+(defgroup gnus-score-adapt nil
+ "Adaptive score files."
+ :group 'gnus-score)
+
+(defgroup gnus-score-files nil
+ "Score and kill file names."
+ :group 'gnus-score
+ :group 'gnus-files)
+
+(defgroup gnus-score-various nil
+ "Various scoring and killing options."
+ :group 'gnus-score)
+
+;; Other
+(defgroup gnus-visual nil
+ "Options controling the visual fluff."
+ :group 'gnus)
+
+(defgroup gnus-mail-expire nil
+ "Expiring articles in mail backends."
+ :group 'gnus-mail)
+
+(defgroup gnus-files nil
+ "Files used by Gnus."
+ :group 'gnus)
+
+(defgroup gnus-server nil
+ "Options related to newsservers and other servers used by Gnus."
+ :group 'gnus)
+
+(defgroup gnus-message '((message custom-group))
+ "Composing replies and followups in Gnus."
+ :group 'gnus)
+
+(defgroup gnus-meta nil
+ "Meta variables controling major portions of Gnus.
+In general, modifying these variables does not take affect until Gnus
+is restarted, and sometimes reloaded."
:group 'gnus)
(defgroup gnus-various nil
:link '(custom-manual "(gnus)Various Various")
:group 'gnus)
-(defconst gnus-version-number "5.4.8"
+(defgroup gnus-exit nil
+ "Exiting gnus."
+ :link '(custom-manual "(gnus)Exiting Gnus")
+ :group 'gnus)
+
+(defconst gnus-version-number "5.4.9"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
(require 'gnus-util)
(require 'nnheader)
-(defgroup gnus-meta nil
- "Meta variables controling major portions of Gnus.
-In general, modifying these variables does not take affect until Gnus
-is restarted, and sometimes reloaded."
- :group 'gnus)
-
(defcustom gnus-directory (or (getenv "SAVEDIR") "~/News/")
"Directory variable from which all other Gnus file variables are derived."
- :group 'gnus-meta
+ :group 'gnus-files
:type 'directory)
(defcustom gnus-default-directory nil
"*Default directory for all Gnus buffers."
- :group 'gnus-start
+ :group 'gnus-files
:type '(choice (const :tag "current" nil)
directory))
(defcustom gnus-nntpserver-file "/etc/nntpserver"
"A file with only the name of the nntp server in it."
- :group 'gnus-start
+ :group 'gnus-files
+ :group 'gnus-server
:type 'file)
;; This function is used to check both the environment variable
There is a lot more to know about select methods and virtual servers -
see the manual for details."
- :group 'gnus-start
+ :group 'gnus-server
:type 'gnus-select-method)
(defcustom gnus-message-archive-method
It's probably not a very effective to change this variable once you've
run Gnus once. After doing that, you must edit this server from the
server buffer."
- :group 'gnus-start
+ :group 'gnus-server
+ :group 'gnus-message
:type 'gnus-select-method)
-(defgroup gnus-message '((message custom-group))
- "Interface from gnus to message mode."
- :group 'gnus)
-
(defcustom gnus-message-archive-group nil
"*Name of the group in which to save the messages you've written.
This can either be a string, a list of strings; or an alist
"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-start
+ :group 'gnus-server
:type '(repeat string))
(defcustom gnus-nntp-server nil
"*The name of the host running the NNTP server.
This variable is semi-obsolete. Use the `gnus-select-method'
variable instead."
- :group 'gnus-start
+ :group 'gnus-server
:type '(choice (const :tag "disable" nil)
string))
you could set this variable:
\(setq gnus-secondary-select-methods '((nnml \"\")))"
-:group 'gnus-start
+:group 'gnus-server
:type '(repeat gnus-select-method))
(defvar gnus-backup-default-subscribed-newsgroups
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."
- :group 'gnus-start
+ :group 'gnus-message
:type '(choice (const :tag "default" nil)
string))
In any case, if the string (either in the variable, in the environment
variable, or returned by the function) is a file name, the contents of
this file will be used as the organization."
- :group 'gnus-start
+ :group 'gnus-message
:type '(choice (const :tag "default" nil)
string))
The value of this variable must be a valid select method as discussed
in the documentation of `gnus-select-method'."
- :group 'gnus-start
+ :group 'gnus-server
:type '(choice (const :tag "default" nil)
gnus-select-method))
If nil, ignore cross references. If t, mark articles as read in
subscribed newsgroups. If neither t nor nil, mark as read in all
newsgroups."
- :group 'gnus-start
+ :group 'gnus-server
:type '(choice (const :tag "off" nil)
(const :tag "subscribed" t)
(sexp :format "all"
(defcustom gnus-process-mark ?#
"*Process mark."
- :group 'gnus-start
+ :group 'gnus-group-visual
+ :group 'gnus-summary-marks
:type 'character)
(defcustom gnus-asynchronous nil
"*If non-nil, Gnus will supply backends with data needed for async article fetching."
- :group 'gnus-start
+ :group 'gnus-asynchronous
:type 'boolean)
(defcustom gnus-large-newsgroup 200
(defcustom gnus-kill-files-directory gnus-directory
"*Name of the directory where kill files will be stored (default \"~/News\")."
- :group 'gnus-score
+ :group 'gnus-score-files
+ :group 'gnus-score-kill
:type 'directory)
(defcustom gnus-save-score nil
"*If non-nil, save group scoring info."
- :group 'gnus-score
+ :group 'gnus-score-various
:group 'gnus-start
:type 'boolean)
former will perform adaption on individual words in the subject
header while `line' will perform adaption on several headers."
:group 'gnus-meta
+ :group 'gnus-score-adapt
:type '(set (const word) (const line)))
(defcustom gnus-use-cache 'passive
which is the default, quite fast, and too simplistic solution, and
`mail-extract-address-components', which works much better, but is
slower."
- :group 'gnus-start
+ :group 'gnus-summary-format
:type '(radio (function-item gnus-extract-address-components)
(function-item mail-extract-address-components)
(function :tag "Other")))
(defcustom gnus-shell-command-separator ";"
"String used to separate to shell commands."
- :group 'gnus-start
+ :group 'gnus-files
:type 'string)
(defcustom gnus-valid-select-methods
properties that this method has (like being respoolable).
If you implement a new select method, all you should have to change is
this variable. I think."
- :group 'gnus-start
+ :group 'gnus-server
:type '(repeat (group (string :tag "Name")
(radio-button-choice (const :format "%v " post)
(const :format "%v " mail)
`summary'. If the corresponding symbol is present, Gnus will keep
that mode line updated with information that may be pertinent.
If this variable is nil, screen refresh may be quicker."
- :group 'gnus-start
+ :group 'gnus-various
:type '(set (const group)
(const article)
(const summary)
"*Max length of mode-line non-string contents.
If this is nil, Gnus will take space as is needed, leaving the rest
of the modeline intact."
- :group 'gnus-start
+ :group 'gnus-various
:type '(choice (const nil)
integer))
"*Groups in which to automatically mark read articles as expirable.
If non-nil, this should be a regexp that should match all groups in
which to perform auto-expiry. This only makes sense for mail groups."
- :group 'gnus-mail
+ :group 'gnus-mail-expire
:type '(choice (const nil)
regexp))
expiring - which means that all read articles will be deleted after
\(say) one week. (This only goes for mail groups and the like, of
course.)"
- :group 'gnus-mail
+ :group 'gnus-mail-expire
:type '(choice (const nil)
regexp))
(cond ((string-match \"control\" gnus-newsgroup-name)
(gnus-kill \"Subject\" \"rmgroup\")
(gnus-expunge \"X\"))))))"
- :group 'gnus-score
+ :group 'gnus-score-kill
:options '(gnus-apply-kill-file)
:type 'hook)
(defcustom gnus-group-change-level-function nil
"Function run when a group level is changed.
It is called with three parameters -- GROUP, LEVEL and OLDLEVEL."
- :group 'gnus-start
+ :group 'gnus-group-level
:type 'function)
;;; Face thingies.
-(defgroup gnus-visual nil
- "Options controling the visual fluff."
- :group 'gnus)
-
(defcustom gnus-visual
'(summary-highlight group-highlight article-highlight
mouse-face
(defcustom gnus-kill-file-name "KILL"
"Suffix of the kill files."
- :group 'gnus-score
+ :group 'gnus-score-kill
+ :group 'gnus-score-files
:type 'string)
(defun gnus-newsgroup-kill-file (newsgroup)
(when (string-match
"[: `'\"/]\\|^$"
(setq group (read-string (concat prefix prompt)
- (or default "")
+ (cons (or default "") 0)
'gnus-group-history)))
(setq prefix (format "Illegal group name: \"%s\". " group)
group nil)))
:type 'function)
;;;###autoload
-(defcustom message-fcc-handler-function 'rmail-output
+(defcustom message-fcc-handler-function 'message-output
"*A function called to save outgoing articles.
This function will be called with the name of the file to store the
article in. The default function is `rmail-output' which saves in Unix
(eval-and-compile
(autoload 'message-setup-toolbar "messagexmas")
- (autoload 'mh-send-letter "mh-comp"))
+ (autoload 'mh-send-letter "mh-comp")
+ (autoload 'gnus-output-to-mail "gnus-util")
+ (autoload 'gnus-output-to-rmail "gnus-util"))
\f
(setq file (expand-file-name file))
(unless (file-exists-p (file-name-directory file))
(make-directory (file-name-directory file) t))
- (if (and message-fcc-handler-function
- (not (eq message-fcc-handler-function 'rmail-output)))
- (funcall message-fcc-handler-function file)
- (if (and (file-readable-p file) (mail-file-babyl-p file))
- (rmail-output file 1 nil t)
- (let ((mail-use-rfc822 t))
- (rmail-output file 1 t t))))))
+ (funcall message-fcc-handler-function file)))
+
(kill-buffer (current-buffer)))))
+(defun message-output (filename)
+ "Append this article to Unix/babyl mail file.."
+ (if (and (file-readable-p filename)
+ (mail-file-babyl-p filename))
+ (gnus-output-to-rmail filename t)
+ (gnus-output-to-mail filename t)))
+
(defun message-cleanup-headers ()
"Do various automatic cleanups of the headers."
;; Remove empty lines in the header.
(while (re-search-backward "^\\(Also-\\)?Resent-" beg t)
(beginning-of-line)
(insert "Also-"))
+ ;; Quote any "From " lines at the beginning.
+ (goto-char beg)
+ (when (looking-at "From ")
+ (replace-match "X-From-Line: "))
;; Send it.
(message-send-mail)
(kill-buffer (current-buffer)))
(file-directory-p dir))
(nnml-generate-nov-databases-1 dir seen))))
;; Do this directory.
- (let ((files (nreverse (nnheader-article-to-file-alist dir))))
+ (let ((files (sort (nnheader-article-to-file-alist dir)
+ (lambda (a b) (< (car a) (car b))))))
(when files
(funcall nnml-generate-active-function dir)
;; Generate the nov file.
(setq nnml-group-alist
(delq (assoc group nnml-group-alist) nnml-group-alist))
(push (list group
- (cons (cdaar files)
+ (cons (caar files)
(let ((f files))
(while (cdr f) (setq f (cdr f)))
- (cdaar f))))
+ (caar f))))
nnml-group-alist)))
(defun nnml-generate-nov-file (dir files)
(and (numberp nntp-large-newsgroup)
(> number nntp-large-newsgroup)
(zerop (% received 20))
- (message "NNTP: Receiving headers... %d%%"
- (/ (* received 100) number)))
+ (nnheader-message 6 "NNTP: Receiving headers... %d%%"
+ (/ (* received 100) number)))
(nntp-accept-response))))
;; Wait for text of last command.
(goto-char (point-max))
(nntp-accept-response)))
(and (numberp nntp-large-newsgroup)
(> number nntp-large-newsgroup)
- (message "NNTP: Receiving headers...done"))
+ (nnheader-message 6 "NNTP: Receiving headers...done"))
;; Now all of replies are received. Fold continuation lines.
(nnheader-fold-continuation-lines)
(and (numberp nntp-large-newsgroup)
(> number nntp-large-newsgroup)
(zerop (% received 20))
- (message "NNTP: Receiving articles... %d%%"
- (/ (* received 100) number)))
+ (nnheader-message 6 "NNTP: Receiving articles... %d%%"
+ (/ (* received 100) number)))
(nntp-accept-response))))
(and (numberp nntp-large-newsgroup)
(> number nntp-large-newsgroup)
- (message "NNTP: Receiving headers...done"))
+ (nnheader-message 6 "NNTP: Receiving headers...done"))
;; Now we have all the responses. We go through the results,
;; washes it and copies it over to the server buffer.
(let ((len (/ (point-max) 1024)))
(unless (< len 10)
(setq nntp-have-messaged t)
- (message "nntp read: %dk" len)))
+ (nnheader-message 7 "nntp read: %dk" len)))
(accept-process-output process 1)))
(defun nntp-accept-response ()
:type 'string
:group 'smiley)
+(defcustom smiley-mouse-face 'highlight
+ "Face used for mouse highlighting in the smiley buffer.
+
+Smiley buttons will be displayed in this face when the cursor is
+above them."
+ :type 'face
+ :group 'smiley)
+
+
(defvar smiley-glyph-cache nil)
(defvar smiley-running-xemacs (string-match "XEmacs" emacs-version))
(set-extent-property ext 'start-open t)
(set-extent-property ext 'invisible t)
(set-extent-property ext 'keymap smiley-map)
- (set-extent-property ext 'mouse-face gnus-article-mouse-face)
+ (set-extent-property ext 'mouse-face 'smiley-mouse-face)
(set-extent-property ext 'intangible t)
;; set annotation params
- (set-extent-property ant 'mouse-face gnus-article-mouse-face)
+ (set-extent-property ant 'mouse-face 'smiley-mouse-face)
(set-extent-property ant 'keymap smiley-map)
;; remember each other
(set-extent-property ant 'smiley-extent ext)