Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

*** empty log message ***

  • Loading branch information...
commit c1bc689888c18e12898bbc4c15161cf6618b12aa 1 parent 20cab55
@larsmagne larsmagne authored
View
70 lisp/ChangeLog
@@ -1,3 +1,73 @@
+Fri Aug 14 21:41:59 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.35 is released.
+
+1998-08-14 00:00:15 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-srvr.el (gnus-server-scan-server): Error better.
+
+ * nndir.el: Make independent of nnmh.
+ Revert.
+
+ * message.el (message-remove-text-with-property): New function.
+ (message-fix-before-sending): Check for invisible text.
+
+ * gnus.el (load): Create the Gnus buffer even when no splash.
+
+ * gnus-msg.el (gnus-setup-message): Add buffer to list.
+
+ * gnus-win.el (gnus-remove-some-windows): Use new buffer system.
+ (gnus-delete-windows-in-gnusey-frames): Ditto.
+
+ * gnus.el (gnus-add-buffer): New function.
+
+1998-08-13 23:38:21 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-xmas.el (gnus-buffer-list): Removed.
+
+ * gnus.el (gnus-buffers): New variable.
+ (gnus-get-buffer-create): New function; used throughout.
+ (gnus-buffers): New function.
+
+ * gnus-msg.el (gnus-configure-posting-styles): Go to eoh
+ reliably.
+
+ * message.el (message-goto-eoh): New command.
+
+1998-08-13 23:13:53 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus-msg.el (gnus-setup-message): use message-setup-hook
+ instead
+ (gnus-configure-posting-styles): new posting-style 'body
+ (gnus-configure-posting-styles): insert headers immediately
+
+1998-08-13 13:05:36 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-score.el (gnus-summary-increase-score): Change thread to
+ "r".
+
+ * gnus-sum.el (gnus-summary-scroll-down): New command and
+ keystroke.
+
+ * gnus-agent.el (gnus-agent-expire): Check that directories
+ exist.
+
+1998-08-12 20:56:41 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus-cache.el (gnus-uncacheable-groups): doc change
+ (gnus-cacheable-groups): new variable
+ (gnus-cache-possibly-enter-article): use it
+
+1998-08-12 22:30:16 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nntp.el (nntp-encode-text): Too much text.
+
+1998-08-12 21:58:50 Matt Pharr <mmp@Graphics.Stanford.EDU>
+
+ * message.el (message-make-forward-subject-function): New
+ variable.
+ (message-wash-forwarded-subjects): Ditto.
+
Wed Aug 12 21:09:58 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.6.34 is released.
View
12 lisp/gnus-agent.el
@@ -107,7 +107,7 @@ If nil, only read articles will be expired."
(gnus-agent-read-servers)
(gnus-category-read)
(setq gnus-agent-overview-buffer
- (get-buffer-create " *Gnus agent overview*"))
+ (gnus-get-buffer-create " *Gnus agent overview*"))
(add-hook 'gnus-group-mode-hook 'gnus-agent-mode)
(add-hook 'gnus-summary-mode-hook 'gnus-agent-mode)
(add-hook 'gnus-server-mode-hook 'gnus-agent-mode))
@@ -573,7 +573,7 @@ the actual number of articles toggled is returned."
(defun gnus-agent-open-history ()
(save-excursion
(push (cons (gnus-agent-method)
- (set-buffer (get-buffer-create
+ (set-buffer (gnus-get-buffer-create
(format " *Gnus agent %s history*"
(gnus-agent-method)))))
gnus-agent-history-buffers)
@@ -715,7 +715,7 @@ the actual number of articles toggled is returned."
gnus-agent-group-alist))
(setcdr alist (cons (cons (cdar crosses) t) (cdr alist)))
(save-excursion
- (set-buffer (get-buffer-create (format " *Gnus agent overview %s*"
+ (set-buffer (gnus-get-buffer-create (format " *Gnus agent overview %s*"
group)))
(when (= (point-max) (point-min))
(push (cons group (current-buffer)) gnus-agent-buffer-alist)
@@ -1053,8 +1053,7 @@ The following commands are available:
(defun gnus-category-setup-buffer ()
(unless (get-buffer gnus-category-buffer)
(save-excursion
- (set-buffer (get-buffer-create gnus-category-buffer))
- (gnus-add-current-to-buffer-list)
+ (set-buffer (gnus-get-buffer-create gnus-category-buffer))
(gnus-category-mode))))
(defun gnus-category-prepare ()
@@ -1262,7 +1261,7 @@ The following commands are available:
history overview file histories elem art nov-file low info
unreads marked article)
(save-excursion
- (setq overview (get-buffer-create " *expire overview*"))
+ (setq overview (gnus-get-buffer-create " *expire overview*"))
(while (setq gnus-command-method (pop methods))
(let ((expiry-hashtb (gnus-make-hashtable 1023)))
(gnus-agent-open-history)
@@ -1338,6 +1337,7 @@ The following commands are available:
(delete-file file))
;; Schedule the history line for nuking.
(push (cdr elem) histories)))
+ (gnus-make-directory (file-name-directory nov-file))
(write-region (point-min) (point-max) nov-file nil 'silent)
;; Delete the unwanted entries in the alist.
(setq gnus-agent-article-alist
View
12 lisp/gnus-art.el
@@ -1982,23 +1982,20 @@ commands:
(gnus-set-global-variables)))
;; Init original article buffer.
(save-excursion
- (set-buffer (get-buffer-create gnus-original-article-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-original-article-buffer))
(buffer-disable-undo (current-buffer))
(setq major-mode 'gnus-original-article-mode)
- (gnus-add-current-to-buffer-list)
(make-local-variable 'gnus-original-article))
(if (get-buffer name)
(save-excursion
(set-buffer name)
(buffer-disable-undo (current-buffer))
(setq buffer-read-only t)
- (gnus-add-current-to-buffer-list)
(unless (eq major-mode 'gnus-article-mode)
(gnus-article-mode))
(current-buffer))
(save-excursion
- (set-buffer (get-buffer-create name))
- (gnus-add-current-to-buffer-list)
+ (set-buffer (gnus-get-buffer-create name))
(gnus-article-mode)
(make-local-variable 'gnus-summary-buffer)
(current-buffer)))))
@@ -2543,11 +2540,10 @@ If given a prefix, show the hidden text instead."
(save-excursion
(if (get-buffer gnus-original-article-buffer)
(set-buffer gnus-original-article-buffer)
- (set-buffer (get-buffer-create gnus-original-article-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-original-article-buffer))
(buffer-disable-undo (current-buffer))
(setq major-mode 'gnus-original-article-mode)
- (setq buffer-read-only t)
- (gnus-add-current-to-buffer-list))
+ (setq buffer-read-only t))
(let (buffer-read-only)
(erase-buffer)
(insert-buffer-substring gnus-article-buffer))
View
3  lisp/gnus-bcklg.el
@@ -41,10 +41,9 @@
"Return the backlog buffer."
(or (get-buffer gnus-backlog-buffer)
(save-excursion
- (set-buffer (get-buffer-create gnus-backlog-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-backlog-buffer))
(buffer-disable-undo (current-buffer))
(setq buffer-read-only t)
- (gnus-add-current-to-buffer-list)
(get-buffer gnus-backlog-buffer))))
(defun gnus-backlog-setup ()
View
27 lisp/gnus-cache.el
@@ -50,11 +50,26 @@
:group 'gnus-cache
:type '(set (const ticked) (const dormant) (const unread) (const read)))
+(defcustom gnus-cacheable-groups nil
+ "*Groups that match this regexp will be cached.
+
+If you only want to cache your nntp groups, you could set this
+variable to \"^nntp\".
+
+If a group matches both gnus-cacheable-groups and gnus-uncacheable-groups
+it's not cached."
+ :group 'gnus-cache
+ :type '(choice (const :tag "off" nil)
+ regexp))
+
(defcustom gnus-uncacheable-groups nil
"*Groups that match this regexp will not be cached.
If you want to avoid caching your nnml groups, you could set this
-variable to \"^nnml\"."
+variable to \"^nnml\".
+
+If a group matches both gnus-cacheable-groups and gnus-uncacheable-groups
+it's not cached."
:group 'gnus-cache
:type '(choice (const :tag "off" nil)
regexp))
@@ -139,7 +154,9 @@ variable to \"^nnml\"."
(when (and number
(> number 0) ; Reffed article.
(or force
- (and (or (not gnus-uncacheable-groups)
+ (and (or (not gnus-cacheable-groups)
+ (string-match gnus-cacheable-groups group))
+ (or (not gnus-uncacheable-groups)
(not (string-match
gnus-uncacheable-groups group)))
(gnus-cache-member-of-class
@@ -371,7 +388,7 @@ Returns the list of articles removed."
(save-excursion
(setq gnus-cache-buffer
(cons group
- (set-buffer (get-buffer-create " *gnus-cache-overview*"))))
+ (set-buffer (gnus-get-buffer-create " *gnus-cache-overview*"))))
(buffer-disable-undo (current-buffer))
;; Insert the contents of this group's cache overview.
(erase-buffer)
@@ -459,7 +476,7 @@ Returns the list of articles removed."
articles)))
(defun gnus-cache-braid-nov (group cached &optional file)
- (let ((cache-buf (get-buffer-create " *gnus-cache*"))
+ (let ((cache-buf (gnus-get-buffer-create " *gnus-cache*"))
beg end)
(gnus-cache-save-buffers)
(save-excursion
@@ -491,7 +508,7 @@ Returns the list of articles removed."
(kill-buffer cache-buf)))
(defun gnus-cache-braid-heads (group cached)
- (let ((cache-buf (get-buffer-create " *gnus-cache*")))
+ (let ((cache-buf (gnus-get-buffer-create " *gnus-cache*")))
(save-excursion
(set-buffer cache-buf)
(buffer-disable-undo (current-buffer))
View
8 lisp/gnus-cus.el
@@ -186,8 +186,8 @@ DOC is a documentation string for the parameter.")
(unless (setq info (gnus-get-info group))
(error "Killed group; can't be edited"))
;; Ready.
- (kill-buffer (get-buffer-create "*Gnus Customize*"))
- (switch-to-buffer (get-buffer-create "*Gnus Customize*"))
+ (kill-buffer (gnus-get-buffer-create "*Gnus Customize*"))
+ (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*"))
(gnus-custom-mode)
(make-local-variable 'gnus-custom-group)
(setq gnus-custom-group group)
@@ -544,8 +544,8 @@ eh?")))
,(nth 1 entry)))
gnus-score-parameters)))
;; Ready.
- (kill-buffer (get-buffer-create "*Gnus Customize*"))
- (switch-to-buffer (get-buffer-create "*Gnus Customize*"))
+ (kill-buffer (gnus-get-buffer-create "*Gnus Customize*"))
+ (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*"))
(gnus-custom-mode)
(make-local-variable 'gnus-custom-score-alist)
(setq gnus-custom-score-alist scores)
View
3  lisp/gnus-eform.el
@@ -88,9 +88,8 @@ It is a slightly enhanced emacs-lisp-mode.
Call EXIT-FUNC on exit. Display DOCUMENTATION in the beginning
of the buffer."
(let ((winconf (current-window-configuration)))
- (set-buffer (get-buffer-create gnus-edit-form-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-edit-form-buffer))
(gnus-configure-windows 'edit-form)
- (gnus-add-current-to-buffer-list)
(gnus-edit-form-mode)
(setq gnus-prev-winconf winconf)
(setq gnus-edit-form-done-function exit-func)
View
2  lisp/gnus-ems.el
@@ -228,7 +228,7 @@
(let ((dir (nnheader-find-etc-directory "gnus"))
pixmap file height beg i)
(save-excursion
- (switch-to-buffer (get-buffer-create gnus-group-buffer))
+ (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer))
(let ((buffer-read-only nil))
(erase-buffer)
(when (and dir
View
2  lisp/gnus-gl.el
@@ -234,7 +234,7 @@ If this times out we give up and assume that something has died..." )
(defun bbb-connect-to-bbbd (host port)
(unless grouplens-bbb-buffer
(setq grouplens-bbb-buffer
- (get-buffer-create (format " *BBBD trace: %s*" host)))
+ (gnus-get-buffer-create (format " *BBBD trace: %s*" host)))
(save-excursion
(set-buffer grouplens-bbb-buffer)
(make-local-variable 'bbb-read-point)
View
16 lisp/gnus-group.el
@@ -816,9 +816,8 @@ The following commands are available:
(or level gnus-group-default-list-level gnus-level-subscribed))))
(defun gnus-group-setup-buffer ()
- (set-buffer (get-buffer-create gnus-group-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-group-buffer))
(unless (eq major-mode 'gnus-group-mode)
- (gnus-add-current-to-buffer-list)
(gnus-group-mode)
(when gnus-carpal
(gnus-carpal-setup-buffer 'group))))
@@ -3161,16 +3160,13 @@ The hook gnus-suspend-gnus-hook is called before actually suspending."
(interactive)
(gnus-run-hooks 'gnus-suspend-gnus-hook)
;; Kill Gnus buffers except for group mode buffer.
- (let* ((group-buf (get-buffer gnus-group-buffer))
- ;; Do this on a separate list in case the user does a ^G before we finish
- (gnus-buffer-list
- (delete group-buf (delete gnus-dribble-buffer
- (append gnus-buffer-list nil)))))
- (while gnus-buffer-list
- (gnus-kill-buffer (pop gnus-buffer-list)))
+ (let* ((group-buf (get-buffer gnus-group-buffer)))
+ (apply (lambda (buf)
+ (unless (equal buf group-buf)
+ (kill-buffer buf)))
+ (gnus-buffers))
(gnus-kill-gnus-frames)
(when group-buf
- (setq gnus-buffer-list (list group-buf))
(bury-buffer group-buf)
(delete-windows-on group-buf t))))
View
3  lisp/gnus-kill.el
@@ -406,7 +406,6 @@ Returns the number of articles marked as read."
()
(gnus-message 6 "Processing kill file %s..." (car kill-files))
(find-file (car kill-files))
- (gnus-add-current-to-buffer-list)
(goto-char (point-min))
(if (consp (ignore-errors (read (current-buffer))))
@@ -566,7 +565,7 @@ COMMAND must be a lisp expression or a string representing a key sequence."
(not (consp (cdadr (nth 2 object))))))
(concat "\n" (gnus-prin1-to-string object))
(save-excursion
- (set-buffer (get-buffer-create "*Gnus PP*"))
+ (set-buffer (gnus-get-buffer-create "*Gnus PP*"))
(buffer-disable-undo (current-buffer))
(erase-buffer)
(insert (format "\n(%S %S\n '(" (nth 0 object) (nth 1 object)))
View
2  lisp/gnus-mh.el
@@ -64,7 +64,7 @@ Optional argument FOLDER specifies folder name."
(funcall gnus-folder-save-name gnus-newsgroup-name
gnus-current-headers gnus-newsgroup-last-folder)
t))))
- (errbuf (get-buffer-create " *Gnus rcvstore*"))
+ (errbuf (gnus-get-buffer-create " *Gnus rcvstore*"))
;; Find the rcvstore program.
(exec-path (if mh-lib (cons mh-lib exec-path) exec-path)))
(gnus-eval-in-buffer-window gnus-original-article-buffer
View
37 lisp/gnus-msg.el
@@ -188,7 +188,7 @@ Thank you for your help in stamping out bugs.
(copy-sequence message-header-setup-hook)))
(add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc)
(add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc)
- (add-hook 'message-mode-hook 'gnus-configure-posting-styles)
+ (add-hook 'message-setup-hook 'gnus-configure-posting-styles)
(unwind-protect
(progn
,@forms)
@@ -198,6 +198,7 @@ Thank you for your help in stamping out bugs.
(cons ,group ,article))
(make-local-variable 'gnus-newsgroup-name)
(gnus-run-hooks 'gnus-message-setup-hook))
+ (gnus-add-buffer)
(gnus-configure-windows ,config t)
(set-buffer-modified-p nil))))
@@ -347,10 +348,8 @@ header line with the old Message-ID."
;; this copy is in the buffer gnus-article-copy.
;; if ARTICLE-BUFFER is nil, gnus-article-buffer is used
;; this buffer should be passed to all mail/news reply/post routines.
- (setq gnus-article-copy (get-buffer-create " *gnus article copy*"))
+ (setq gnus-article-copy (gnus-get-buffer-create " *gnus article copy*"))
(buffer-disable-undo gnus-article-copy)
- (or (memq gnus-article-copy gnus-buffer-list)
- (push gnus-article-copy gnus-buffer-list))
(let ((article-buffer (or article-buffer gnus-article-buffer))
end beg contents)
(if (not (and (get-buffer article-buffer)
@@ -850,7 +849,7 @@ The source file has to be in the Emacs load path."
(sit-for 0)
;; Go through all the files looking for non-default values for variables.
(save-excursion
- (set-buffer (get-buffer-create " *gnus bug info*"))
+ (set-buffer (gnus-get-buffer-create " *gnus bug info*"))
(buffer-disable-undo (current-buffer))
(while files
(erase-buffer)
@@ -1092,6 +1091,7 @@ this is a reply."
variable nil)
;; We find the variable that is to be modified.
(if (and (not (stringp (car attribute)))
+ (not (eq 'body (car attribute)))
(not (setq variable (cdr (assq (car attribute)
gnus-posting-style-alist)))))
(message "Couldn't find attribute %s" (car attribute))
@@ -1108,19 +1108,20 @@ this is a reply."
((listp value)
(eval value))))
(if variable
- (progn
- ;; This is an ordinary variable.
- (make-local-variable variable)
- (set variable value-value))
- ;; This is a header to be added to the headers when
- ;; posting.
- (when value-value
- (make-local-variable 'message-required-mail-headers)
- (make-local-variable 'message-required-news-headers)
- (push (cons (car attribute) value-value)
- message-required-mail-headers)
- (push (cons (car attribute) value-value)
- message-required-news-headers)))))))))
+ ;; This is an ordinary variable.
+ (set (make-local-variable variable) value-value)
+ ;; This is either a body or a header to be inserted in the
+ ;; message
+ (when value-value
+ (let ((attr (car attribute)))
+ (if (eq 'body attr)
+ (save-excursion
+ (goto-char (point-max))
+ (insert value-value))
+ (save-excursion
+ (message-goto-eoh)
+ (insert (if (stringp attr) attr (symbol-name attr))
+ ": " value-value "\n"))))))))))))
;;; Allow redefinition of functions.
View
5 lisp/gnus-picon.el
@@ -184,7 +184,7 @@ arguments necessary for the job.")
(defun gnus-get-buffer-name (variable)
"Returns the buffer name associated with the contents of a variable."
- (let ((buf (get-buffer-create (gnus-window-to-buffer-helper
+ (let ((buf (gnus-get-buffer-create (gnus-window-to-buffer-helper
(cdr
(assq variable gnus-window-to-buffer))))))
(and buf
@@ -211,10 +211,9 @@ arguments necessary for the job.")
(save-excursion
(if (get-buffer name)
(set-buffer name)
- (set-buffer (get-buffer-create name))
+ (set-buffer (gnus-get-buffer-create name))
(buffer-disable-undo)
(setq buffer-read-only t)
- (gnus-add-current-to-buffer-list)
(add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
(current-buffer))))
View
6 lisp/gnus-salt.el
@@ -557,9 +557,8 @@ Two predefined functions are available:
(defun gnus-get-tree-buffer ()
"Return the tree buffer properly initialized."
(save-excursion
- (set-buffer (get-buffer-create gnus-tree-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-tree-buffer))
(unless (eq major-mode 'gnus-tree-mode)
- (gnus-add-current-to-buffer-list)
(gnus-tree-mode))
(current-buffer)))
@@ -981,11 +980,10 @@ The following commands are available:
(if (get-buffer buffer)
()
(save-excursion
- (set-buffer (get-buffer-create buffer))
+ (set-buffer (gnus-get-buffer-create buffer))
(gnus-carpal-mode)
(setq gnus-carpal-attached-buffer
(intern (format "gnus-%s-buffer" type)))
- (gnus-add-current-to-buffer-list)
(let ((buttons (symbol-value
(intern (format "gnus-carpal-%s-buffer-buttons"
type))))
View
10 lisp/gnus-score.el
@@ -505,7 +505,7 @@ used as score."
(?l "lines" nil nil number)
(?d "date" nil nil date)
(?f "followup" nil nil string)
- (?h "thread" nil nil string)))
+ (?r "thread" nil nil string)))
(char-to-type
'((?s s "substring" string)
(?e e "exact string" string)
@@ -671,7 +671,7 @@ used as score."
(defun gnus-score-insert-help (string alist idx)
(setq gnus-score-help-winconf (current-window-configuration))
(save-excursion
- (set-buffer (get-buffer-create "*Score Help*"))
+ (set-buffer (gnus-get-buffer-create "*Score Help*"))
(buffer-disable-undo (current-buffer))
(delete-windows-on (current-buffer))
(erase-buffer)
@@ -1403,7 +1403,7 @@ SCORE is the score to add."
gnus-scores-articles))))
(save-excursion
- (set-buffer (get-buffer-create "*Headers*"))
+ (set-buffer (gnus-get-buffer-create "*Headers*"))
(buffer-disable-undo (current-buffer))
(when (gnus-buffer-live-p gnus-summary-buffer)
(message-clone-locals gnus-summary-buffer))
@@ -2289,7 +2289,6 @@ SCORE is the score to add."
1 "No score rules apply to the current article (default score %d)."
gnus-summary-default-score)
(set-buffer "*Score Trace*")
- (gnus-add-current-to-buffer-list)
(while trace
(insert (format "%S -> %s\n" (cdar trace)
(if (caar trace)
@@ -2335,7 +2334,6 @@ SCORE is the score to add."
(while rules
(insert (format "%-5d: %s\n" (caar rules) (cdar rules)))
(pop rules))
- (gnus-add-current-to-buffer-list)
(goto-char (point-min))
(gnus-configure-windows 'score-words))))
@@ -2506,7 +2504,7 @@ GROUP using BNews sys file syntax."
(trans (cdr (assq ?: nnheader-file-name-translation-alist)))
ofiles not-match regexp)
(save-excursion
- (set-buffer (get-buffer-create "*gnus score files*"))
+ (set-buffer (gnus-get-buffer-create "*gnus score files*"))
(buffer-disable-undo (current-buffer))
;; Go through all score file names and create regexp with them
;; as the source.
View
4 lisp/gnus-soup.el
@@ -133,7 +133,7 @@ If N is nil and any articles have been marked with the process mark,
move those articles instead."
(interactive "P")
(let* ((articles (gnus-summary-work-articles n))
- (tmp-buf (get-buffer-create "*soup work*"))
+ (tmp-buf (gnus-get-buffer-create "*soup work*"))
(area (gnus-soup-area gnus-newsgroup-name))
(prefix (gnus-soup-area-prefix area))
headers)
@@ -512,7 +512,7 @@ Return whether the unpacking was successful."
".MSG"))
(msg-buf (and (file-exists-p msg-file)
(nnheader-find-file-noselect msg-file)))
- (tmp-buf (get-buffer-create " *soup send*"))
+ (tmp-buf (gnus-get-buffer-create " *soup send*"))
beg end)
(cond
((/= (gnus-soup-encoding-format
View
14 lisp/gnus-srvr.el
@@ -195,7 +195,7 @@ The following commands are available:
"Initialize the server buffer."
(unless (get-buffer gnus-server-buffer)
(save-excursion
- (set-buffer (get-buffer-create gnus-server-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-server-buffer))
(gnus-server-mode)
(when gnus-carpal
(gnus-carpal-setup-buffer 'server)))))
@@ -466,9 +466,12 @@ The following commands are available:
(defun gnus-server-scan-server (server)
"Request a scan from the current server."
(interactive (list (gnus-server-server-name)))
- (gnus-message 3 "Scanning %s...done" server)
- (gnus-request-scan nil (gnus-server-to-method server))
- (gnus-message 3 "Scanning %s...done" server))
+ (let ((method (gnus-server-to-method server)))
+ (if (not (gnus-get-function method 'request-scan))
+ (error "Server %s can't scan" (car method))
+ (gnus-message 3 "Scanning %s..." server)
+ (gnus-request-scan nil method)
+ (gnus-message 3 "Scanning %s...done" server))))
(defun gnus-server-read-server (server)
"Browse a server."
@@ -568,8 +571,7 @@ The following commands are available:
1 "Couldn't request list: %s" (gnus-status-message method))
nil)
(t
- (get-buffer-create gnus-browse-buffer)
- (gnus-add-current-to-buffer-list)
+ (gnus-get-buffer-create gnus-browse-buffer)
(when gnus-carpal
(gnus-carpal-setup-buffer 'browse))
(gnus-configure-windows 'browse)
View
14 lisp/gnus-start.el
@@ -586,6 +586,7 @@ the first newsgroup."
(defvar gnus-newsgroup-unreads)
(defvar nnoo-state-alist)
(defvar gnus-current-select-method)
+
(defun gnus-clear-system ()
"Clear all variables and buffers."
;; Clear Gnus variables.
@@ -629,8 +630,9 @@ the first newsgroup."
(kill-buffer (get-file-buffer (gnus-newsgroup-kill-file nil))))
(gnus-kill-buffer nntp-server-buffer)
;; Kill Gnus buffers.
- (while gnus-buffer-list
- (gnus-kill-buffer (pop gnus-buffer-list)))
+ (let ((buffers (gnus-buffers)))
+ (when buffers
+ (mapcar 'kill-buffer buffers)))
;; Remove Gnus frames.
(gnus-kill-gnus-frames))
@@ -780,9 +782,8 @@ prompt the user for the name of an NNTP server to use."
(let ((dribble-file (gnus-dribble-file-name)))
(save-excursion
(set-buffer (setq gnus-dribble-buffer
- (get-buffer-create
+ (gnus-get-buffer-create
(file-name-nondirectory dribble-file))))
- (gnus-add-current-to-buffer-list)
(erase-buffer)
(setq buffer-file-name dribble-file)
(auto-save-mode t)
@@ -2267,13 +2268,12 @@ If FORCE is non-nil, the .newsrc file is read."
(gnus-gnus-to-newsrc-format)
(gnus-message 8 "Saving %s...done" gnus-current-startup-file))
;; Save .newsrc.eld.
- (set-buffer (get-buffer-create " *Gnus-newsrc*"))
+ (set-buffer (gnus-get-buffer-create " *Gnus-newsrc*"))
(make-local-variable 'version-control)
(setq version-control 'never)
(setq buffer-file-name
(concat gnus-current-startup-file ".eld"))
(setq default-directory (file-name-directory buffer-file-name))
- (gnus-add-current-to-buffer-list)
(buffer-disable-undo (current-buffer))
(erase-buffer)
(gnus-message 5 "Saving %s.eld..." gnus-current-startup-file)
@@ -2415,7 +2415,7 @@ If FORCE is non-nil, the .newsrc file is read."
() ; There are no slave files to read.
(gnus-message 7 "Reading slave newsrcs...")
(save-excursion
- (set-buffer (get-buffer-create " *gnus slave*"))
+ (set-buffer (gnus-get-buffer-create " *gnus slave*"))
(buffer-disable-undo (current-buffer))
(setq slave-files
(sort (mapcar (lambda (file)
View
13 lisp/gnus-sum.el
@@ -1142,6 +1142,7 @@ increase the score of each group you read."
[delete] gnus-summary-prev-page
[backspace] gnus-summary-prev-page
"\r" gnus-summary-scroll-up
+ "\M-\r" gnus-summary-scroll-down
"n" gnus-summary-next-unread-article
"p" gnus-summary-prev-unread-article
"N" gnus-summary-next-article
@@ -1347,6 +1348,7 @@ increase the score of each group you read."
[delete] gnus-summary-prev-page
"p" gnus-summary-prev-page
"\r" gnus-summary-scroll-up
+ "\M-\r" gnus-summary-scroll-down
"<" gnus-summary-beginning-of-article
">" gnus-summary-end-of-article
"b" gnus-summary-beginning-of-article
@@ -2269,8 +2271,7 @@ marks of articles."
(setq gnus-summary-buffer (current-buffer))
(not gnus-newsgroup-prepared))
;; Fix by Sudish Joseph <joseph@cis.ohio-state.edu>
- (setq gnus-summary-buffer (set-buffer (get-buffer-create buffer)))
- (gnus-add-current-to-buffer-list)
+ (setq gnus-summary-buffer (set-buffer (gnus-get-buffer-create buffer)))
(gnus-summary-mode group)
(when gnus-carpal
(gnus-carpal-setup-buffer 'summary))
@@ -5763,6 +5764,12 @@ Argument LINES specifies lines to be scrolled up (or down if negative)."
(gnus-summary-recenter)
(gnus-summary-position-point))
+(defun gnus-summary-scroll-down (lines)
+ "Scroll down (or up) one line current article.
+Argument LINES specifies lines to be scrolled down (or up if negative)."
+ (interactive "p")
+ (gnus-summary-scroll-up (- lines)))
+
(defun gnus-summary-next-same-subject ()
"Select next article which has the same subject as current one."
(interactive)
@@ -7153,7 +7160,7 @@ latter case, they will be copied into the relevant groups."
(not (file-regular-p file))
(error "Can't read %s" file))
(save-excursion
- (set-buffer (get-buffer-create " *import file*"))
+ (set-buffer (gnus-get-buffer-create " *import file*"))
(buffer-disable-undo (current-buffer))
(erase-buffer)
(insert-file-contents file)
View
6 lisp/gnus-util.el
@@ -540,7 +540,7 @@ Timezone package is used."
(progn
(set-buffer gnus-work-buffer)
(erase-buffer))
- (set-buffer (get-buffer-create gnus-work-buffer))
+ (set-buffer (gnus-get-buffer-create gnus-work-buffer))
(kill-all-local-variables)
(buffer-disable-undo (current-buffer))))
@@ -723,7 +723,7 @@ with potentially long computations."
(setq filename (expand-file-name filename))
(setq rmail-default-rmail-file filename)
(let ((artbuf (current-buffer))
- (tmpbuf (get-buffer-create " *Gnus-output*")))
+ (tmpbuf (gnus-get-buffer-create " *Gnus-output*")))
(save-excursion
(or (get-file-buffer filename)
(file-exists-p filename)
@@ -771,7 +771,7 @@ with potentially long computations."
"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*")))
+ (tmpbuf (gnus-get-buffer-create " *Gnus-output*")))
(save-excursion
;; Create the file, if it doesn't exist.
(when (and (not (get-file-buffer filename))
View
28 lisp/gnus-uu.el
@@ -517,8 +517,8 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(gnus-setup-message 'forward
(setq gnus-uu-digest-from-subject nil)
(gnus-uu-decode-save n file)
- (setq buf (switch-to-buffer (get-buffer-create " *gnus-uu-forward*")))
- (gnus-add-current-to-buffer-list)
+ (setq buf (switch-to-buffer
+ (gnus-get-buffer-create " *gnus-uu-forward*")))
(erase-buffer)
(insert-file file)
(let ((fs gnus-uu-digest-from-subject))
@@ -834,10 +834,10 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(eq in-state 'first-and-last))
(progn
(setq state (list 'begin))
- (save-excursion (set-buffer (get-buffer-create "*gnus-uu-body*"))
+ (save-excursion (set-buffer (gnus-get-buffer-create "*gnus-uu-body*"))
(erase-buffer))
(save-excursion
- (set-buffer (get-buffer-create "*gnus-uu-pre*"))
+ (set-buffer (gnus-get-buffer-create "*gnus-uu-pre*"))
(erase-buffer)
(insert (format
"Date: %s\nFrom: %s\nSubject: %s Digest\n\nTopics:\n"
@@ -970,7 +970,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(if (not (re-search-forward gnus-uu-postscript-end-string nil t))
(setq state (list 'wrong-type))
(setq end-char (point))
- (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+ (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
(insert-buffer-substring process-buffer start-char end-char)
(setq file-name (concat gnus-uu-work-dir
(cdr gnus-article-current) ".ps"))
@@ -1025,7 +1025,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
;; finally just replaces the next to last number with "[0-9]+".
(let ((count 2))
(save-excursion
- (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+ (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
(buffer-disable-undo (current-buffer))
(erase-buffer)
(insert (regexp-quote string))
@@ -1126,7 +1126,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(let ((out-list string-list)
string)
(save-excursion
- (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+ (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
(buffer-disable-undo (current-buffer))
(while string-list
(erase-buffer)
@@ -1419,7 +1419,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(setq gnus-uu-uudecode-process
(start-process
"*uudecode*"
- (get-buffer-create gnus-uu-output-buffer-name)
+ (gnus-get-buffer-create gnus-uu-output-buffer-name)
shell-file-name shell-command-switch
(format "cd %s %s uudecode" gnus-uu-work-dir
gnus-shell-command-separator))))
@@ -1485,7 +1485,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(setq start-char (point))
(call-process-region
start-char (point-max) shell-file-name nil
- (get-buffer-create gnus-uu-output-buffer-name) nil
+ (gnus-get-buffer-create gnus-uu-output-buffer-name) nil
shell-command-switch
(concat "cd " gnus-uu-work-dir " "
gnus-shell-command-separator " sh"))))
@@ -1548,13 +1548,13 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(setq command (format "cd %s ; %s" dir (gnus-uu-command action file-path)))
(save-excursion
- (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+ (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
(erase-buffer))
(gnus-message 5 "Unpacking: %s..." (gnus-uu-command action file-path))
(if (= 0 (call-process shell-file-name nil
- (get-buffer-create gnus-uu-output-buffer-name)
+ (gnus-get-buffer-create gnus-uu-output-buffer-name)
nil shell-command-switch command))
(message "")
(gnus-message 2 "Error during unpacking of archive")
@@ -1912,7 +1912,7 @@ If no file has been included, the user will be asked for a file."
(unwind-protect
(if (save-excursion
(set-buffer (setq uubuf
- (get-buffer-create uuencode-buffer-name)))
+ (gnus-get-buffer-create uuencode-buffer-name)))
(erase-buffer)
(funcall gnus-uu-post-encode-method file-path file-name))
(insert-buffer-substring uubuf)
@@ -1945,7 +1945,7 @@ If no file has been included, the user will be asked for a file."
(setq end-binary (point-max))
(save-excursion
- (set-buffer (setq uubuf (get-buffer-create encoded-buffer-name)))
+ (set-buffer (setq uubuf (gnus-get-buffer-create encoded-buffer-name)))
(erase-buffer)
(insert-buffer-substring post-buf beg-binary end-binary)
(goto-char (point-min))
@@ -1977,7 +1977,7 @@ If no file has been included, the user will be asked for a file."
(setq i 1)
(setq beg 1)
(while (not (> i parts))
- (set-buffer (get-buffer-create send-buffer-name))
+ (set-buffer (gnus-get-buffer-create send-buffer-name))
(erase-buffer)
(insert header)
(when (and threaded gnus-uu-post-message-id)
View
47 lisp/gnus-win.el
@@ -319,7 +319,7 @@ See the Gnus manual for an explanation of the syntax used.")
(t (cdr (assq type gnus-window-to-buffer))))))
(unless buffer
(error "Illegal buffer type: %s" type))
- (switch-to-buffer (get-buffer-create
+ (switch-to-buffer (gnus-get-buffer-create
(gnus-window-to-buffer-helper buffer)))
(when (memq 'frame-focus split)
(setq gnus-window-frame-focus window))
@@ -453,13 +453,7 @@ See the Gnus manual for an explanation of the syntax used.")
(defun gnus-delete-windows-in-gnusey-frames ()
"Do a `delete-other-windows' in all frames that have Gnus windows."
- (let ((buffers
- (mapcar
- (lambda (elem)
- (let ((buf (gnus-window-to-buffer-helper (cdr elem))))
- (if (not (null buf))
- (get-buffer buf))))
- gnus-window-to-buffer)))
+ (let ((buffers (gnus-buffers)))
(mapcar
(lambda (frame)
(unless (eq (cdr (assq 'minibuffer
@@ -523,39 +517,22 @@ should have point."
(nth 1 (window-edges window)))
(defun gnus-remove-some-windows ()
- (let ((buffers gnus-window-to-buffer)
+ (let ((buffers (gnus-buffers))
buf bufs lowest-buf lowest)
(save-excursion
;; Remove windows on all known Gnus buffers.
- (while buffers
- (and (setq buf (gnus-window-to-buffer-helper (cdar buffers)))
- (get-buffer-window buf)
- (progn
- (push buf bufs)
- (pop-to-buffer buf)
- (when (or (not lowest)
- (< (gnus-window-top-edge) lowest))
- (setq lowest (gnus-window-top-edge))
- (setq lowest-buf buf))))
- (setq buffers (cdr buffers)))
- ;; Remove windows on *all* summary buffers.
- (walk-windows
- (lambda (win)
- (let ((buf (window-buffer win)))
- (when (string-match "^\\*\\(Dead \\)?Summary" (buffer-name buf))
- (push buf bufs)
- (pop-to-buffer buf)
- (when (or (not lowest)
- (< (gnus-window-top-edge) lowest))
- (setq lowest-buf buf)
- (setq lowest (gnus-window-top-edge)))))))
+ (while (setq buf (pop buffers))
+ (when (get-buffer-window buf)
+ (push buf bufs)
+ (pop-to-buffer buf)
+ (when (or (not lowest)
+ (< (gnus-window-top-edge) lowest))
+ (setq lowest (gnus-window-top-edge)
+ lowest-buf buf))))
(when lowest-buf
(pop-to-buffer lowest-buf)
(switch-to-buffer nntp-server-buffer))
- (while bufs
- (when (not (eq (car bufs) lowest-buf))
- (delete-windows-on (car bufs)))
- (setq bufs (cdr bufs))))))
+ (mapcar (lambda (b) (delete-windows-on b t)) bufs))))
(provide 'gnus-win)
View
1  lisp/gnus-xmas.el
@@ -90,7 +90,6 @@ asynchronously. The compressed face will be piped to this command."
(defvar gnus-active-hashtb)
(defvar gnus-article-buffer)
(defvar gnus-auto-center-summary)
-(defvar gnus-buffer-list)
(defvar gnus-current-headers)
(defvar gnus-level-killed)
(defvar gnus-level-zombie)
View
49 lisp/gnus.el
@@ -250,7 +250,7 @@ is restarted, and sometimes reloaded."
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "5.6.34"
+(defconst gnus-version-number "5.6.35"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
@@ -620,7 +620,7 @@ be set in `.emacs' instead."
(defun gnus-splash ()
(save-excursion
- (switch-to-buffer (get-buffer-create gnus-group-buffer))
+ (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer))
(let ((buffer-read-only nil))
(erase-buffer)
(unless gnus-inhibit-startup-message
@@ -688,9 +688,10 @@ be set in `.emacs' instead."
(eval-when (load)
(let ((command (format "%s" this-command)))
- (when (and (string-match "gnus" command)
- (not (string-match "gnus-other-frame" command)))
- (gnus-splash))))
+ (if (and (string-match "gnus" command)
+ (not (string-match "gnus-other-frame" command)))
+ (gnus-splash)
+ (get-buffer-create gnus-group-buffer))))
;;; Do the rest.
@@ -753,7 +754,7 @@ used to 899, you would say something along these lines:
(or (getenv "NNTPSERVER")
(and (file-readable-p gnus-nntpserver-file)
(save-excursion
- (set-buffer (get-buffer-create " *gnus nntp*"))
+ (set-buffer (gnus-get-buffer-create " *gnus nntp*"))
(buffer-disable-undo (current-buffer))
(insert-file-contents gnus-nntpserver-file)
(let ((name (buffer-string)))
@@ -1466,9 +1467,6 @@ want."
(defvar gnus-article-buffer "*Article*")
(defvar gnus-server-buffer "*Server*")
-(defvar gnus-buffer-list nil
- "Gnus buffers that should be killed on exit.")
-
(defvar gnus-slave nil
"Whether this Gnus is a slave or not.")
@@ -1927,11 +1925,39 @@ This restriction may disappear in later versions of Gnus."
(when (memq symbol (cdr entry))
(funcall (car entry))))))
+;;;
+;;; Gnus buffers
+;;;
+
+(defvar gnus-buffers nil)
+
+(defun gnus-get-buffer-create (name)
+ "Do the same as `get-buffer-create', but store the created buffer."
+ (or (get-buffer name)
+ (car (push (get-buffer-create name) gnus-buffers))))
+
+(defun gnus-add-buffer ()
+ "Add the current buffer to the list of Gnus buffers."
+ (push (current-buffer) gnus-buffers))
+
+(defun gnus-buffers ()
+ "Return a list of live Gnus buffers."
+ (while (and gnus-buffers
+ (not (buffer-name (car gnus-buffers))))
+ (pop gnus-buffers))
+ (let ((buffers gnus-buffers))
+ (while (cdr buffers)
+ (if (buffer-name (cadr buffers))
+ (pop buffers)
+ (setcdr buffers (cddr buffers)))))
+ gnus-buffers)
+
;;;
;;; Gnus Utility Functions
;;;
+
(defmacro gnus-string-or (&rest strings)
"Return the first element of STRINGS that is a non-blank string.
STRINGS will be evaluated in normal `or' order."
@@ -1946,11 +1972,6 @@ STRINGS will be evaluated in normal `or' order."
(setq strings nil)))
string))
-;; Add the current buffer to the list of buffers to be killed on exit.
-(defun gnus-add-current-to-buffer-list ()
- (or (memq (current-buffer) gnus-buffer-list)
- (push (current-buffer) gnus-buffer-list)))
-
(defun gnus-version (&optional arg)
"Version number of this version of Gnus.
If ARG, insert string at point."
View
104 lisp/message.el
@@ -297,6 +297,27 @@ If t, use `message-user-organization-file'."
:group 'message-forwarding
:type 'regexp)
+(defcustom message-make-forward-subject-function
+ 'message-forward-subject-author-subject
+ "*A list of functions that are called to generate a subject header for forwarded messages.
+The subject generated by the previous function is passed into each
+successive function.
+
+The provided functions are:
+
+* message-forward-subject-author-subject (Source of article (author or
+ newsgroup)), in brackets followed by the subject
+* message-forward-subject-fwd (Subject of article with 'Fwd:' prepended
+ to it."
+ :group 'message-forwarding
+ :type '(radio (function-item message-forward-subject-author-subject)
+ (function-item message-forward-subject-fwd)))
+
+(defcustom message-wash-forwarded-subjects nil
+ "*If non-nil, try to remove as much old cruft as possible from the subject of messages before generating the new subject of a forward."
+ :group 'message-forwarding
+ :type 'boolean)
+
(defcustom message-ignored-resent-headers "^Return-receipt"
"*All headers that match this regexp will be deleted when resending a message."
:group 'message-interface
@@ -397,6 +418,7 @@ might set this variable to '(\"-f\" \"you@some.where\")."
(defvar gnus-select-method)
(defcustom message-post-method
(cond ((and (boundp 'gnus-post-method)
+ (listp gnus-post-method)
gnus-post-method)
gnus-post-method)
((boundp 'gnus-select-method)
@@ -1416,6 +1438,12 @@ C-c C-r message-caesar-buffer-body (rot13 the message body)."
(goto-char (point-min))
(search-forward (concat "\n" mail-header-separator "\n") nil t))
+(defun message-goto-eoh ()
+ "Move point to the end of the headers."
+ (interactive)
+ (message-goto-body)
+ (forward-line -2))
+
(defun message-goto-signature ()
"Move point to the beginning of the message signature.
If there is no signature in the article, go to the end and
@@ -1931,7 +1959,12 @@ the user from the mailer."
;; Make sure there's a newline at the end of the message.
(goto-char (point-max))
(unless (bolp)
- (insert "\n")))
+ (insert "\n"))
+ ;; Delete all invisible text.
+ (when (text-property-any (point-min) (point-max) 'invisible t)
+ (put-text-property (point-min) (point-max) 'invisible nil)
+ (unless (yes-or-no-p "Invisible text found and made visible; continue posting?")
+ (error "Invisible text found and made visible"))))
(defun message-add-action (action &rest types)
"Add ACTION to be performed when doing an exit of type TYPES."
@@ -3537,18 +3570,79 @@ header line with the old Message-ID."
(insert-file-contents file-name nil)))
(t (error "message-recover cancelled")))))
+;;; Washing Subject:
+
+(defun message-wash-subject (subject)
+ "Remove junk like \"Re:\", \"(fwd)\", etc. that was added to the subject by previous forwarders, replyers, etc."
+ (nnheader-temp-write nil
+ (insert-string subject)
+ (goto-char (point-min))
+ ;; strip Re/Fwd stuff off the beginning
+ (while (re-search-forward
+ "\\([Rr][Ee]:\\|[Ff][Ww][Dd]:\\|[Ff][Ww]:\\)" nil t)
+ (replace-match ""))
+
+ ;; and gnus-style forwards [foo@bar.com] subject
+ (goto-char (point-min))
+ (while (re-search-forward "\\[[^ \t]*\\(@\\|\\.\\)[^ \t]*\\]" nil t)
+ (replace-match ""))
+
+ ;; and off the end
+ (goto-char (point-max))
+ (while (re-search-backward "([Ff][Ww][Dd])" nil t)
+ (replace-match ""))
+
+ ;; and finally, any whitespace that was left-over
+ (goto-char (point-min))
+ (while (re-search-forward "^[ \t]+" nil t)
+ (replace-match ""))
+ (goto-char (point-max))
+ (while (re-search-backward "[ \t]+$" nil t)
+ (replace-match ""))
+
+ (buffer-string)))
+
;;; Forwarding messages.
+(defun message-forward-subject-author-subject (subject)
+ "Generate a subject for a forwarded message.
+The form is: [Source] Subject, where if the original message was mail,
+Source is the sender, and if the original message was news, Source is
+the list of newsgroups is was posted to."
+ (concat "["
+ (or (message-fetch-field
+ (if (message-news-p) "newsgroups" "from"))
+ "(nowhere)")
+ "] " subject))
+
+(defun message-forward-subject-fwd (subject)
+ "Generate a subject for a forwarded message.
+The form is: Fwd: Subject, where Subject is the original subject of
+the message."
+ (concat "Fwd: " subject))
+
(defun message-make-forward-subject ()
"Return a Subject header suitable for the message in the current buffer."
(save-excursion
(save-restriction
(current-buffer)
(message-narrow-to-head)
- (concat "[" (or (message-fetch-field
- (if (message-news-p) "newsgroups" "from"))
- "(nowhere)")
- "] " (or (message-fetch-field "Subject") "")))))
+ (let ((funcs message-make-forward-subject-function)
+ (subject (if message-wash-forwarded-subjects
+ (message-wash-subject
+ (or (message-fetch-field "Subject") ""))
+ (or (message-fetch-field "Subject") ""))))
+ ;; Make sure funcs is a list.
+ (and funcs
+ (not (listp funcs))
+ (setq funcs (list funcs)))
+ ;; Apply funcs in order, passing subject generated by previous
+ ;; func to the next one.
+ (while funcs
+ (when (message-functionp (car funcs))
+ (setq subject (funcall (car funcs) subject)))
+ (setq funcs (cdr funcs)))
+ subject))))
;;;###autoload
(defun message-forward (&optional news)
View
2  lisp/nndir.el
@@ -89,7 +89,7 @@
(nnoo-map-functions nndir
(nnml-retrieve-headers 0 nndir-current-group 0 0)
(nnml-request-article 0 nndir-current-group 0 0)
- (nnml-request-group nndir-current-group 0 0)
+ (nnmh-request-group nndir-current-group 0 0)
(nnml-close-group nndir-current-group 0)
(nnml-request-list (nnoo-current-server 'nndir) nndir-directory)
(nnml-request-newsgroups (nnoo-current-server 'nndir) nndir-directory))
View
2  lisp/nnmail.el
@@ -1154,7 +1154,7 @@ FUNC will be called with the group name to determine the article number."
(let ((trace (nreverse nnmail-split-trace))
(restore (current-buffer)))
(nnheader-set-temp-buffer "*Split Trace*")
- (gnus-add-current-to-buffer-list)
+ (gnus-add-buffer)
(while trace
(insert (car trace) "\n")
(setq trace (cdr trace)))
View
9 lisp/nntp.el
@@ -400,7 +400,7 @@ server there that you can connect to. See also
(if (re-search-forward "\n\\.\r?\n" nil t)
t
nil))
- ;; A result that startx with a 3xx or 4xx code is terminated
+ ;; A result that starts with a 3xx or 4xx code is terminated
;; by a newline.
((looking-at "[34]")
(if (search-forward "\n" nil t)
@@ -585,7 +585,7 @@ server there that you can connect to. See also
(nnheader-message 6 "NNTP: Receiving articles...done"))
;; Now we have all the responses. We go through the results,
- ;; washes it and copies it over to the server buffer.
+ ;; wash it and copy it over to the server buffer.
(set-buffer nntp-server-buffer)
(erase-buffer)
(setq last-point (point-min))
@@ -1001,10 +1001,7 @@ password contained in '~/.nntp-authinfo'."
(while (not (eobp))
(end-of-line)
(delete-char 1)
- (insert nntp-end-of-line))
- (forward-char -1)
- (unless (eq (char-after (1- (point))) ?\r)
- (insert "\r"))))
+ (insert nntp-end-of-line))))
(defun nntp-retrieve-headers-with-xover (articles &optional fetch-old)
(set-buffer nntp-server-buffer)
View
17 texi/ChangeLog
@@ -1,3 +1,20 @@
+1998-08-13 21:17:00 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Paging the Article): Addition.
+
+1998-08-13 00:13:47 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus.texi (Mail Group Commands): Typo.
+
+1998-08-12 21:28:09 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus.texi (Article Caching): gnus-cacheable-groups.
+ (Newest Features): remove gnus-cacheable-groups.
+
+1998-08-12 22:01:12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * message.texi (Forwarding): Addition.
+
1998-08-11 20:33:53 Justin Zaglio <justin@caxton.com>
* gnus.texi (Group Maintenance): Fix.
View
37 texi/gnus.texi
@@ -3693,6 +3693,12 @@ Scroll the current article back one page (@code{gnus-summary-prev-page}).
Scroll the current article one line forward
(@code{gnus-summary-scroll-up}).
+@item M-RET
+@kindex M-RET (Summary)
+@findex gnus-summary-scroll-down
+Scroll the current article one line backward
+(@code{gnus-summary-scroll-down}).
+
@item A g
@itemx g
@kindex A g (Summary)
@@ -5290,13 +5296,17 @@ to score unwanted articles down and have them marked as read. They will
not then be downloaded by this command.
@vindex gnus-uncacheable-groups
-It is likely that you do not want caching on some groups. For instance,
+@vindex gnus-cacheable-groups
+It is likely that you do not want caching on all groups. For instance,
if your @code{nnml} mail is located under your home directory, it makes no
sense to cache it somewhere else under your home directory. Unless you
-feel that it's neat to use twice as much space. To limit the caching,
-you could set the @code{gnus-uncacheable-groups} regexp to
-@samp{^nnml}, for instance. This variable is @code{nil} by
-default.
+feel that it's neat to use twice as much space.
+
+To limit the caching, you could set @code{gnus-cacheable-groups} to a
+regexp of groups to cache, @samp{^nntp} for instance, or set the
+@code{gnus-uncacheable-groups} regexp to @samp{^nnml}, for instance.
+Both variables are @code{nil} by default. If a group matches both
+variables, the group is not cached.
@findex gnus-cache-generate-nov-databases
@findex gnus-cache-generate-active
@@ -7213,7 +7223,7 @@ name, a @code{From} header and a @code{Subject} header.
@item B r
@kindex B r (Summary)
@findex gnus-summary-respool-article
-Respool the mail article (@code{gnus-summary-move-article}).
+Respool the mail article (@code{gnus-summary-respool-article}).
@code{gnus-summary-respool-default-method} will be used as the default
select method when respooling. This variable is @code{nil} by default,
which means that the current group select method will be used instead.
@@ -8378,9 +8388,10 @@ to @dfn{match}.
Each style may contain a arbitrary amount of @dfn{attributes}. Each
attribute consists of a @var{(name . value)} pair. The attribute name
can be one of @code{signature}, @code{signature-file},
-@code{organization}, @code{address} or @code{name}. The attribute name
-can also be a string. In that case, this will be used as a header name,
-and the value will be inserted in the headers of the article.
+@code{organization}, @code{address}, @code{name} or @code{body}. The
+attribute name can also be a string. In that case, this will be used as
+a header name, and the value will be inserted in the headers of the
+article.
The attribute value can be a string (used verbatim), a function (the
return value will be used), a variable (its value will be used) or a
@@ -8402,6 +8413,7 @@ So here's a new example:
(posting-from-work-p
(signature-file "~/.work-signature")
(address "user@@bar.foo")
+ (body "You are fired.\n\nSincerely, your boss.")
(organization "Important Work, Inc"))
("^nn.+:"
(signature-file "~/.mail-signature"))))
@@ -17611,9 +17623,6 @@ Mac, MS (etc) characters into ISO 8859-1.
numbers and match on the age of the article.
@item
- gnus-cacheable-groups
-
-@item
@example
> > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
> > > under xemacs-19.14, it's creating a new frame, but is erasing the
@@ -17781,6 +17790,10 @@ summary buffer for each article.
Implement gnus-batch-brew-soup.
@item
+Group parameters and summary commands for un/subscribing to mailing
+lists.
+
+@item
Solve the halting problem.
@c TODO
View
18 texi/message.texi
@@ -267,6 +267,24 @@ forwarded message will be inserted first in the new mail.
@vindex message-included-forward-headers
Regexp matching header lines to be included in forwarded messages.
+@item message-make-forward-subject-function
+@vindex message-make-forward-subject-function
+A list of functions that are called to generate a subject header for
+forwarded messages. The subject generated by the previous function is
+passed into each successive function.
+
+The provided functions are:
+
+@table @code
+@item message-forward-subject-author-subject
+@findex message-forward-subject-author-subject
+Source of article (author or newsgroup), in brackets followed by the
+subject.
+
+@item message-forward-subject-fwd
+Subject of article with @samp{Fwd:} prepended to it.
+@end table
+
@end table
Please sign in to comment.
Something went wrong with that request. Please try again.