From e85b83e8b076986fb7b0b0d805fbf3daec45e941 Mon Sep 17 00:00:00 2001 From: morioka Date: Thu, 27 Nov 1997 08:35:55 +0000 Subject: [PATCH] Quassia Gnus v0.15. --- lisp/ChangeLog | 63 +++++++++++++++++++++++ lisp/gnus-agent.el | 3 -- lisp/gnus-art.el | 5 -- lisp/gnus-audio.el | 8 +-- lisp/gnus-cache.el | 2 - lisp/gnus-draft.el | 2 - lisp/gnus-ems.el | 3 +- lisp/gnus-gl.el | 1 - lisp/gnus-msg.el | 6 --- lisp/gnus-score.el | 5 -- lisp/gnus-soup.el | 1 - lisp/gnus-spec.el | 7 +-- lisp/gnus-start.el | 6 ++- lisp/gnus-sum.el | 140 ++++++++++------------------------------------------ lisp/gnus-util.el | 5 +- lisp/gnus-uu.el | 7 --- lisp/gnus-xmas.el | 40 +++++++-------- lisp/gnus.el | 2 +- lisp/message.el | 14 ++++-- lisp/nnbabyl.el | 4 +- lisp/nndraft.el | 8 +-- lisp/nnml.el | 22 ++++++--- lisp/nnoo.el | 27 +++++++--- lisp/nntp.el | 6 ++- texi/ChangeLog | 4 ++ texi/gnus.texi | 48 ++++++++++++------ texi/message.texi | 8 +-- 27 files changed, 222 insertions(+), 225 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ea2bf8f..7fb7fc2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -2,6 +2,69 @@ Sat Sep 13 21:21:38 1997 Lars Magne Ingebrigtsen * gnus.el: Quassia Gnus v0.1 is released. +Mon Nov 24 18:46:37 1997 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.15 is released. + +Mon Nov 24 18:07:21 1997 Lars Magne Ingebrigtsen + + * gnus-ems.el: Also check major version names. + +1997-10-05 SL Baur + + * message.el (require 'rmail): Put guard around. + * nnbabyl.el (require 'rmail): Ditto. + +Mon Nov 24 17:36:00 1997 Lars Magne Ingebrigtsen + + * message.el (message-reply): Respect Mail-Copies-To even when + `to-address'. + +Mon Nov 24 17:32:47 1997 Thor Kristoffersen + + * nntp.el (nntp-request-close): Sleep one second. + +Mon Nov 24 16:18:19 1997 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-read-group-1): Update marks when not + entering group. + + * gnus-start.el (gnus-setup-news): Get correct value of archive + server. + +Wed Oct 8 20:29:35 1997 Robert Bihlmeyer + + * message.el (message-make-organization): Don't let the + environment variable override a user-set organization. + +Mon Nov 24 14:09:00 1997 Lars Magne Ingebrigtsen + + * nnml.el (nnml-open-nov): Don't use find-file. + + * gnus-sum.el (gnus-last-newsgroup-variables-set): New variable. + (gnus-set-global-variables): Don't do to much; gets run off of + pre-command-hook. + Got rid of gnus-set-global-variables throughout. + (gnus-summary-exit): Update adaptive scoring here. + (gnus-summary-isearch-article): Widen. + + * nnml.el (nnml-parse-head): Work in empty buffers. + +1997-10-14 Hrvoje Niksic + + * gnus-xmas.el (gnus-xmas-group-startup-message): Check for image + formats correctly. + (gnus-xmas-modeline-glyph): Ditto. + +Mon Nov 24 13:58:12 1997 Hrvoje Niksic + + * gnus-spec.el (gnus-compile): Work under XEmacs. + +Mon Nov 24 07:15:45 1997 Lars Magne Ingebrigtsen + + * nnoo.el (nnoo-change-server): Push the right parent packend onto + the alist. + Sun Nov 23 16:21:41 1997 Lars Magne Ingebrigtsen * gnus.el: Quassia Gnus v0.14 is released. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 5673020..7a3ad16 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -378,7 +378,6 @@ If N is negative, mark backward instead. If UNMARK is non-nil, remove the mark instead. The difference between N and the actual number of articles marked is returned." (interactive "p") - (gnus-set-global-variables) (let ((backward (< n 0)) (n (abs n))) (while (and @@ -399,7 +398,6 @@ articles marked is returned." If N is negative, unmark backward instead. The difference between N and the actual number of articles unmarked is returned." (interactive "p") - (gnus-set-global-variables) (gnus-agent-mark-article n t)) (defun gnus-agent-toggle-mark (n) @@ -407,7 +405,6 @@ the actual number of articles unmarked is returned." If N is negative, toggle backward instead. The difference between N and the actual number of articles toggled is returned." (interactive "p") - (gnus-set-global-variables) (gnus-agent-mark-article n 'toggle)) (defun gnus-summary-set-agent-mark (article &optional unmark) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index feb804a..992dd3f 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -1579,7 +1579,6 @@ This format is defined by the `gnus-article-time-format' variable." Optional argument FILENAME specifies file name. Directory to save to is default to `gnus-article-save-directory'." (interactive) - (gnus-set-global-variables) (setq filename (gnus-read-save-file-name "Save %s in rmail file:" filename gnus-rmail-save-name gnus-newsgroup-name @@ -1595,7 +1594,6 @@ Directory to save to is default to `gnus-article-save-directory'." Optional argument FILENAME specifies file name. Directory to save to is default to `gnus-article-save-directory'." (interactive) - (gnus-set-global-variables) (setq filename (gnus-read-save-file-name "Save %s in Unix mail file:" filename gnus-mail-save-name gnus-newsgroup-name @@ -1614,7 +1612,6 @@ Directory to save to is default to `gnus-article-save-directory'." Optional argument FILENAME specifies file name. Directory to save to is default to `gnus-article-save-directory'." (interactive) - (gnus-set-global-variables) (setq filename (gnus-read-save-file-name "Save %s in file:" filename gnus-file-save-name gnus-newsgroup-name @@ -1640,7 +1637,6 @@ The directory to save in defaults to `gnus-article-save-directory'." Optional argument FILENAME specifies file name. The directory to save in defaults to `gnus-article-save-directory'." (interactive) - (gnus-set-global-variables) (setq filename (gnus-read-save-file-name "Save %s body in file:" filename gnus-file-save-name gnus-newsgroup-name @@ -1657,7 +1653,6 @@ The directory to save in defaults to `gnus-article-save-directory'." (defun gnus-summary-save-in-pipe (&optional command) "Pipe this article to subprocess." (interactive) - (gnus-set-global-variables) (setq command (cond ((eq command 'default) gnus-last-shell-command) diff --git a/lisp/gnus-audio.el b/lisp/gnus-audio.el index e72804a..db02fd5 100644 --- a/lisp/gnus-audio.el +++ b/lisp/gnus-audio.el @@ -42,12 +42,12 @@ "The directory containing the Sound Files.") (defvar gnus-audio-au-player "/usr/bin/showaudio" - "Executable program for playing sun AU format sound files") -(defvar gnus-audio-wav-player "/usr/local/bin/play" - "Executable program for playing WAV files") + "Executable program for playing sun AU format sound files.") +(defvar gnus-audio-wav-player "/usr/local/bin/play" + "Executable program for playing WAV files.") -;;; The following isn't implemented yet. Wait for Red Gnus. +;;; The following isn't implemented yet. Wait for Millennium Gnus. ;(defvar gnus-audio-effects-enabled t ; "When t, Gnus will use sound effects.") ;(defvar gnus-audio-enable-hooks nil diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 8744414..6a8c65e 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -316,7 +316,6 @@ variable to \"^nnml\"." If not given a prefix, use the process marked articles instead. Returns the list of articles entered." (interactive "P") - (gnus-set-global-variables) (let ((articles (gnus-summary-work-articles n)) article out) (while (setq article (pop articles)) @@ -338,7 +337,6 @@ Returns the list of articles entered." If not given a prefix, use the process marked articles instead. Returns the list of articles removed." (interactive "P") - (gnus-set-global-variables) (gnus-cache-change-buffer gnus-newsgroup-name) (let ((articles (gnus-summary-work-articles n)) article out) diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index 31ad3f5..8492475 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -87,7 +87,6 @@ (defun gnus-draft-edit-message () "Enter a mail/post buffer to edit and send the draft." (interactive) - (gnus-set-global-variables) (let ((article (gnus-summary-article-number))) (gnus-draft-setup article gnus-newsgroup-name) (push @@ -102,7 +101,6 @@ (defun gnus-draft-send-message (&optional n) "Send the current draft." (interactive "P") - (gnus-set-global-variables) (let ((articles (gnus-summary-work-articles n)) article) (while (setq article (pop articles)) diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index 3112671..510e8e4 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -93,7 +93,8 @@ (gnus-xmas-define)) ((or (not (boundp 'emacs-minor-version)) - (< emacs-minor-version 30)) + (and (< emacs-major-version 20) + (< emacs-minor-version 30))) ;; Remove the `intangible' prop. (let ((props (and (boundp 'gnus-hidden-properties) gnus-hidden-properties))) diff --git a/lisp/gnus-gl.el b/lisp/gnus-gl.el index 786cda4..09cc839 100644 --- a/lisp/gnus-gl.el +++ b/lisp/gnus-gl.el @@ -688,7 +688,6 @@ recommend using both scores and grouplens predictions together." article) (while (setq article (pop articles)) (gnus-summary-goto-subject article) - (gnus-set-global-variables) (bbb-summary-rate-article score (mail-header-id (gnus-summary-article-header article))))) diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 3e9593c..e7534f3 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -231,7 +231,6 @@ If ARG is 1, prompt for a group name." (defun gnus-summary-post-news () "Start composing a news message." (interactive) - (gnus-set-global-variables) (gnus-post-news 'post gnus-newsgroup-name)) (defun gnus-summary-followup (yank &optional force-news) @@ -240,7 +239,6 @@ If prefix argument YANK is non-nil, original article is yanked automatically." (interactive (list (and current-prefix-arg (gnus-summary-work-articles 1)))) - (gnus-set-global-variables) (when yank (gnus-summary-goto-subject (car yank))) (save-window-excursion @@ -293,7 +291,6 @@ Uses the process-prefix convention. If given the symbolic prefix `a', cancel using the standard posting method; if not post using the current select method." (interactive (gnus-interactive "P\ny")) - (gnus-set-global-variables) (let ((articles (gnus-summary-work-articles n)) (message-post-method `(lambda (arg) @@ -313,7 +310,6 @@ post using the current select method." This is done simply by taking the old article and adding a Supersedes header line with the old Message-ID." (interactive) - (gnus-set-global-variables) (let ((article (gnus-summary-article-number))) (gnus-setup-message 'reply-yank (gnus-summary-select-article t) @@ -593,7 +589,6 @@ automatically." (list (and current-prefix-arg (gnus-summary-work-articles 1)))) ;; Stripping headers should be specified with mail-yank-ignored-headers. - (gnus-set-global-variables) (when yank (gnus-summary-goto-subject (car yank))) (let ((gnus-article-reply t)) @@ -630,7 +625,6 @@ The original article will be yanked." "Forward the current message to another user. If FULL-HEADERS (the prefix), include full headers when forwarding." (interactive "P") - (gnus-set-global-variables) (gnus-setup-message 'forward (gnus-summary-select-article) (set-buffer gnus-original-article-buffer) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 02511f1..be60027 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -472,7 +472,6 @@ The user will be prompted for header to score on, match type, permanence, and the string to be used. The numerical prefix will be used as score." (interactive (gnus-interactive "P\ny")) - (gnus-set-global-variables) (let* ((nscore (gnus-score-default score)) (prefix (if (< nscore 0) ?L ?I)) (increase (> nscore 0)) @@ -972,14 +971,12 @@ SCORE is the score to add." (defun gnus-summary-raise-score (n) "Raise the score of the current article by N." (interactive "p") - (gnus-set-global-variables) (gnus-summary-set-score (+ (gnus-summary-article-score) (or n gnus-score-interactive-default-score )))) (defun gnus-summary-set-score (n) "Set the score of the current article to N." (interactive "p") - (gnus-set-global-variables) (save-excursion (gnus-summary-show-thread) (let ((buffer-read-only nil)) @@ -998,7 +995,6 @@ SCORE is the score to add." (defun gnus-summary-current-score () "Return the score of the current article." (interactive) - (gnus-set-global-variables) (gnus-message 1 "%s" (gnus-summary-article-score))) (defun gnus-score-change-score-file (file) @@ -1012,7 +1008,6 @@ SCORE is the score to add." (defun gnus-score-edit-current-scores (file) "Edit the current score alist." (interactive (list gnus-current-score-file)) - (gnus-set-global-variables) (let ((winconf (current-window-configuration))) (when (buffer-name gnus-summary-buffer) (gnus-score-save)) diff --git a/lisp/gnus-soup.el b/lisp/gnus-soup.el index 2143f9d..b2376b0 100644 --- a/lisp/gnus-soup.el +++ b/lisp/gnus-soup.el @@ -132,7 +132,6 @@ If N is a negative number, add the N previous articles. If N is nil and any articles have been marked with the process mark, move those articles instead." (interactive "P") - (gnus-set-global-variables) (let* ((articles (gnus-summary-work-articles n)) (tmp-buf (get-buffer-create "*soup work*")) (area (gnus-soup-area gnus-newsgroup-name)) diff --git a/lisp/gnus-spec.el b/lisp/gnus-spec.el index 33333b4..a39ba1d 100644 --- a/lisp/gnus-spec.el +++ b/lisp/gnus-spec.el @@ -502,8 +502,6 @@ If PROPS, insert the result." (defun gnus-compile () "Byte-compile the user-defined format specs." (interactive) - (when gnus-xemacs - (error "Can't compile specs under XEmacs")) (let ((entries gnus-format-specs) (byte-compile-warnings '(unresolved callargs redefine)) entry gnus-tmp-func) @@ -515,7 +513,10 @@ If PROPS, insert the result." (if (eq (car entry) 'version) (setq gnus-format-specs (delq entry gnus-format-specs)) (when (and (listp (caddr entry)) - (not (eq 'byte-code (caaddr entry)))) + (not (eq 'byte-code (caaddr entry))) + ;; Under XEmacs, it's (funcall #) + (not (and (eq 'funcall (caaddr entry)) + (compiled-function-p (car (cdaddr entry)))))) (fset 'gnus-tmp-func `(lambda () ,(caddr entry))) (byte-compile 'gnus-tmp-func) (setcar (cddr entry) (gnus-byte-code 'gnus-tmp-func))))) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 62c4245..9996ef4 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -850,8 +850,10 @@ If LEVEL is non-nil, the news will be set up at level LEVEL." ;; Read the newsrc file and create `gnus-newsrc-hashtb'. (gnus-read-newsrc-file rawfile)) - (when (and (not (assoc "archive" gnus-server-alist)) - (gnus-archive-server-wanted-p)) + ;; Make sure the archive server is available to all and sundry. + (setq gnus-server-alist (delq (assoc "archive" gnus-server-alist) + gnus-server-alist)) + (when (gnus-archive-server-wanted-p) (push (cons "archive" gnus-message-archive-method) gnus-server-alist)) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 152225f..a101f8a 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1943,6 +1943,8 @@ The following commands are available: (make-local-variable 'gnus-summary-mark-positions) (make-local-hook 'post-command-hook) (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-update-format-specifications nil 'summary 'summary-mode 'summary-dummy) (gnus-update-summary-mark-positions)) @@ -2340,17 +2342,17 @@ This is all marks except unread, ticked, dormant, and expirable." (score-file gnus-current-score-file)) (save-excursion (set-buffer gnus-group-buffer) - (setq gnus-newsgroup-name name) - (setq gnus-newsgroup-marked marked) - (setq gnus-newsgroup-unreads unread) - (setq gnus-current-headers headers) - (setq gnus-newsgroup-data data) - (setq gnus-article-current gac) - (setq gnus-summary-buffer summary) - (setq gnus-article-buffer article-buffer) - (setq gnus-original-article-buffer original) - (setq gnus-reffed-article-number reffed) - (setq gnus-current-score-file score-file) + (setq gnus-newsgroup-name name + gnus-newsgroup-marked marked + gnus-newsgroup-unreads unread + gnus-current-headers headers + gnus-newsgroup-data data + gnus-article-current gac + gnus-summary-buffer summary + gnus-article-buffer article-buffer + gnus-original-article-buffer original + gnus-reffed-article-number reffed + gnus-current-score-file score-file) ;; The article buffer also has local variables. (when (gnus-buffer-live-p gnus-article-buffer) (set-buffer gnus-article-buffer) @@ -2606,6 +2608,9 @@ If NO-DISPLAY, don't generate a summary buffer." (kill-buffer (current-buffer)) (if (not quit-config) (progn + ;; Update the info -- marks might need to be removed, + ;; for instance. + (gnus-summary-update-info) (set-buffer gnus-group-buffer) (gnus-group-jump-to-group group) (gnus-group-next-unread-group 1)) @@ -2771,7 +2776,6 @@ If NO-DISPLAY, don't generate a summary buffer." (defun gnus-summary-simplify-subject-query () "Query where the respool algorithm would put this article." (interactive) - (gnus-set-global-variables) (gnus-summary-select-article) (message (gnus-general-simplify-subject (gnus-summary-article-subject)))) @@ -3973,7 +3977,7 @@ If READ-ALL is non-nil, all articles in the group are selected." (set var (delq article (symbol-value var)))))))))) (defun gnus-update-missing-marks (missing) - "Go through the list of MISSING articles and remove them mark lists." + "Go through the list of MISSING articles and remove them from the mark lists." (when missing (let ((types gnus-article-mark-lists) var m) @@ -4915,7 +4919,6 @@ displayed, no centering will be performed." (defun gnus-summary-universal-argument (arg) "Perform any operation on all articles that are process/prefixed." (interactive "P") - (gnus-set-global-variables) (let ((articles (gnus-summary-work-articles arg)) func article) (if (eq @@ -4949,7 +4952,6 @@ With arg, turn line truncation on iff arg is positive." "Exit and then reselect the current newsgroup. The prefix argument ALL means to select all articles." (interactive "P") - (gnus-set-global-variables) (when (gnus-ephemeral-group-p gnus-newsgroup-name) (error "Ephemeral groups can't be reselected")) (let ((current-subject (gnus-summary-article-number)) @@ -5001,11 +5003,6 @@ The prefix argument ALL means to select all articles." ;; Do the cross-ref thing. (when gnus-use-cross-reference (gnus-mark-xrefs-as-read group headers gnus-newsgroup-unreads)) - ;; Do adaptive scoring, and possibly save score files. - (when gnus-newsgroup-adaptive - (gnus-score-adaptive)) - (when gnus-use-scoring - (gnus-score-save)) ;; Do not switch windows but change the buffer to work. (set-buffer gnus-group-buffer) (unless (gnus-ephemeral-group-p gnus-newsgroup-name) @@ -5025,7 +5022,6 @@ If FORCE (the prefix), also save the .newsrc file(s)." "Exit reading current newsgroup, and then return to group selection mode. gnus-exit-group-hook is called with no arguments if that value is non-nil." (interactive) - (gnus-set-global-variables) (gnus-kill-save-kill-buffer) (let* ((group gnus-newsgroup-name) (quit-config (gnus-group-quit-config gnus-newsgroup-name)) @@ -5048,7 +5044,12 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil." ;; Make all changes in this group permanent. (unless quit-config (run-hooks 'gnus-exit-group-hook) - (gnus-summary-update-info)) + (gnus-summary-update-info) + ;; Do adaptive scoring, and possibly save score files. + (when gnus-newsgroup-adaptive + (gnus-score-adaptive)) + (when gnus-use-scoring + (gnus-score-save))) (gnus-close-group group) ;; Make sure where we were, and go to next newsgroup. (set-buffer gnus-group-buffer) @@ -5100,7 +5101,6 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil." (defun gnus-summary-exit-no-update (&optional no-questions) "Quit reading current newsgroup without updating read article info." (interactive) - (gnus-set-global-variables) (let* ((group gnus-newsgroup-name) (quit-config (gnus-group-quit-config group))) (when (or no-questions @@ -5286,7 +5286,6 @@ If prefix argument NO-ARTICLE is non-nil, no article is selected initially. If NEXT-GROUP, go to this group. If BACKWARD, go to previous group instead." (interactive "P") - (gnus-set-global-variables) ;; Stop pre-fetching. (gnus-async-halt-prefetch) (let ((current-group gnus-newsgroup-name) @@ -5430,7 +5429,6 @@ If FORCE, also allow jumping to articles not currently shown." "Make the summary buffer take up the entire Emacs frame. Given a prefix, will force an `article' buffer configuration." (interactive "P") - (gnus-set-global-variables) (if arg (gnus-configure-windows 'article 'force) (gnus-configure-windows 'summary 'force))) @@ -5507,7 +5505,6 @@ If UNREAD, only unread articles are selected. If SUBJECT, only articles with SUBJECT are selected. If BACKWARD, the previous article is selected instead of the next." (interactive "P") - (gnus-set-global-variables) (cond ;; Is there such an article? ((and (gnus-summary-search-forward unread subject backward) @@ -5681,7 +5678,6 @@ Argument LINES specifies lines to be scrolled down. If MOVE, move to the previous unread article if point is at the beginning of the buffer." (interactive "P") - (gnus-set-global-variables) (let ((article (gnus-summary-article-number)) (article-window (get-buffer-window gnus-article-buffer t)) endp) @@ -5717,7 +5713,6 @@ If at the beginning of the article, go to the next article." "Scroll up (or down) one line current article. Argument LINES specifies lines to be scrolled up (or down if negative)." (interactive "p") - (gnus-set-global-variables) (gnus-configure-windows 'article) (gnus-summary-show-thread) (when (eq (gnus-summary-select-article nil nil 'pseudo) 'old) @@ -5733,32 +5728,27 @@ Argument LINES specifies lines to be scrolled up (or down if negative)." (defun gnus-summary-next-same-subject () "Select next article which has the same subject as current one." (interactive) - (gnus-set-global-variables) (gnus-summary-next-article nil (gnus-summary-article-subject))) (defun gnus-summary-prev-same-subject () "Select previous article which has the same subject as current one." (interactive) - (gnus-set-global-variables) (gnus-summary-prev-article nil (gnus-summary-article-subject))) (defun gnus-summary-next-unread-same-subject () "Select next unread article which has the same subject as current one." (interactive) - (gnus-set-global-variables) (gnus-summary-next-article t (gnus-summary-article-subject))) (defun gnus-summary-prev-unread-same-subject () "Select previous unread article which has the same subject as current one." (interactive) - (gnus-set-global-variables) (gnus-summary-prev-article t (gnus-summary-article-subject))) (defun gnus-summary-first-unread-article () "Select the first unread article. Return nil if there are no unread articles." (interactive) - (gnus-set-global-variables) (prog1 (when (gnus-summary-first-subject t) (gnus-summary-show-thread) @@ -5770,7 +5760,6 @@ Return nil if there are no unread articles." "Select the first article. Return nil if there are no articles." (interactive) - (gnus-set-global-variables) (prog1 (when (gnus-summary-first-subject) (gnus-summary-show-thread) @@ -5781,7 +5770,6 @@ Return nil if there are no articles." (defun gnus-summary-best-unread-article () "Select the unread article with the highest score." (interactive) - (gnus-set-global-variables) (let ((best -1000000) (data gnus-newsgroup-data) article score) @@ -5853,7 +5841,6 @@ NUMBER articles will be popped off." "Limit the summary buffer to the next N articles. If not given a prefix, use the process marked articles instead." (interactive "P") - (gnus-set-global-variables) (prog1 (let ((articles (gnus-summary-work-articles n))) (setq gnus-newsgroup-processable nil) @@ -5864,7 +5851,6 @@ If not given a prefix, use the process marked articles instead." "Restore the previous limit. If given a prefix, remove all limits." (interactive "P") - (gnus-set-global-variables) (when total (setq gnus-newsgroup-limits (list (mapcar (lambda (h) (mail-header-number h)) @@ -5953,7 +5939,6 @@ not marked with MARKS. MARKS can either be a string of marks or a list of marks. Returns how many articles were removed." (interactive "sMarks: \nP") - (gnus-set-global-variables) (prog1 (let ((data gnus-newsgroup-data) (marks (if (listp marks) marks @@ -5970,7 +5955,6 @@ Returns how many articles were removed." (defun gnus-summary-limit-to-score (&optional score) "Limit to articles with score at or above SCORE." (interactive "P") - (gnus-set-global-variables) (setq score (if score (prefix-numeric-value score) (or gnus-summary-default-score 0))) @@ -5988,7 +5972,6 @@ Returns how many articles were removed." (defun gnus-summary-limit-include-thread (id) "Display all the hidden articles that in the current thread." (interactive (list (mail-header-id (gnus-summary-article-header)))) - (gnus-set-global-variables) (let ((articles (gnus-articles-in-thread (gnus-id-to-thread (gnus-root-id id))))) (prog1 @@ -5998,7 +5981,6 @@ Returns how many articles were removed." (defun gnus-summary-limit-include-dormant () "Display all the hidden articles that are marked as dormant." (interactive) - (gnus-set-global-variables) (unless gnus-newsgroup-dormant (error "There are no dormant articles in this group")) (prog1 @@ -6008,7 +5990,6 @@ Returns how many articles were removed." (defun gnus-summary-limit-exclude-dormant () "Hide all dormant articles." (interactive) - (gnus-set-global-variables) (prog1 (gnus-summary-limit-to-marks (list gnus-dormant-mark) 'reverse) (gnus-summary-position-point))) @@ -6016,7 +5997,6 @@ Returns how many articles were removed." (defun gnus-summary-limit-exclude-childless-dormant () "Hide all dormant articles that have no children." (interactive) - (gnus-set-global-variables) (let ((data (gnus-data-list t)) articles d children) ;; Find all articles that are either not dormant or have @@ -6280,7 +6260,6 @@ fetch-old-headers verbiage, and so on." If N is negative, go to ancestor -N instead. The difference between N and the number of articles fetched is returned." (interactive "p") - (gnus-set-global-variables) (let ((skip 1) error header ref) (when (not (natnump n)) @@ -6323,7 +6302,6 @@ The difference between N and the number of articles fetched is returned." "Fetch all articles mentioned in the References header. Return the number of articles fetched." (interactive) - (gnus-set-global-variables) (let ((ref (mail-header-references (gnus-summary-article-header))) (current (gnus-summary-article-number)) (n 0)) @@ -6346,7 +6324,6 @@ Return the number of articles fetched." If LIMIT (the numerical prefix), fetch that many old headers instead of what's specified by the `gnus-refer-thread-limit' variable." (interactive "P") - (gnus-set-global-variables) (let ((id (mail-header-id (gnus-summary-article-header))) (limit (if limit (prefix-numeric-value limit) gnus-refer-thread-limit)) @@ -6418,7 +6395,6 @@ or `gnus-select-method', no matter what backend the article comes from." If FORCE, force a digest interpretation. If not, try to guess what the document format is." (interactive "P") - (gnus-set-global-variables) (let ((conf gnus-current-window-configuration)) (save-excursion (gnus-summary-select-article)) @@ -6516,12 +6492,12 @@ Obeys the standard process/prefix convention." "Do incremental search forward on the current article. If REGEXP-P (the prefix) is non-nil, do regexp isearch." (interactive "P") - (gnus-set-global-variables) (gnus-summary-select-article) (gnus-configure-windows 'article) (gnus-eval-in-buffer-window gnus-article-buffer - ;;(goto-char (point-min)) - (isearch-forward regexp-p))) + (save-restriction + (widen) + (isearch-forward regexp-p)))) (defun gnus-summary-search-article-forward (regexp &optional backward) "Search for an article containing REGEXP forward. @@ -6534,7 +6510,6 @@ If BACKWARD, search backward instead." (concat ", default " gnus-last-search-regexp) ""))) current-prefix-arg)) - (gnus-set-global-variables) (if (string-equal regexp "") (setq regexp (or gnus-last-search-regexp "")) (setq gnus-last-search-regexp regexp)) @@ -6656,7 +6631,6 @@ article. If BACKWARD (the prefix) is non-nil, search backward instead." current-prefix-arg)) (when (equal header "Body") (setq header "")) - (gnus-set-global-variables) ;; Hidden thread subtrees must be searched as well. (gnus-summary-show-all-threads) ;; We don't want to change current point nor window configuration. @@ -6672,7 +6646,6 @@ article. If BACKWARD (the prefix) is non-nil, search backward instead." (defun gnus-summary-beginning-of-article () "Scroll the article back to the beginning." (interactive) - (gnus-set-global-variables) (gnus-summary-select-article) (gnus-configure-windows 'article) (gnus-eval-in-buffer-window gnus-article-buffer @@ -6684,7 +6657,6 @@ article. If BACKWARD (the prefix) is non-nil, search backward instead." (defun gnus-summary-end-of-article () "Scroll to the end of the article." (interactive) - (gnus-set-global-variables) (gnus-summary-select-article) (gnus-configure-windows 'article) (gnus-eval-in-buffer-window gnus-article-buffer @@ -6719,7 +6691,6 @@ to save in." If ARG (the prefix) is non-nil, show the raw article without any article massaging functions being run." (interactive "P") - (gnus-set-global-variables) (if (not arg) ;; Select the article the normal way. (gnus-summary-select-article nil 'force) @@ -6739,7 +6710,6 @@ article massaging functions being run." If ARG is a positive number, turn header display on. If ARG is a negative number, turn header display off." (interactive "P") - (gnus-set-global-variables) (setq gnus-show-all-headers (cond ((or (not (numberp arg)) (zerop arg)) @@ -6753,7 +6723,6 @@ If ARG is a negative number, turn header display off." If ARG is a positive number, show the entire header. If ARG is a negative number, hide the unwanted header lines." (interactive "P") - (gnus-set-global-variables) (save-excursion (set-buffer gnus-article-buffer) (let* ((buffer-read-only nil) @@ -6779,14 +6748,12 @@ If ARG is a negative number, hide the unwanted header lines." (defun gnus-summary-show-all-headers () "Make all header lines visible." (interactive) - (gnus-set-global-variables) (gnus-article-show-all-headers)) (defun gnus-summary-toggle-mime (&optional arg) "Toggle MIME processing. If ARG is a positive number, turn MIME processing on." (interactive "P") - (gnus-set-global-variables) (setq gnus-show-mime (if (null arg) (not gnus-show-mime) (> (prefix-numeric-value arg) 0))) @@ -6797,7 +6764,6 @@ If ARG is a positive number, turn MIME processing on." The numerical prefix specifies how many places to rotate each letter forward." (interactive "P") - (gnus-set-global-variables) (gnus-summary-select-article) (let ((mail-header-separator "")) (gnus-eval-in-buffer-window gnus-article-buffer @@ -6811,7 +6777,6 @@ forward." (defun gnus-summary-stop-page-breaking () "Stop page breaking in the current article." (interactive) - (gnus-set-global-variables) (gnus-summary-select-article) (gnus-eval-in-buffer-window gnus-article-buffer (widen) @@ -6837,7 +6802,6 @@ and `request-accept' functions." (interactive "P") (unless action (setq action 'move)) - (gnus-set-global-variables) ;; Disable marking as read. (let (gnus-mark-article-hook) (save-window-excursion @@ -7094,7 +7058,6 @@ latter case, they will be copied into the relevant groups." (let ((ms-alist (mapcar (lambda (m) (cons (cadr m) m)) ms))) (cdr (assoc (completing-read "Server name: " ms-alist nil t) ms-alist)))))))) - (gnus-set-global-variables) (unless method (error "No method given for respooling")) (if (assoc (symbol-name @@ -7106,7 +7069,6 @@ latter case, they will be copied into the relevant groups." (defun gnus-summary-import-article (file) "Import a random file into a mail newsgroup." (interactive "fImport file: ") - (gnus-set-global-variables) (let ((group gnus-newsgroup-name) (now (current-time)) atts lines) @@ -7155,7 +7117,6 @@ This will be the case if the article has both been mailed and posted." (defun gnus-summary-expire-articles (&optional now) "Expire all articles that are marked as expirable in the current group." (interactive) - (gnus-set-global-variables) (when (gnus-check-backend-function 'request-expire-articles gnus-newsgroup-name) ;; This backend supports expiry. @@ -7205,7 +7166,6 @@ This will be the case if the article has both been mailed and posted." This means that *all* articles that are marked as expirable will be deleted forever, right now." (interactive) - (gnus-set-global-variables) (or gnus-expert-user (gnus-yes-or-no-p "Are you really, really, really sure you want to delete all these messages? ") @@ -7222,7 +7182,6 @@ If N is negative, delete backwards. If N is nil and articles have been marked with the process mark, delete these instead." (interactive "P") - (gnus-set-global-variables) (unless (gnus-check-backend-function 'request-expire-articles gnus-newsgroup-name) (error "The current newsgroup does not support article deletion")) @@ -7349,7 +7308,6 @@ groups." (defun gnus-summary-respool-query (&optional silent) "Query where the respool algorithm would put this article." (interactive) - (gnus-set-global-variables) (let (gnus-mark-article-hook) (gnus-summary-select-article) (save-excursion @@ -7371,7 +7329,6 @@ groups." If UNMARK is positive, remove any kind of mark. If UNMARK is negative, tick articles." (interactive "P") - (gnus-set-global-variables) (when unmark (setq unmark (prefix-numeric-value unmark))) (let ((count @@ -7390,7 +7347,6 @@ If UNMARK is negative, tick articles." If UNMARK is positive, remove any kind of mark. If UNMARK is negative, tick articles." (interactive "P") - (gnus-set-global-variables) (when unmark (setq unmark (prefix-numeric-value unmark))) (let ((count @@ -7441,7 +7397,6 @@ If N is negative, mark backward instead. If UNMARK is non-nil, remove the process mark instead. The difference between N and the actual number of articles marked is returned." (interactive "p") - (gnus-set-global-variables) (let ((backward (< n 0)) (n (abs n))) (while (and @@ -7463,13 +7418,11 @@ number of articles marked is returned." If N is negative, unmark backward instead. The difference between N and the actual number of articles unmarked is returned." (interactive "p") - (gnus-set-global-variables) (gnus-summary-mark-as-processable n t)) (defun gnus-summary-unmark-all-processable () "Remove the process mark from all articles." (interactive) - (gnus-set-global-variables) (save-excursion (while gnus-newsgroup-processable (gnus-summary-remove-process-mark (car gnus-newsgroup-processable)))) @@ -7480,7 +7433,6 @@ the actual number of articles unmarked is returned." If N is negative, mark backward instead. The difference between N and the actual number of articles marked is returned." (interactive "p") - (gnus-set-global-variables) (gnus-summary-mark-forward n gnus-expirable-mark)) (defun gnus-summary-mark-article-as-replied (article) @@ -7493,7 +7445,6 @@ the actual number of articles marked is returned." (defun gnus-summary-set-bookmark (article) "Set a bookmark in current article." (interactive (list (gnus-summary-article-number))) - (gnus-set-global-variables) (when (or (not (get-buffer gnus-article-buffer)) (not gnus-current-article) (not gnus-article-current) @@ -7523,7 +7474,6 @@ the actual number of articles marked is returned." (defun gnus-summary-remove-bookmark (article) "Remove the bookmark from the current article." (interactive (list (gnus-summary-article-number))) - (gnus-set-global-variables) ;; Remove old bookmark, if one exists. (let ((old (assq article gnus-newsgroup-bookmarks))) (if old @@ -7539,7 +7489,6 @@ the actual number of articles marked is returned." If N is negative, mark backward instead. The difference between N and the actual number of articles marked is returned." (interactive "p") - (gnus-set-global-variables) (gnus-summary-mark-forward n gnus-dormant-mark)) (defun gnus-summary-set-process-mark (article) @@ -7570,7 +7519,6 @@ If N is negative, mark backwards instead. Mark with MARK, ?r by default. The difference between N and the actual number of articles marked is returned." (interactive "p") - (gnus-set-global-variables) (let ((backward (< n 0)) (gnus-summary-goto-unread (and gnus-summary-goto-unread @@ -7877,7 +7825,6 @@ even ticked and dormant ones." (defun gnus-summary-mark-below (score mark) "Mark articles with score less than SCORE with MARK." (interactive "P\ncMark: ") - (gnus-set-global-variables) (setq score (if score (prefix-numeric-value score) (or gnus-summary-default-score 0))) @@ -7893,25 +7840,21 @@ even ticked and dormant ones." (defun gnus-summary-kill-below (&optional score) "Mark articles with score below SCORE as read." (interactive "P") - (gnus-set-global-variables) (gnus-summary-mark-below score gnus-killed-mark)) (defun gnus-summary-clear-above (&optional score) "Clear all marks from articles with score above SCORE." (interactive "P") - (gnus-set-global-variables) (gnus-summary-mark-above score gnus-unread-mark)) (defun gnus-summary-tick-above (&optional score) "Tick all articles with score above SCORE." (interactive "P") - (gnus-set-global-variables) (gnus-summary-mark-above score gnus-ticked-mark)) (defun gnus-summary-mark-above (score mark) "Mark articles with score over SCORE with MARK." (interactive "P\ncMark: ") - (gnus-set-global-variables) (setq score (if score (prefix-numeric-value score) (or gnus-summary-default-score 0))) @@ -7929,7 +7872,6 @@ even ticked and dormant ones." (defun gnus-summary-limit-include-expunged (&optional no-error) "Display all the hidden articles that were expunged for low scores." (interactive) - (gnus-set-global-variables) (let ((buffer-read-only nil)) (let ((scored gnus-newsgroup-scored) headers h) @@ -7959,7 +7901,6 @@ Note that this function will only catch up the unread article in the current summary buffer limitation. The number of articles marked as read is returned." (interactive "P") - (gnus-set-global-variables) (prog1 (save-excursion (when (or quietly @@ -7996,7 +7937,6 @@ The number of articles marked as read is returned." "Mark all unticked articles before the current one as read. If ALL is non-nil, also mark ticked and dormant articles as read." (interactive "P") - (gnus-set-global-variables) (save-excursion (gnus-save-hidden-threads (let ((beg (point))) @@ -8008,14 +7948,12 @@ If ALL is non-nil, also mark ticked and dormant articles as read." (defun gnus-summary-catchup-all (&optional quietly) "Mark all articles in this newsgroup as read." (interactive "P") - (gnus-set-global-variables) (gnus-summary-catchup t quietly)) (defun gnus-summary-catchup-and-exit (&optional all quietly) "Mark all articles not marked as unread in this newsgroup as read, then exit. If prefix argument ALL is non-nil, all articles are marked as read." (interactive "P") - (gnus-set-global-variables) (when (gnus-summary-catchup all quietly nil 'fast) ;; Select next newsgroup or exit. (if (eq gnus-auto-select-next 'quietly) @@ -8025,7 +7963,6 @@ If prefix argument ALL is non-nil, all articles are marked as read." (defun gnus-summary-catchup-all-and-exit (&optional quietly) "Mark all articles in this newsgroup as read, and then exit." (interactive "P") - (gnus-set-global-variables) (gnus-summary-catchup-and-exit t quietly)) ;; Suggested by "Arne Eofsson" . @@ -8034,7 +7971,6 @@ If prefix argument ALL is non-nil, all articles are marked as read." If given a prefix, mark all articles, unread as well as ticked, as read." (interactive "P") - (gnus-set-global-variables) (save-excursion (gnus-summary-catchup all)) (gnus-summary-next-article t nil nil t)) @@ -8081,7 +8017,6 @@ with that article." (defun gnus-summary-rethread-current () "Rethread the thread the current article is part of." (interactive) - (gnus-set-global-variables) (let* ((gnus-show-threads t) (article (gnus-summary-article-number)) (id (mail-header-id (gnus-summary-article-header))) @@ -8145,7 +8080,6 @@ is non-nil or the Subject: of both articles are the same." "Toggle showing conversation threads. If ARG is positive number, turn showing conversation threads on." (interactive "P") - (gnus-set-global-variables) (let ((current (or (gnus-summary-article-number) gnus-newsgroup-end))) (setq gnus-show-threads (if (null arg) (not gnus-show-threads) @@ -8158,7 +8092,6 @@ If ARG is positive number, turn showing conversation threads on." (defun gnus-summary-show-all-threads () "Show all threads." (interactive) - (gnus-set-global-variables) (save-excursion (let ((buffer-read-only nil)) (subst-char-in-region (point-min) (point-max) ?\^M ?\n t))) @@ -8168,7 +8101,6 @@ If ARG is positive number, turn showing conversation threads on." "Show thread subtrees. Returns nil if no thread was there to be shown." (interactive) - (gnus-set-global-variables) (let ((buffer-read-only nil) (orig (point)) ;; first goto end then to beg, to have point at beg after let @@ -8184,7 +8116,6 @@ Returns nil if no thread was there to be shown." (defun gnus-summary-hide-all-threads () "Hide all thread subtrees." (interactive) - (gnus-set-global-variables) (save-excursion (goto-char (point-min)) (gnus-summary-hide-thread) @@ -8196,7 +8127,6 @@ Returns nil if no thread was there to be shown." "Hide thread subtrees. Returns nil if no threads were there to be hidden." (interactive) - (gnus-set-global-variables) (let ((buffer-read-only nil) (start (point)) (article (gnus-summary-article-number))) @@ -8245,7 +8175,6 @@ done. If SILENT, don't output messages." (interactive "p") - (gnus-set-global-variables) (let ((backward (< n 0)) (n (abs n))) (while (and (> n 0) @@ -8262,7 +8191,6 @@ If SILENT, don't output messages." Returns the difference between N and the number of skips actually done." (interactive "p") - (gnus-set-global-variables) (gnus-summary-next-thread (- n))) (defun gnus-summary-go-down-thread () @@ -8283,7 +8211,6 @@ If N is negative, go up instead. Returns the difference between N and how many steps down that were taken." (interactive "p") - (gnus-set-global-variables) (let ((up (< n 0)) (n (abs n))) (while (and (> n 0) @@ -8301,13 +8228,11 @@ If N is negative, go up instead. Returns the difference between N and how many steps down that were taken." (interactive "p") - (gnus-set-global-variables) (gnus-summary-down-thread (- n))) (defun gnus-summary-top-thread () "Go to the top of the thread." (interactive) - (gnus-set-global-variables) (while (gnus-summary-go-up-thread)) (gnus-summary-article-number)) @@ -8316,7 +8241,6 @@ taken." If the prefix argument is positive, remove any kinds of marks. If the prefix argument is negative, tick articles instead." (interactive "P") - (gnus-set-global-variables) (when unmark (setq unmark (prefix-numeric-value unmark))) (let ((articles (gnus-summary-articles-in-thread))) @@ -8385,7 +8309,6 @@ Argument REVERSE means reverse order." (defun gnus-summary-sort (predicate reverse) "Sort summary buffer by PREDICATE. REVERSE means reverse order." - (gnus-set-global-variables) (let* ((thread (intern (format "gnus-thread-sort-by-%s" predicate))) (article (intern (format "gnus-article-sort-by-%s" predicate))) (gnus-thread-sort-functions @@ -8418,7 +8341,6 @@ If N is nil and any articles have been marked with the process mark, save those articles instead. The variable `gnus-default-article-saver' specifies the saver function." (interactive "P") - (gnus-set-global-variables) (let* ((articles (gnus-summary-work-articles n)) (save-buffer (save-excursion (nnheader-set-temp-buffer " *Gnus Save*"))) @@ -8455,7 +8377,6 @@ If N is a negative number, pipe the N previous articles. If N is nil and any articles have been marked with the process mark, pipe those articles instead." (interactive "P") - (gnus-set-global-variables) (let ((gnus-default-article-saver 'gnus-summary-save-in-pipe)) (gnus-summary-save-article arg t)) (gnus-configure-windows 'pipe)) @@ -8467,7 +8388,6 @@ If N is a negative number, save the N previous articles. If N is nil and any articles have been marked with the process mark, save those articles instead." (interactive "P") - (gnus-set-global-variables) (let ((gnus-default-article-saver 'gnus-summary-save-in-mail)) (gnus-summary-save-article arg))) @@ -8478,7 +8398,6 @@ If N is a negative number, save the N previous articles. If N is nil and any articles have been marked with the process mark, save those articles instead." (interactive "P") - (gnus-set-global-variables) (let ((gnus-default-article-saver 'gnus-summary-save-in-rmail)) (gnus-summary-save-article arg))) @@ -8489,7 +8408,6 @@ If N is a negative number, save the N previous articles. If N is nil and any articles have been marked with the process mark, save those articles instead." (interactive "P") - (gnus-set-global-variables) (let ((gnus-default-article-saver 'gnus-summary-save-in-file)) (gnus-summary-save-article arg))) @@ -8500,7 +8418,6 @@ If N is a negative number, save the N previous articles. If N is nil and any articles have been marked with the process mark, save those articles instead." (interactive "P") - (gnus-set-global-variables) (let ((gnus-default-article-saver 'gnus-summary-write-to-file)) (gnus-summary-save-article arg))) @@ -8511,14 +8428,12 @@ If N is a negative number, save the N previous articles. If N is nil and any articles have been marked with the process mark, save those articles instead." (interactive "P") - (gnus-set-global-variables) (let ((gnus-default-article-saver 'gnus-summary-save-body-in-file)) (gnus-summary-save-article arg))) (defun gnus-summary-pipe-message (program) "Pipe the current article through PROGRAM." (interactive "sProgram: ") - (gnus-set-global-variables) (gnus-summary-select-article) (let ((mail-header-separator "") (art-buf (get-buffer gnus-article-buffer))) @@ -8721,15 +8636,12 @@ save those articles instead." (defun gnus-summary-edit-global-kill (article) "Edit the \"global\" kill file." (interactive (list (gnus-summary-article-number))) - (gnus-set-global-variables) (gnus-group-edit-global-kill article)) (defun gnus-summary-edit-local-kill () "Edit a local kill file applied to the current newsgroup." (interactive) - (gnus-set-global-variables) (setq gnus-current-headers (gnus-summary-article-header)) - (gnus-set-global-variables) (gnus-group-edit-local-kill (gnus-summary-article-number) gnus-newsgroup-name)) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index d9cb72c..5cbf09e 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -586,8 +586,9 @@ Bind `print-quoted' to t while printing." (prin1 form (current-buffer)))) (defun gnus-prin1-to-string (form) - "The same as `prin1', but but `print-quoted' to t." - (let ((print-quoted t)) + "The same as `prin1', but bind `print-quoted' and `print-readably' to t." + (let ((print-quoted t) + (print-readably t)) (prin1-to-string form))) (defun gnus-make-directory (directory) diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index 8e095f6..6b74974 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -558,7 +558,6 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (defun gnus-uu-mark-by-regexp (regexp &optional unmark) "Ask for a regular expression and set the process mark on all articles that match." (interactive (list (read-from-minibuffer "Mark (regexp): "))) - (gnus-set-global-variables) (let ((articles (gnus-uu-find-articles-matching regexp))) (while articles (if unmark @@ -575,7 +574,6 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (defun gnus-uu-mark-series () "Mark the current series with the process mark." (interactive) - (gnus-set-global-variables) (let ((articles (gnus-uu-find-articles-matching))) (while articles (gnus-summary-set-process-mark (car articles)) @@ -586,7 +584,6 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (defun gnus-uu-mark-region (beg end &optional unmark) "Set the process mark on all articles between point and mark." (interactive "r") - (gnus-set-global-variables) (save-excursion (goto-char beg) (while (< (point) end) @@ -614,7 +611,6 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (defun gnus-uu-mark-thread () "Marks all articles downwards in this thread." (interactive) - (gnus-set-global-variables) (let ((level (gnus-summary-thread-level))) (while (and (gnus-summary-set-process-mark (gnus-summary-article-number)) (zerop (gnus-summary-next-subject 1)) @@ -624,7 +620,6 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (defun gnus-uu-unmark-thread () "Unmarks all articles downwards in this thread." (interactive) - (gnus-set-global-variables) (let ((level (gnus-summary-thread-level))) (while (and (gnus-summary-remove-process-mark (gnus-summary-article-number)) @@ -663,7 +658,6 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (defun gnus-uu-mark-sparse () "Mark all series that have some articles marked." (interactive) - (gnus-set-global-variables) (let ((marked (nreverse gnus-newsgroup-processable)) subject articles total headers) (unless marked @@ -688,7 +682,6 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (defun gnus-uu-mark-all () "Mark all articles in \"series\" order." (interactive) - (gnus-set-global-variables) (setq gnus-newsgroup-processable nil) (save-excursion (let ((data gnus-newsgroup-data) diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index 02ed971..2794ce3 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -512,16 +512,16 @@ call it with the value of the `gnus-data' text property." (let* ((logo-xpm (expand-file-name "gnus.xpm" gnus-xmas-glyph-directory)) (logo-xbm (expand-file-name "gnus.xbm" gnus-xmas-glyph-directory)) (glyph (make-glyph - `(,@(if (featurep 'xpm) - (list - (vector 'xpm - ':file logo-xpm - ':color-symbols - `(("thing" . ,(car gnus-xmas-logo-colors)) - ("shadow" . ,(cadr gnus-xmas-logo-colors)) - ("background" . ,(face-background 'default)))))) - ,(vector 'xbm :file logo-xbm) - ,(vector 'nothing))))) + (cond ((featurep 'xpm) + `[xpm + :file ,logo-xpm + :color-symbols + (("thing" . ,(car gnus-xmas-logo-colors)) + ("shadow" . ,(cadr gnus-xmas-logo-colors)) + ("background" . ,(face-background 'default)))]) + ((featurep 'xbm) + `[xbm :file ,logo-xbm]) + (t [nothing]))))) (insert " ") (set-extent-begin-glyph (make-extent (point) (point)) glyph) (goto-char (point-min)) @@ -754,19 +754,19 @@ XEmacs compatibility workaround." (progn (setq gnus-xmas-glyph-directory (message-xmas-find-glyph-directory "gnus")) (let* ((file-xpm (expand-file-name "gnus-pointer.xpm" - gnus-xmas-glyph-directory)) + gnus-xmas-glyph-directory)) (file-xbm (expand-file-name "gnus-pointer.xbm" - gnus-xmas-glyph-directory)) + gnus-xmas-glyph-directory)) (glyph (make-glyph ;; Gag gag gag. - `( - ,@(if (featurep 'xpm) - ;; Let's try a nifty XPM - (list (vector 'xpm ':file file-xpm))) - ;; Then a not-so-nifty XBM - ,(vector 'xbm ':file file-xbm) - ;; Then the simple string - ,(vector 'string ':data "Gnus:"))))) + (cond ((featurep 'xpm) + ;; Let's try a nifty XPM + `[xpm :file ,file-xpm]) + ((featurep 'xbm) + ;; Then a not-so-nifty XBM + [xbm :file ,file-xbm]) + ;; Then the simple string + (t [string :data "Gnus:"]))))) (set-glyph-face glyph 'modeline-buffer-id) glyph))) diff --git a/lisp/gnus.el b/lisp/gnus.el index a15f9a3..45e340d 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -244,7 +244,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "0.14" +(defconst gnus-version-number "0.15" "Version number for this version of Gnus.") (defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number) diff --git a/lisp/message.el b/lisp/message.el index fff5498..518e9ad 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -32,7 +32,9 @@ (eval-when-compile (require 'cl)) (require 'mailheader) -(require 'rmail) +(condition-case nil + (require 'rmail) + (t (message "Ignore any errors about rmail from this file"))) (require 'nnheader) (require 'timezone) (require 'easymenu) @@ -2545,11 +2547,10 @@ to find out how to use this." (defun message-make-organization () "Make an Organization header." (let* ((organization - (or (getenv "ORGANIZATION") - (when message-user-organization + (when message-user-organization (if (message-functionp message-user-organization) (funcall message-user-organization) - message-user-organization))))) + message-user-organization)))) (save-excursion (message-set-work-buffer) (cond ((stringp organization) @@ -3158,7 +3159,10 @@ Headers already prepared in the buffer are not modified." (unless follow-to (if (or (not wide) to-address) - (setq follow-to (list (cons 'To (or to-address reply-to from)))) + (progn + (setq follow-to (list (cons 'To (or to-address reply-to from)))) + (when (and wide mct) + (push (cons 'Cc mct) follow-to))) (let (ccalist) (save-excursion (message-set-work-buffer) diff --git a/lisp/nnbabyl.el b/lisp/nnbabyl.el index 8c37024..67fa4ba 100644 --- a/lisp/nnbabyl.el +++ b/lisp/nnbabyl.el @@ -30,7 +30,9 @@ ;;; Code: (require 'nnheader) -(require 'rmail) +(condition-case nil + (require 'rmail) + (t (message "Ignore rmail errors from this file, you don't have rmail"))) (require 'nnmail) (require 'nnoo) (eval-when-compile (require 'cl)) diff --git a/lisp/nndraft.el b/lisp/nndraft.el index 5e134ec..4beea9f 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -164,8 +164,9 @@ (deffoo nndraft-request-expire-articles (articles group &optional server force) (nndraft-possibly-change-group group) (let* ((nnmh-allow-delete-final t) - (res (nnmh-request-expire-articles - articles group server force)) + (res (nnoo-parent-function 'nndraft + 'nnmh-request-expire-articles + (list articles group server force))) article) ;; Delete all the "state" files of articles that have been expired. (while articles @@ -179,7 +180,8 @@ (deffoo nndraft-request-accept-article (group &optional server last noinsert) (nndraft-possibly-change-group group) (let ((gnus-verbose-backends nil)) - (nnmh-request-accept-article group server last noinsert))) + (nnoo-parent-function 'nndraft 'nnmh-request-accept-article + (list group server last noinsert)))) (deffoo nndraft-request-create-group (group &optional server args) (nndraft-possibly-change-group group) diff --git a/lisp/nnml.el b/lisp/nnml.el index fd74ec0..06f016d 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -84,6 +84,8 @@ all. This may very well take some time.") (defvoo nnml-generate-active-function 'nnml-generate-active-info) +(defvar nnml-nov-buffer-file-name nil) + ;;; Interface functions. @@ -658,9 +660,10 @@ all. This may very well take some time.") (save-excursion (save-restriction (goto-char (point-min)) - (narrow-to-region - (point) - (1- (or (search-forward "\n\n" nil t) (point-max)))) + (unless (zerop (buffer-size)) + (narrow-to-region + (point) + (1- (or (search-forward "\n\n" nil t) (point-max))))) ;; Fold continuation lines. (goto-char (point-min)) (while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t) @@ -674,12 +677,14 @@ all. This may very well take some time.") (defun nnml-open-nov (group) (or (cdr (assoc group nnml-nov-buffer-alist)) - (let ((buffer (nnheader-find-file-noselect - (concat (nnmail-group-pathname group nnml-directory) - nnml-nov-file-name)))) + (let ((buffer (get-buffer-create (format " *nnml overview %s*" group)))) (save-excursion (set-buffer buffer) - (buffer-disable-undo (current-buffer))) + (set (make-local-variable 'nnml-nov-buffer-file-name) + (concat (nnmail-group-pathname group nnml-directory) + nnml-nov-file-name)) + (erase-buffer) + (nnheader-insert-file-contents nnml-nov-buffer-file-name)) (push (cons group buffer) nnml-nov-buffer-alist) buffer))) @@ -689,7 +694,8 @@ all. This may very well take some time.") (when (buffer-name (cdar nnml-nov-buffer-alist)) (set-buffer (cdar nnml-nov-buffer-alist)) (when (buffer-modified-p) - (nnmail-write-region 1 (point-max) (buffer-file-name) nil 'nomesg)) + (nnmail-write-region 1 (point-max) nnml-nov-buffer-file-name + nil 'nomesg)) (set-buffer-modified-p nil) (kill-buffer (current-buffer))) (setq nnml-nov-buffer-alist (cdr nnml-nov-buffer-alist))))) diff --git a/lisp/nnoo.el b/lisp/nnoo.el index 251fdc9..c28c888 100644 --- a/lisp/nnoo.el +++ b/lisp/nnoo.el @@ -30,6 +30,7 @@ (defvar nnoo-definition-alist nil) (defvar nnoo-state-alist nil) +(defvar nnoo-parent-backend nil) (defmacro defvoo (var init &optional doc &rest map) "The same as `defvar', only takes list of variables to MAP to." @@ -88,23 +89,28 @@ (or (cdr imp) (nnoo-functions (car imp)))) (while functions - (unless (fboundp (setq function - (nnoo-symbol backend (nnoo-rest-symbol - (car functions))))) + (unless (fboundp + (setq function + (nnoo-symbol backend + (nnoo-rest-symbol (car functions))))) (eval `(deffoo ,function (&rest args) (,call-function ',backend ',(car functions) args)))) (pop functions))))) (defun nnoo-parent-function (backend function args) - (let ((pbackend (nnoo-backend function))) - (nnoo-change-server pbackend (nnoo-current-server backend) + (let ((pbackend (nnoo-backend function)) + (nnoo-parent-backend backend)) + (nnoo-change-server pbackend + (nnoo-current-server backend) (cdr (assq pbackend (nnoo-parents backend)))) (apply function args))) (defun nnoo-execute (backend function &rest args) "Execute FUNCTION on behalf of BACKEND." - (let ((pbackend (nnoo-backend function))) - (nnoo-change-server pbackend (nnoo-current-server backend) + (let ((pbackend (nnoo-backend function)) + (nnoo-parent-backend backend)) + (nnoo-change-server pbackend + (nnoo-current-server backend) (cdr (assq pbackend (nnoo-parents backend)))) (apply function args))) @@ -157,8 +163,13 @@ (let* ((bstate (cdr (assq backend nnoo-state-alist))) (current (car bstate)) (parents (nnoo-parents backend)) + (server (if nnoo-parent-backend + (format "%s+%s" nnoo-parent-backend server) + server)) (bvariables (nnoo-variables backend)) state def) + ;; If we don't have a current state, we push an empty state + ;; onto the alist. (unless bstate (push (setq bstate (list backend nil)) nnoo-state-alist) @@ -181,7 +192,7 @@ (set (car def) (cadr def)))) (while parents (nnoo-change-server - (caar parents) server + (caar parents) (format "%s+%s" backend server) (mapcar (lambda (def) (list (car def) (symbol-value (cadr def)))) (cdar parents))) (pop parents)))) diff --git a/lisp/nntp.el b/lisp/nntp.el index 67dde9c..8c1ec8c 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -634,7 +634,8 @@ server there that you can connect to. See also `nntp-open-connection-function'" (when (memq (process-status process) '(open run)) (set-process-sentinel process nil) (ignore-errors - (nntp-send-string process "QUIT"))) + (nntp-send-string process "QUIT") + (sleep-for 1))) (when (buffer-name (process-buffer process)) (kill-buffer (process-buffer process)))) (nnoo-close-server 'nntp))) @@ -645,7 +646,8 @@ server there that you can connect to. See also `nntp-open-connection-function'" (when (memq (process-status process) '(open run)) (set-process-sentinel process nil) (ignore-errors - (nntp-send-string process "QUIT"))) + (nntp-send-string process "QUIT") + (sleep-for 1))) (when (buffer-name (process-buffer process)) (kill-buffer (process-buffer process)))))) diff --git a/texi/ChangeLog b/texi/ChangeLog index f304745..99156dd 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,7 @@ +Mon Nov 24 16:01:20 1997 Lars Magne Ingebrigtsen + + * gnus.texi (Faces & Fonts): New. + Mon Oct 13 00:08:06 1997 Lars Magne Ingebrigtsen * gnus.texi (Agent Commands): Addition. diff --git a/texi/gnus.texi b/texi/gnus.texi index dc4704a..5315360 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Quassia Gnus 0.110 Manual +@settitle Quassia Gnus 0.15 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -313,7 +313,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Quassia Gnus 0.110 Manual +@title Quassia Gnus 0.15 Manual @author by Lars Magne Ingebrigtsen @page @@ -349,7 +349,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local spool or your mbox file. All at the same time, if you want to push your luck. -This manual corresponds to Quassia Gnus 0.110. +This manual corresponds to Quassia Gnus 0.15. @end ifinfo @@ -1289,6 +1289,8 @@ background is dark: (t . my-group-face-5))) @end lisp +Also @pxref{Faces & Fonts}. + Variables that are dynamically bound when the forms are evaluated include: @@ -6008,10 +6010,10 @@ Highlight the headers (@code{gnus-article-highlight-headers}). The highlighting will be done according to the @code{gnus-header-face-alist} variable, which is a list where each element has the form @var{(regexp name content)}. @var{regexp} is a regular expression for matching the -header, @var{name} is the face used for highlighting the header name and -@var{content} is the face for highlighting the header value. The first -match made will be used. Note that @var{regexp} shouldn't have @samp{^} -prepended---Gnus will add one. +header, @var{name} is the face used for highlighting the header name +(@pxref{Faces & Fonts}) and @var{content} is the face for highlighting +the header value. The first match made will be used. Note that +@var{regexp} shouldn't have @samp{^} prepended---Gnus will add one. @item W H c @kindex W H c (Summary) @@ -6037,10 +6039,10 @@ Maximum possible length for a citation prefix (default 20). @item gnus-cite-face-list @vindex gnus-cite-face-list -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. This should make it easier to -see who wrote what. +List of faces used for highlighting citations (@pxref{Faces & Fonts}). +When there are citations from multiple articles in the same message, +Gnus will try to give each citation from each article its own face. +This should make it easier to see who wrote what. @item gnus-supercite-regexp @vindex gnus-supercite-regexp @@ -13221,6 +13223,7 @@ four days, Gnus will decay the scores four times, for instance. * Symbolic Prefixes:: How to supply some Gnus functions with options. * Formatting Variables:: You can specify what buffers should look like. * Windows Configuration:: Configuring the Gnus buffer windows. +* Faces & Fonts:: How to change how faces look. * Compilation:: How to speed Gnus up. * Mode Lines:: Displaying information in the mode lines. * Highlighting and Menus:: Making buffers look all nice and cozy. @@ -13761,6 +13764,18 @@ won't change the window configuration. If you always want to force the @code{gnus-always-force-window-configuration} to non-@code{nil}. +@node Faces & Fonts +@section Faces & Fonts +@cindex faces +@cindex fonts +@cindex colors + +Fiddling with fonts and faces used to be very difficult, but these days +it is very simple. You simply say @kbd{M-x customize-face}, pick out +the face you want to alter, and alter it via the standard Customize +interface. + + @node Compilation @section Compilation @cindex compilation @@ -14477,7 +14492,7 @@ don't need to worry about. @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}. +subdirectories. Defaults to @file{/usr/local/faces/}. @item gnus-picons-news-directory @vindex gnus-picons-news-directory @@ -15266,6 +15281,7 @@ Dave Disser, Joev Dubach, Michael Welsh Duggan, Paul Eggert, +Enami Tsugutomo, @c Enami Michael Ernst, Luc Van Eycken, Sam Falkner, @@ -15279,7 +15295,7 @@ David S. Goldberg, Michelangelo Grigni, D. Hall, Magnus Hammerin, -Kenichi Handa, @c ? +Kenichi Handa, @c Handa Raja R. Harinath, Hisashige Kenji, @c Hisashige Marc Horowitz, @@ -15298,7 +15314,7 @@ Peter Skov Knudsen, Shuhei Kobayashi, @c Kobayashi Thor Kristoffersen, Jens Lautenbacher, -Seokchan Lee, @c ? +Seokchan Lee, @c Lee Carsten Leonhardt, James LewisMoss, Christian Limpach, @@ -15353,7 +15369,6 @@ Teddy, Chuck Thompson, Philippe Troin, James Troup, -Enami Tsugutomo, @c ? Aaron M. Ucko, Didier Verna, Jan Vroonhof, @@ -17722,6 +17737,9 @@ low-number = flag = "y" / "n" / "m" / "j" / "x" / "=" group @end example +For a full description of this file, see the manual pages for +@samp{innd}, in particular @samp{active(5)}. + @node Newsgroups File Format @subsubsection Newsgroups File Format diff --git a/texi/message.texi b/texi/message.texi index c5f8b18..2445386 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 0.110 Manual +@settitle Message 0.15 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -39,7 +39,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Message 0.110 Manual +@title Message 0.15 Manual @author by Lars Magne Ingebrigtsen @page @@ -79,7 +79,7 @@ buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Message 0.110. Message is distributed with +This manual corresponds to Message 0.15. Message is distributed with the Gnus distribution bearing the same version number as this manual has. @@ -478,7 +478,7 @@ The default is @samp{~/.signature}. @end table -Note that RFC1036 says that a signature should be preceded by the three +Note that RFC1036bis says that a signature should be preceded by the three characters @samp{-- } on a line by themselves. This is to make it easier for the recipient to automatically recognize and process the signature. So don't remove those characters, even though you might feel -- 1.7.10.4