+Mon Feb 10 14:19:55 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.4.12 is released.
+
+Mon Feb 10 12:47:41 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-fetch-field): Accept an optional param.
+ (message-reply): Only fetch the first Message-ID.
+
+ * gnus-score.el (gnus-summary-score-effect): Update mode line.
+
+Mon Feb 10 12:32:38 1997 Hrvoje Niksic <hniksic@srce.hr>
+
+ * gnus-art.el: Simplify.
+
+Mon Feb 10 12:23:48 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-summary-prev-page): Don't scroll when the
+ article buffer isn't visible.
+
+ * gnus.el ((featurep 'gnus-xmas)): Removed
+ `gnus-make-local-hook'.
+
+Mon Feb 10 12:08:31 1997 Adrian Aichner <aichner@ecf.teradyne.com>
+
+ * gnus-util.el (gnus-turn-off-edit-menu): Doc fix.
+
+Mon Feb 10 07:42:37 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-summary-prepare-unthreaded): Make sure point
+ is at bol.
+
+ * gnus-srvr.el (gnus-browse-mode-map): Define gnus-bug.
+ (gnus-server-mode-map): Ditto.
+
+ * gnus-sum.el (gnus-summary-edit-article-done): Update original
+ article buffer.
+
+ * gnus-uu.el (gnus-uu-digest-mail-forward): Restore window
+ config.
+
+ * nnmail.el (nnmail-move-inbox): Make sure tofile exists before
+ setting modes.
+
+ * gnus-xmas.el (gnus-xmas-region-active-p): New function.
+
+ * gnus-ems.el (gnus-region-active-p): New function.
+
+Mon Feb 10 07:40:45 1997 Hrvoje Niksic <hniksic@srce.hr>
+
+ * gnus-sum.el (gnus-summary-work-articles): Use zmacs-region.
+
+Mon Feb 10 07:06:44 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-mode): Nix out all local variables.
+
+ * gnus-art.el (gnus-summary-save-in-mail): Don't ask.
+
+ * gnus-sum.el (gnus-ps-print-hook): New hook.
+ (gnus-summary-print-article): Use it.
+
+ * message.el (message-reply): Make sure there is something
+ inserted as a To.
+
+Mon Feb 10 05:54:28 1997 Paul Franklin <paul@cs.washington.edu>
+
+ * gnus-group.el (gnus-group-edit-group): Ignore errors while
+ closing group.
+
+Mon Feb 10 05:22:09 1997 Steven L. Baur <steve@miranova.com>
+
+ * messagexmas.el (message-xmas-maybe-fontify): New function.
+ (message-mode-hook): Use it.
+
+Sat Feb 8 21:18:25 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-user-organization): Only use string values
+ of `gnus-local-organization'.
+
+Tue Feb 4 20:26:20 1997 Paul Franklin <paul@cs.washington.edu>
+
+ * nnmail.el (nnmail-get-spool-files): Don't call file-directory-p
+ on pop spool specifiers.
+
+Wed Feb 5 01:56:07 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-delete-mh-headers): Changed default.
+ (message-send-mail-with-mh): Use it.
+ (message-mh-deletable-headers): Renamed.
+
+ * gnus-sum.el (gnus-read-header): Don't do anything if the article
+ can't be requested.
+
+Wed Feb 5 01:51:07 1997 Joev Dubach <dubach1@husc.harvard.edu>
+
+ * gnus-sum.el (gnus-select-newsgroup): Update group line.
+
+Tue Feb 4 20:23:30 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-util.el (gnus-output-to-mail): Insert a newline before the
+ "From ".
+
+ * nnml.el (nnml-request-move-article): Update active ranges.
+ (nnml-nov-delete-article): Update active ranges.
+
+Tue Feb 4 17:54:09 1997 HISASHIGE Kenji <hysa@adtec.ed.fujitsu.co.jp>
+
+ * gnus-msg.el (gnus-summary-reply-with-original): Pass on the
+ `wide' param.
+
Tue Feb 4 03:49:59 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.4.11 is released.
'(("_" "_" underline)
("/" "/" italic)
("\\*" "\\*" bold)
- ("_/" "/_" underline-italic)
- ("_\\*" "\\*_" underline-bold)
+ ;;("_/" "/_" underline-italic)
+ ;;("_\\*" "\\*_" underline-bold)
("\\*/" "/\\*" bold-italic)
- ("_\\*/" "/\\*_" underline-bold-italic))))
+ ;;("_\\*/" "/\\*_" underline-bold-italic)
+ )))
`(("\\(\\s-\\|^\\)\\(_\\(\\(\\w\\|_[^_]\\)+\\)_\\)\\(\\s-\\|[?!.,;]\\)"
2 3 gnus-emphasis-underline)
,@(mapcar
(if (and (file-readable-p filename)
(mail-file-babyl-p filename))
(gnus-output-to-rmail filename t)
- (gnus-output-to-mail filename t)))))
+ (gnus-output-to-mail filename)))))
;; Remember the directory name to save articles.
(setq gnus-newsgroup-last-mail filename)))
(insert " " gnus-tmp-subject-or-nil "\n"))
)))
+(defun gnus-region-active-p ()
+ "Say whether the region is active."
+ (and (boundp 'transient-mark-mode)
+ transient-mark-mode
+ (boundp 'mark-active)
+ mark-active))
(provide 'gnus-ems)
(if (null arg) (not gnus-grouplens-mode)
(> (prefix-numeric-value arg) 0)))
(when gnus-grouplens-mode
- (gnus-make-local-hook 'gnus-select-article-hook)
+ (make-local-hook 'gnus-select-article-hook)
(gnus-add-hook 'gnus-select-article-hook 'grouplens-do-time nil 'local)
- (gnus-make-local-hook 'gnus-exit-group-hook)
+ (make-local-hook 'gnus-exit-group-hook)
(gnus-add-hook 'gnus-exit-group-hook 'bbb-exit-group nil 'local)
(make-local-variable 'gnus-score-find-score-files-function)
(gnus-set-default-directory)
(gnus-update-format-specifications nil 'group 'group-mode)
(gnus-update-group-mark-positions)
- (gnus-make-local-hook 'post-command-hook)
+ (make-local-hook 'post-command-hook)
(gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
(when gnus-use-undo
(gnus-undo-mode 1))
(error "No group on current line"))
(unless (setq info (gnus-get-info group))
(error "Killed group; can't be edited"))
- (gnus-close-group group)
+ (ignore-errors
+ (gnus-close-group group))
(gnus-edit-form
;; Find the proper form to edit.
(cond ((eq part 'method)
(gnus-configure-windows ,config t))))
(defun gnus-inews-add-send-actions (winconf buffer article)
- (gnus-make-local-hook 'message-sent-hook)
+ (make-local-hook 'message-sent-hook)
(gnus-add-hook 'message-sent-hook 'gnus-inews-do-gcc nil t)
(setq message-post-method
`(lambda (arg)
"Start composing a reply mail to the current message.
The original article will be yanked."
(interactive "P")
- (gnus-summary-reply (gnus-summary-work-articles n)))
+ (gnus-summary-reply (gnus-summary-work-articles n) wide))
(defun gnus-summary-wide-reply (&optional yank)
"Start composing a wide reply mail to the current message.
regexp)
(string-match regexp content))
(gnus-summary-raise-score score))))
- (beginning-of-line 2)))))
+ (beginning-of-line 2))))
+ (gnus-set-mode-line 'summary))
(defun gnus-summary-score-crossposting (score date)
;; Enter score file entry for current crossposting.
"g" gnus-server-regenerate-server
- "\C-c\C-i" gnus-info-find-node))
+ "\C-c\C-i" gnus-info-find-node
+ "\C-c\C-b" gnus-bug))
(defun gnus-server-mode ()
"Major mode for listing and editing servers.
"\C-c\C-c" gnus-browse-exit
"?" gnus-browse-describe-briefly
- "\C-c\C-i" gnus-info-find-node))
+ "\C-c\C-i" gnus-info-find-node
+ "\C-c\C-b" gnus-bug))
(defun gnus-browse-make-menu-bar ()
(gnus-turn-off-edit-menu 'browse)
:group 'gnus-group-select
:type 'hook)
+(defcustom gnus-ps-print-hook nil
+ "*A hook run before ps-printing something from Gnus."
+ :group 'gnus-summary
+ :type 'hook)
+
(defcustom gnus-summary-selected-face 'gnus-summary-selected-face
"Face used for highlighting the current article in the summary buffer."
:group 'gnus-summary-visual
:type '(repeat (cons (sexp :tag "Form" nil)
face)))
+
;;; Internal variables
(defvar gnus-scores-exclude-files nil)
(make-local-variable 'gnus-summary-line-format)
(make-local-variable 'gnus-summary-line-format-spec)
(make-local-variable 'gnus-summary-mark-positions)
- (gnus-make-local-hook 'post-command-hook)
+ (make-local-hook 'post-command-hook)
(gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
(run-hooks 'gnus-summary-mode-hook)
(gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy)
"Generate an unthreaded summary buffer based on HEADERS."
(let (header number mark)
+ (beginning-of-line)
+
(while headers
;; We may have to root out some bad articles...
(when (memq (setq number (mail-header-number
(setq gnus-newsgroup-processable nil)
+ (gnus-update-read-articles group gnus-newsgroup-unreads)
+ (unless (gnus-ephemeral-group-p gnus-newsgroup-name)
+ (gnus-group-update-group group))
+
(setq articles (gnus-articles-to-read group read-all))
(cond
(gnus-summary-find-next nil article)))
(decf n)))
(nreverse articles)))
- ((and (boundp 'transient-mark-mode)
- transient-mark-mode
- (boundp 'mark-active)
- mark-active)
+ ((gnus-region-active-p)
;; Work on the region between point and mark.
(let ((max (max (point) (mark)))
articles article)
Argument LINES specifies lines to be scrolled down."
(interactive "P")
(gnus-set-global-variables)
- (let ((article (gnus-summary-article-number)))
+ (let ((article (gnus-summary-article-number))
+ (article-window (get-buffer-window gnus-article-buffer)))
(gnus-configure-windows 'article)
(if (or (null gnus-current-article)
(null gnus-article-current)
;; Selected subject is different from current article's.
(gnus-summary-display-article article)
(gnus-summary-recenter)
- (gnus-eval-in-buffer-window gnus-article-buffer
- (gnus-article-prev-page lines))))
+ (when article-window
+ (gnus-eval-in-buffer-window gnus-article-buffer
+ (gnus-article-prev-page lines)))))
(gnus-summary-position-point))
(defun gnus-summary-scroll-up (lines)
(copy-to-buffer buffer (point-min) (point-max))
(set-buffer buffer)
(gnus-article-delete-invisible-text)
+ (run-hooks 'gnus-ps-print-hook)
(ps-print-buffer-with-faces filename))
(kill-buffer buffer)))))
(memq article gnus-newsgroup-dormant)
(memq article gnus-newsgroup-unreads)))
+ (when (and (equal to-group gnus-newsgroup-name)
+ (not (memq article gnus-newsgroup-unreads)))
+ ;; Mark this article as read in this group.
+ (push (cons to-article gnus-read-mark) gnus-newsgroup-reads)
+ (setcdr (gnus-active to-group) to-article)
+ (setcdr gnus-newsgroup-active to-article))
+
(while marks
(when (memq article (symbol-value
(intern (format "gnus-newsgroup-%s"
(symbol-value
(intern (format "gnus-newsgroup-%s"
(caar marks)))))))
- ;; Copy mark to other group.
+ ;; Copy the marks to other group.
(gnus-add-marked-articles
to-group (cdar marks) (list to-article) info))
(setq marks (cdr marks)))))
;; Prettify the article buffer again.
(save-excursion
(set-buffer gnus-article-buffer)
- (run-hooks 'gnus-article-display-hook))
+ (run-hooks 'gnus-article-display-hook)
+ (set-buffer gnus-original-article-buffer)
+ (gnus-request-article
+ (cdr gnus-article-current) (car gnus-article-current) (current-buffer)))
;; Prettify the summary buffer line.
(when (gnus-visual-p 'summary-highlight 'highlight)
(run-hooks 'gnus-visual-mark-article-hook))))
(t gnus-reffed-article-number))
(current-buffer))
(insert " Article retrieved.\n"))
- (if (not (setq header (car (gnus-get-newsgroup-headers nil t))))
+ (if (or (not where)
+ (not (setq header (car (gnus-get-newsgroup-headers nil t)))))
() ; Malformed head.
(unless (gnus-summary-article-sparse-p (mail-header-number header))
(when (and (stringp id)
(point-max (point-max))
(unread 0)
(topic (car type))
- info entry end active)
+ info entry end active tick)
;; Insert any sub-topics.
(while topicl
(incf unread
(not (member (gnus-info-group (setq info (nth 2 entry)))
gnus-topic-tallied-groups)))
(push (gnus-info-group info) gnus-topic-tallied-groups)
- (incf unread (car entry))))
+ (incf unread (car entry)))
+ (when (and (listp entry)
+ (numberp (car entry)))
+ (setq tick t)))
(goto-char beg)
;; Insert the topic line.
(when (and (not silent)
- (or gnus-topic-display-empty-topics
- (not (zerop unread))
- (/= point-max (point-max))))
+ (or gnus-topic-display-empty-topics ;We want empty topics
+ (not (zerop unread)) ;Non-empty
+ tick ;Ticked articles
+ (/= point-max (point-max)))) ;Unactivated groups
(gnus-extent-start-open (point))
(gnus-topic-insert-topic-line
(car type) visiblep
'gnus-group-sort-topic)
(setq gnus-group-change-level-function 'gnus-topic-change-level)
(setq gnus-goto-missing-group-function 'gnus-topic-goto-missing-group)
- (gnus-make-local-hook 'gnus-check-bogus-groups-hook)
+ (make-local-hook 'gnus-check-bogus-groups-hook)
(add-hook 'gnus-check-bogus-groups-hook 'gnus-topic-clean-alist)
(setq gnus-topology-checked-p nil)
;; We check the topology.
(unless (assq 'gnus-undo-mode minor-mode-map-alist)
(push (cons 'gnus-undo-mode gnus-undo-mode-map)
minor-mode-map-alist))
- (gnus-make-local-hook 'post-command-hook)
+ (make-local-hook 'post-command-hook)
(gnus-add-hook 'post-command-hook 'gnus-undo-boundary nil t)
(add-hook 'gnus-summary-exit-hook 'gnus-undo-boundary)
(run-hooks 'gnus-undo-mode-hook)))
`(,(car funs) t1 t2)))
(defun gnus-turn-off-edit-menu (type)
- "Turn off edit meny in `gnus-TYPE-mode-map'."
+ "Turn off edit menu in `gnus-TYPE-mode-map'."
(define-key (symbol-value (intern (format "gnus-%s-mode-map" type)))
[menu-bar edit] 'undefined))
(when (and (not (get-file-buffer filename))
(not (file-exists-p filename)))
(if (or (not ask)
- (gnus-yes-or-no-p
+ (gnus-y-or-n-p
(concat "\"" filename "\" does not exist, create it? ")))
(let ((file-buffer (create-file-buffer filename)))
(save-excursion
(set-buffer outbuf)
(let ((buffer-read-only nil))
(goto-char (point-max))
+ (unless (eobp)
+ (insert "\n"))
+ (insert "\n")
(insert-buffer-substring tmpbuf)))))
(kill-buffer tmpbuf)))
(let ((gnus-uu-save-in-digest t)
(file (make-temp-name (nnheader-concat gnus-uu-tmp-dir "forward")))
buf subject from newsgroups)
- (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)
- (erase-buffer)
- (delete-other-windows)
- (insert-file file)
- (let ((fs gnus-uu-digest-from-subject))
- (when fs
- (setq from (caar fs)
- subject (gnus-simplify-subject-fuzzy (cdar fs))
- fs (cdr fs))
- (while (and fs (or from subject))
- (when from
- (unless (string= from (caar fs))
- (setq from nil)))
- (when subject
- (unless (string= (gnus-simplify-subject-fuzzy (cdar fs))
- subject)
- (setq subject nil)))
- (setq fs (cdr fs))))
- (unless subject
- (setq subject "Digested Articles"))
- (unless from
- (setq from
- (if (gnus-news-group-p gnus-newsgroup-name)
- gnus-newsgroup-name
- "Various"))))
- (goto-char (point-min))
- (when (re-search-forward "^Subject: ")
- (delete-region (point) (gnus-point-at-eol))
- (insert subject))
- (goto-char (point-min))
- (when (re-search-forward "^From: ")
- (delete-region (point) (gnus-point-at-eol))
- (insert from))
- (message-forward post)
+ (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)
+ (erase-buffer)
+ (insert-file file)
+ (let ((fs gnus-uu-digest-from-subject))
+ (when fs
+ (setq from (caar fs)
+ subject (gnus-simplify-subject-fuzzy (cdar fs))
+ fs (cdr fs))
+ (while (and fs (or from subject))
+ (when from
+ (unless (string= from (caar fs))
+ (setq from nil)))
+ (when subject
+ (unless (string= (gnus-simplify-subject-fuzzy (cdar fs))
+ subject)
+ (setq subject nil)))
+ (setq fs (cdr fs))))
+ (unless subject
+ (setq subject "Digested Articles"))
+ (unless from
+ (setq from
+ (if (gnus-news-group-p gnus-newsgroup-name)
+ gnus-newsgroup-name
+ "Various"))))
+ (goto-char (point-min))
+ (when (re-search-forward "^Subject: ")
+ (delete-region (point) (gnus-point-at-eol))
+ (insert subject))
+ (goto-char (point-min))
+ (when (re-search-forward "^From: ")
+ (delete-region (point) (gnus-point-at-eol))
+ (insert from))
+ (message-forward post))
(delete-file file)
(kill-buffer buf)
(setq gnus-uu-digest-from-subject nil)))
(color-instance-rgb-components
(make-color-instance color))))))
+(defun gnus-xmas-region-active-p ()
+ (and (fboundp 'region-active-p)
+ (region-active-p)))
(defun gnus-xmas-redefine ()
"Redefine lots of Gnus functions for XEmacs."
(fset 'gnus-appt-select-lowest-window
'gnus-xmas-appt-select-lowest-window)
(fset 'gnus-mail-strip-quoted-names 'gnus-xmas-mail-strip-quoted-names)
- (fset 'gnus-make-local-hook 'make-local-variable)
(fset 'gnus-add-hook 'gnus-xmas-add-hook)
(fset 'gnus-character-to-event 'character-to-event)
(fset 'gnus-mode-line-buffer-identification
'gnus-xmas-mode-line-buffer-identification)
(fset 'gnus-key-press-event-p 'key-press-event-p)
-
+ (fset 'gnus-region-active-p 'gnus-xmas-region-active-p)
+
(add-hook 'gnus-group-mode-hook 'gnus-xmas-group-menu-add)
(add-hook 'gnus-summary-mode-hook 'gnus-xmas-summary-menu-add)
(add-hook 'gnus-article-mode-hook 'gnus-xmas-article-menu-add)
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "5.4.11"
+(defconst gnus-version-number "5.4.12"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
(defalias 'gnus-topic-remove-excess-properties 'ignore)
(defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
(defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
- (defalias 'gnus-make-local-hook 'make-local-hook)
(defalias 'gnus-add-hook 'add-hook)
(defalias 'gnus-character-to-event 'identity)
(defalias 'gnus-add-text-properties 'add-text-properties)
(defvar gnus-local-organization)
(defcustom message-user-organization
(or (and (boundp 'gnus-local-organization)
+ (stringp gnus-local-organization)
gnus-local-organization)
(getenv "ORGANIZATION")
t)
'message-mail 'message-send-and-exit
'message-kill-buffer 'message-send-hook))
-(defvar message-delete-mh-headers t
+(defvar message-mh-deletable-headers '(Message-ID Date Lines Sender)
"If non-nil, delete the deletable headers before feeding to mh.")
;;; Internal variables.
(setq paren nil))))
(nreverse elems)))))
-(defun message-fetch-field (header)
+(defun message-fetch-field (header &optional not-all)
"The same as `mail-fetch-field', only remove all newlines."
- (let ((value (mail-fetch-field header nil t)))
+ (let ((value (mail-fetch-field header nil (not not-all))))
(when value
(nnheader-replace-chars-in-string value ?\n ? ))))
(kill-all-local-variables)
(make-local-variable 'message-reply-buffer)
(setq message-reply-buffer nil)
- (make-local-variable 'message-send-actions)
- (make-local-variable 'message-exit-actions)
- (make-local-variable 'message-kill-actions)
- (make-local-variable 'message-postpone-actions)
+ (set (make-local-variable 'message-send-actions) nil)
+ (set (make-local-variable 'message-exit-actions) nil)
+ (set (make-local-variable 'message-kill-actions) nil)
+ (set (make-local-variable 'message-postpone-actions) nil)
(set-syntax-table message-mode-syntax-table)
(use-local-map message-mode-map)
(setq local-abbrev-table message-mode-abbrev-table)
"msg."))))
(setq buffer-file-name name)
;; MH wants to generate these headers itself.
- (when message-delete-mh-headers
- (let ((headers message-deletable-headers))
+ (when message-mh-deletable-headers
+ (let ((headers message-mh-deletable-headers))
(while headers
(goto-char (point-min))
(and (re-search-forward
;; Check the Message-ID header.
(message-check 'message-id
(let* ((case-fold-search t)
- (message-id (message-fetch-field "message-id")))
+ (message-id (message-fetch-field "message-id" t)))
(or (not message-id)
(and (string-match "@" message-id)
(string-match "@[^\\.]*\\." message-id))
mct (message-fetch-field "mail-copies-to")
reply-to (unless ignore-reply-to (message-fetch-field "reply-to"))
references (message-fetch-field "references")
- message-id (message-fetch-field "message-id"))
+ message-id (message-fetch-field "message-id" t))
;; Remove any (buggy) Re:'s that are present and make a
;; proper one.
(when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
(insert (prog1 (rmail-dont-reply-to (buffer-string))
(erase-buffer)))
(goto-char (point-min))
+ ;; Perhaps Mail-Copies-To: never removed the only address?
+ (when (eobp)
+ (insert (or reply-to from "")))
(setq ccalist
(mapcar
(lambda (addr)
date (message-fetch-field "date")
subject (or (message-fetch-field "subject") "none")
references (message-fetch-field "references")
- message-id (message-fetch-field "message-id")
+ message-id (message-fetch-field "message-id" t)
followup-to (message-fetch-field "followup-to")
newsgroups (message-fetch-field "newsgroups")
reply-to (message-fetch-field "reply-to")
(message-narrow-to-head)
(setq from (message-fetch-field "from")
newsgroups (message-fetch-field "newsgroups")
- message-id (message-fetch-field "message-id")
+ message-id (message-fetch-field "message-id" t)
distribution (message-fetch-field "distribution")))
;; Make sure that this article was written by the user.
(unless (string-equal
(fset 'message-exchange-point-and-mark 'message-xmas-exchange-point-and-mark)
+(defun message-xmas-maybe-fontify ()
+ (when (and (featurep 'font-lock)
+ font-lock-auto-fontify)
+ (turn-on-font-lock)))
+
+(add-hook 'message-mode-hook 'message-xmas-maybe-fontify)
+
(provide 'messagexmas)
;;; messagexmas.el ends here
;; No output => movemail won
(progn
(unless popmail
- (set-file-modes tofile nnmail-default-file-modes))
+ (when (file-exists-p tofile)
+ (set-file-modes tofile nnmail-default-file-modes)))
(push inbox nnmail-moved-inboxes))
(set-buffer errors)
;; There may be a warning about older revisions. We
(if (search-forward "older revision" nil t)
(progn
(unless popmail
- (set-file-modes tofile nnmail-default-file-modes))
+ (when (file-exists-p tofile)
+ (set-file-modes tofile nnmail-default-file-modes)))
(push inbox nnmail-moved-inboxes))
;; Probably a real error.
(subst-char-in-region (point-min) (point-max) ?\n ?\ )
'nconc
(mapcar
(lambda (file)
- (if (file-directory-p file)
+ (if (and (not (string-match "^po:" file))
+ (file-directory-p file))
(nnheader-directory-regular-files file)
(list file)))
nnmail-spool-file))
procmails))
- ((and (stringp nnmail-spool-file)
- (not (file-directory-p nnmail-spool-file)))
- (cons nnmail-spool-file procmails))
- ((and (stringp nnmail-spool-file)
- (file-directory-p nnmail-spool-file))
- (nconc
- (nnheader-directory-regular-files nnmail-spool-file)
- procmails))
+ ((stringp nnmail-spool-file)
+ (if (and (not (string-match "^po:" nnmail-spool-file))
+ (file-directory-p nnmail-spool-file))
+ (nconc
+ (nnheader-directory-regular-files nnmail-spool-file)
+ procmails)
+ (cons nnmail-spool-file procmails)))
((eq nnmail-spool-file 'pop)
(cons (format "po:%s" (user-login-name)) procmails))
(t
(int-to-string article)))
(file-error nil))
(nnml-nov-delete-article group article)
- (and last (nnml-save-nov))))
+ (when last
+ (nnml-save-nov)
+ (nnmail-save-active nnml-group-alist nnml-active-file))))
result))
(deffoo nnml-request-accept-article (group &optional server last)
(defun nnml-nov-delete-article (group article)
(save-excursion
(set-buffer (nnml-open-nov group))
- (goto-char (point-min))
- (when (re-search-forward (concat "^" (int-to-string article) "\t") nil t)
- (delete-region (match-beginning 0) (progn (forward-line 1) (point))))
+ (when (nnheader-find-nov-line article)
+ (delete-region (point) (progn (forward-line 1) (point)))
+ (when (bobp)
+ (let ((active (cadr (assoc group nnml-group-alist)))
+ num)
+ (when active
+ (if (eobp)
+ (setf (car active) (1+ (cdr active)))
+ (when (and (setq num (ignore-errors (read (current-buffer))))
+ (numberp num))
+ (setf (car active) num)))))))
t))
(provide 'nnml)
(defun nntp-send-authinfo-from-file ()
"Send the AUTHINFO to the nntp server.
-This function is supposed to be called from `nntp-server-opened-hook'.
-It will prompt for a password."
+This function is supposed to be called from `nntp-server-opened-hook'."
(when (file-exists-p "~/.nntp-authinfo")
(nnheader-temp-write nil
(insert-file-contents "~/.nntp-authinfo")
+Mon Feb 10 07:18:16 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Article Commands): Addition.
+
+Mon Feb 3 19:59:10 1997 Paul Franklin <paul@cs.washington.edu>
+
+ * gnus-group.el (gnus-group-edit-group): Allow editing of bad
+ groups.
+
+Wed Feb 5 02:00:46 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.texi (Mail Variables): Change.
+
Tue Feb 4 02:33:31 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+ * message.texi (Mail Aliases): New.
+
* gnus.texi (Splitting Mail): Addition.
Mon Feb 3 07:31:47 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
@item H f
@kindex H f (Group)
-@itemx M-f
@findex gnus-group-fetch-faq
@vindex gnus-group-faq-directory
@cindex FAQ
@cindex PostScript
@cindex printing
@kindex A P (Summary)
+@vindex gnus-ps-print-hook
@findex gnus-summary-print-article
Generate and print a PostScript image of the article buffer
-(@code{gnus-summary-print-article}).
+(@code{gnus-summary-print-article}). @code{gnus-ps-print-hook} will be
+run just before printing the buffer.
@end table
Gnus provides a few different methods for storing the mail you send.
The default method is to use the @dfn{archive virtual server} to store
-the mail. If you want to disable this completely, you should set
-@code{gnus-message-archive-group} to @code{nil}.
+the mail. If you want to disable this completely, the
+@code{gnus-message-archive-group} variable should be @code{nil}, which
+is the default.
@vindex gnus-message-archive-method
@code{gnus-message-archive-method} says what virtual server Gnus is to
@code{t} and be prompted for the password, or set
@code{nnmail-pop-password} to the password itself.
+@code{nnmail-spool-file} can also be a list of mailboxes.
+
Your Emacs has to have been configured with @samp{--with-pop} before
compilation. This is the default, but some installations have it
switched off.
D. Hall,
Magnus Hammerin,
Raja R. Harinath,
+Hisashige Kenji, @c Hisashige
Marc Horowitz,
+François Felix Ingrand,
Ishikawa Ichiro, @c Ishikawa
-Francois Felix Ingrand,
Lee Iverson,
Rajappa Iyer,
Randell Jesup,
* Insertion:: Inserting things into message buffers.
* Various Commands:: Various things.
* Sending:: Actually sending the message.
+* Mail Aliases:: How to use mail aliases.
@end menu
@end table
+
+@node Mail Aliases
+@section Mail Aliases
+@cindex mail aliases
+@cindex aliases
+
+Message uses @code{mailabbrev} to handle mail aliases.
+@code{mailabbrev} works by parsing the @file{/etc/mailrc} and
+@file{~/.mailrc} files. These files look like:
+
+@example
+alias lmi "Lars Magne Ingebrigtsen <larsi@@ifi.uio.no>"
+alias ding "ding@@ifi.uio.no (ding mailing list)"
+@end example
+
+After adding lines like this to your @file{~/.mailrc} file, you should
+be able to just write @samp{lmi} in the @code{To} or @code{Cc} (and so
+on) headers and press @kbd{SPC} to expand the alias.
+
+No expansion will be performed upon sending of the message---all
+expansions have to be done explicitly.
+
+
+
@node Variables
@chapter Variables
@cindex organization
This optional header will be filled out depending on the
@code{message-user-organization} variable.
-@code{message-user-organization-file} will be used if that variable is
-@code{t}.
+@code{message-user-organization-file} will be used if this variable is
+@code{t}. This variable can also be a string (in which case this string
+will be used), or it can be a function (which will be called with no
+parameters and should return a string to be used).
@item Lines
@cindex Lines