From: yamaoka Date: Thu, 4 Mar 1999 01:59:08 +0000 (+0000) Subject: Importing Pterodactyl Gnus v0.80. X-Git-Tag: pgnus-0_80~1 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b2fb1b90d4ff43730e19ffbfd10f5f91f98a2e9;p=elisp%2Fgnus.git- Importing Pterodactyl Gnus v0.80. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 18aaf42..200c565 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,68 @@ +Thu Mar 4 01:38:00 1999 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.80 is released. + +1999-03-02 16:04:30 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-mm-display-part): Narrow to the part itself. + + * gnus-sum.el (gnus-with-article): Moved here. + + * mail-source.el (mail-source-fetch-pop): Ask for password even + when program. + +1999-02-28 13:16:12 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-bug): Add description. + + * mml.el (mml-insert-mml-markup): Insert disposition. + + * message.el (message-send-mail): Always encode mail headers. + + * smiley.el (gnus-smiley-display): Goto body. + +1999-02-28 13:15:47 Petr Konecny + + * smiley.el (gnus-smiley-display): Don't search to blank line. + +1999-02-28 00:38:40 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-treat-article): Only run the highlight stuff + when requested. + + * nnmail.el (nnmail-current-spool): Removed. + + * gnus-salt.el (gnus-tree-inhibit): New varible. + + * gnus.el (mm-util): Required. + +1999-02-27 23:44:52 paul stevenson + + * gnus-sum.el (gnus-summary-toggle-header): Narrow to head first. + +1999-02-27 17:17:47 Lars Magne Ingebrigtsen + + * mail-source.el (mail-source-bind): Doc fix. + +1999-02-26 20:35:57 Lars Magne Ingebrigtsen + + * message.el (message-mode): Doc fix. + + * mm-encode.el (mm-content-transfer-encoding-defaults): Use 8bit + encoding. + + * gnus.el (gnus-methods-equal-p): Moved here. + + * mail-source.el: pop at 110. + + * pop3.el (pop3-movemail): Use write-region instead of + append-to-file to avoid excessive messaging. + +1999-02-27 lantz moore + + * nnmail.el (nnmail-get-new-mail): honor suffix for spool-files of + type directory. + Fri Feb 26 18:54:16 1999 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.79 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 81421c0..d26ec60 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -1,4 +1,3 @@ - ;;; gnus-art.el --- article mode commands for Gnus ;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. @@ -121,7 +120,7 @@ "^X-Pgp-Public-Key-Url:" "^X-Auth:" "^X-From-Line:" "^X-Gnus-Article-Number:" "^X-Majordomo:" "^X-Url:" "^X-Sender:" "^X-Mailing-List:" "^MBOX-Line" "^Priority:" "^X-Pgp" "^X400-[-A-Za-z]+:" - "^Status:") + "^Status:" "^X-Gnus-Mail-Source:") "*All headers that start with this regexp will be hidden. This variable can also be a list of regexps of headers to be ignored. If `gnus-visible-headers' is non-nil, this variable will be ignored." @@ -620,167 +619,241 @@ on parts -- for instance, adding Vcard info to a database." "Whether to inhibit treatment.") (defcustom gnus-treat-highlight-signature '(or last (typep "text/x-vcard")) - "Highlight the signature." + "Highlight the signature. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) +(put 'gnus-treat-highlight-signature 'highlight t) (defcustom gnus-treat-buttonize t - "Add buttons." + "Add buttons. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) +(put 'gnus-treat-buttonize 'highlight t) (defcustom gnus-treat-buttonize-head 'head - "Add buttons to the head." + "Add buttons to the head. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) +(put 'gnus-treat-buttonize-head 'highlight t) (defcustom gnus-treat-emphasize t - "Emphasize text." + "Emphasize text. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) +(put 'gnus-treat-emphasize 'highlight t) (defcustom gnus-treat-strip-cr nil - "Remove carriage returns." + "Remove carriage returns. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-hide-headers 'head - "Hide headers." + "Hide headers. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-hide-boring-headers nil - "Hide boring headers." + "Hide boring headers. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-hide-signature nil - "Hide the signature." + "Hide the signature. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-fill-article nil - "Fill the article." + "Fill the article. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-hide-citation nil - "Hide cited text." + "Hide cited text. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-strip-pgp t - "Strip PGP signatures." + "Strip PGP signatures. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-strip-pem nil - "Strip PEM signatures." + "Strip PEM signatures. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-strip-banner t "Strip banners from articles. -The banner to be stripped is specified in the `banner' group parameter." +The banner to be stripped is specified in the `banner' group parameter. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-highlight-headers 'head - "Highlight the headers." + "Highlight the headers. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) +(put 'gnus-treat-highlight-headers 'highlight t) (defcustom gnus-treat-highlight-citation t - "Highlight cited text." + "Highlight cited text. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) +(put 'gnus-treat-highlight-citation 'highlight t) (defcustom gnus-treat-date-ut nil - "Display the Date in UT (GMT)." + "Display the Date in UT (GMT). +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-date-local nil - "Display the Date in the local timezone." + "Display the Date in the local timezone. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-date-lapsed nil - "Display the Date header in a way that says how much time has elapsed." + "Display the Date header in a way that says how much time has elapsed. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-date-original nil - "Display the date in the original timezone." + "Display the date in the original timezone. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-date-iso8601 nil - "Display the date in the ISO8601 format." + "Display the date in the ISO8601 format. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-date-user-defined nil "Display the date in a user-defined format. -The format is defined by the `gnus-article-time-format' variable." +The format is defined by the `gnus-article-time-format' variable. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) (defcustom gnus-treat-strip-trailing-blank-lines nil - "Strip trailing blank lines." + "Strip trailing blank lines. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-strip-leading-blank-lines nil - "Strip leading blank lines." + "Strip leading blank lines. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-strip-multiple-blank-lines nil - "Strip multiple blank lines." + "Strip multiple blank lines. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-strip-blank-lines nil - "Strip all blank lines." + "Strip all blank lines. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-overstrike t - "Treat overstrike highlighting." + "Treat overstrike highlighting. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) +(put 'gnus-treat-overstrike 'highlight t) (defcustom gnus-treat-display-xface (if (and gnus-xemacs (featurep 'xface)) 'head nil) - "Display X-Face headers." + "Display X-Face headers. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) +(put 'gnus-treat-display-xface 'highlight t) (defcustom gnus-treat-display-smileys (if (and gnus-xemacs (featurep 'xpm)) t nil) - "Display smileys." + "Display smileys. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) +(put 'gnus-treat-display-smileys 'highlight t) (defcustom gnus-treat-display-picons (if gnus-xemacs 'head nil) - "Display picons." + "Display picons. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) +(put 'gnus-treat-display-picons 'highlight t) (defcustom gnus-treat-capitalize-sentences nil - "Capitalize sentence-starting words." + "Capitalize sentence-starting words. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-fill-long-lines nil - "Fill long lines." + "Fill long lines. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) (defcustom gnus-treat-play-sounds nil - "Fill long lines." + "Fill long lines. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -858,34 +931,6 @@ Initialized from `text-mode-syntax-table.") (put-text-property (max (1- b) (point-min)) b 'intangible (cddr (memq 'intangible props))))) - -(defmacro gnus-with-article (article &rest forms) - "Select ARTICLE and perform FORMS in the original article buffer. -Then replace the article with the result." - `(progn - ;; We don't want the article to be marked as read. - (let (gnus-mark-article-hook) - (gnus-summary-select-article t t nil ,article)) - (set-buffer gnus-original-article-buffer) - ,@forms - (if (not (gnus-check-backend-function - 'request-replace-article (car gnus-article-current))) - (gnus-message 5 "Read-only group; not replacing") - (unless (gnus-request-replace-article - ,article (car gnus-article-current) - (current-buffer) t) - (error "Couldn't replace article"))) - ;; The cache and backlog have to be flushed somewhat. - (when gnus-keep-backlog - (gnus-backlog-remove-article - (car gnus-article-current) (cdr gnus-article-current))) - (when gnus-use-cache - (gnus-cache-update-article - (car gnus-article-current) (cdr gnus-article-current))))) - -(put 'gnus-with-article 'lisp-indent-function 1) -(put 'gnus-with-article 'edebug-form-spec '(form body)) - (defsubst gnus-article-unhide-text (b e) "Remove hidden text properties from region between B and E." (remove-text-properties b e gnus-hidden-properties) @@ -2769,6 +2814,11 @@ If ALL-HEADERS is non-nil, no headers are hidden." (save-restriction (narrow-to-region (point) (1+ (point))) (mm-display-part handle) + ;; We narrow to the part itself and + ;; then call the treatment functions. + (goto-char (point-min)) + (forward-line 1) + (narrow-to-region (point) (point-max)) (gnus-treat-article nil id (1- (length gnus-article-mime-handles)) @@ -4251,16 +4301,18 @@ For example: (while list (when (string-match (pop list) type) (throw 'found t))))))) + (highlightp (gnus-visual-p 'article-highlight 'highlight)) val elem) - (when (gnus-visual-p 'article-highlight 'highlight) - (gnus-run-hooks 'gnus-part-display-hook) - (while (setq elem (pop alist)) - (setq val (symbol-value (car elem))) - (when (and (or (consp val) - treated-type) - (gnus-treat-predicate val)) - (save-restriction - (funcall (cadr elem)))))))) + (gnus-run-hooks 'gnus-part-display-hook) + (while (setq elem (pop alist)) + (setq val (symbol-value (car elem))) + (when (and (or (consp val) + treated-type) + (gnus-treat-predicate val) + (or (not (get (car elem) 'highlight)) + highlightp)) + (save-restriction + (funcall (cadr elem))))))) ;; Dynamic variables. (defvar part-number) diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 8f06100..d8d4d1b 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -110,10 +110,9 @@ the second with the current group name.") (defcustom gnus-group-posting-charset-alist '(("^no\\." iso-8859-1) - (".*" iso-8859-1) - (message-this-is-news iso-8859-1) (message-this-is-mail nil) - ) + (".*" iso-8859-1) + (message-this-is-news iso-8859-1)) "Alist of regexps (to match group names) and default charsets to be unencoded when posting." :type '(repeat (list (regexp :tag "Group") (symbol :tag "Charset"))) @@ -853,7 +852,7 @@ If YANK is non-nil, include the original article." (save-excursion (set-buffer (gnus-get-buffer-create " *gnus environment info*")) (gnus-debug)) - (insert "<#part type=application/emacs-lisp buffer=\" *gnus environment info*\" disposition=inline><#/part>") + (insert "<#part type=application/emacs-lisp buffer=\" *gnus environment info*\" disposition=inline description=\"User settings\"><#/part>") (goto-char (point-min)) (search-forward "Subject: " nil t) (message ""))) diff --git a/lisp/gnus-salt.el b/lisp/gnus-salt.el index af6d285..60a47f4 100644 --- a/lisp/gnus-salt.el +++ b/lisp/gnus-salt.el @@ -76,8 +76,7 @@ It accepts the same format specs that `gnus-summary-line-format' does." "u" gnus-pick-unmark-article-or-thread "." gnus-pick-article-or-thread gnus-down-mouse-2 gnus-pick-mouse-pick-region - "\r" gnus-pick-start-reading - )) + "\r" gnus-pick-start-reading)) (defun gnus-pick-make-menu-bar () (unless (boundp 'gnus-pick-menu) @@ -431,6 +430,7 @@ Two predefined functions are available: (defvar gnus-selected-tree-overlay nil) (defvar gnus-tree-displayed-thread nil) +(defvar gnus-tree-inhibit nil) (defvar gnus-tree-mode-map nil) (put 'gnus-tree-mode 'mode-class 'special) @@ -481,15 +481,17 @@ Two predefined functions are available: (defun gnus-tree-read-summary-keys (&optional arg) "Read a summary buffer key sequence and execute it." (interactive "P") - (let ((buf (current-buffer)) - win) - (set-buffer gnus-article-buffer) - (gnus-article-read-summary-keys arg nil t) - (when (setq win (get-buffer-window buf)) - (select-window win) - (when gnus-selected-tree-overlay - (goto-char (or (gnus-overlay-end gnus-selected-tree-overlay) 1))) - (gnus-tree-minimize)))) + (unless gnus-tree-inhibit + (let ((buf (current-buffer)) + (gnus-tree-inhibit t) + win) + (set-buffer gnus-article-buffer) + (gnus-article-read-summary-keys arg nil t) + (when (setq win (get-buffer-window buf)) + (select-window win) + (when gnus-selected-tree-overlay + (goto-char (or (gnus-overlay-end gnus-selected-tree-overlay) 1))) + (gnus-tree-minimize))))) (defun gnus-tree-show-summary () "Reconfigure windows to show summary buffer." diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index bf22138..9a8a28c 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -4524,15 +4524,6 @@ The resulting hash table is returned, or nil if no Xrefs were found." ;; Update the group buffer. (gnus-group-update-group group t))))) -(defun gnus-methods-equal-p (m1 m2) - (let ((m1 (or m1 gnus-select-method)) - (m2 (or m2 gnus-select-method))) - (or (equal m1 m2) - (and (eq (car m1) (car m2)) - (or (not (memq 'address (assoc (symbol-name (car m1)) - gnus-valid-select-methods))) - (equal (nth 1 m1) (nth 1 m2))))))) - (defvar gnus-newsgroup-none-id 0) (defun gnus-get-newsgroup-headers (&optional dependencies force-new) @@ -7029,8 +7020,10 @@ If ARG is a negative number, hide the unwanted header lines." (save-restriction (let* ((buffer-read-only nil) (inhibit-point-motion-hooks t) - (hidden (gnus-article-hidden-text-p 'headers)) - e) + hidden e) + (save-restriction + (message-narrow-to-head) + (setq hidden (gnus-article-hidden-text-p 'headers))) (goto-char (point-min)) (when (search-forward "\n\n" nil t) (delete-region (point-min) (1- (point)))) @@ -9237,6 +9230,38 @@ treated as multipart/mixed." (gnus-summary-show-article)) (gnus-summary-show-article))) +;;; +;;; with article +;;; + +(defmacro gnus-with-article (article &rest forms) + "Select ARTICLE and perform FORMS in the original article buffer. +Then replace the article with the result." + `(progn + ;; We don't want the article to be marked as read. + (let (gnus-mark-article-hook) + (gnus-summary-select-article t t nil ,article)) + (set-buffer gnus-original-article-buffer) + ,@forms + (if (not (gnus-check-backend-function + 'request-replace-article (car gnus-article-current))) + (gnus-message 5 "Read-only group; not replacing") + (unless (gnus-request-replace-article + ,article (car gnus-article-current) + (current-buffer) t) + (error "Couldn't replace article"))) + ;; The cache and backlog have to be flushed somewhat. + (when gnus-keep-backlog + (gnus-backlog-remove-article + (car gnus-article-current) (cdr gnus-article-current))) + (when gnus-use-cache + (gnus-cache-update-article + (car gnus-article-current) (cdr gnus-article-current))))) + +(put 'gnus-with-article 'lisp-indent-function 1) +(put 'gnus-with-article 'edebug-form-spec '(form body)) + + (gnus-ems-redefine) (provide 'gnus-sum) diff --git a/lisp/gnus.el b/lisp/gnus.el index 540cfa9..1283abc 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -29,6 +29,7 @@ (eval '(run-hooks 'gnus-load-hook)) (eval-when-compile (require 'cl)) +(require 'mm-util) (require 'custom) (eval-and-compile @@ -259,7 +260,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "0.79" +(defconst gnus-version-number "0.80" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) @@ -2347,6 +2348,15 @@ that that variable is buffer-local to the summary buffers." (setq s1 (cdr s1))) (null s1)))))) +(defun gnus-methods-equal-p (m1 m2) + (let ((m1 (or m1 gnus-select-method)) + (m2 (or m2 gnus-select-method))) + (or (equal m1 m2) + (and (eq (car m1) (car m2)) + (or (not (memq 'address (assoc (symbol-name (car m1)) + gnus-valid-select-methods))) + (equal (nth 1 m1) (nth 1 m2))))))) + (defun gnus-server-equal (m1 m2) "Say whether two methods are equal." (let ((m1 (cond ((null m1) gnus-select-method) diff --git a/lisp/mail-source.el b/lisp/mail-source.el index 87eebb5..bb7590d 100644 --- a/lisp/mail-source.el +++ b/lisp/mail-source.el @@ -72,7 +72,7 @@ (:prescript) (:postscript) (:server (getenv "MAILHOST")) - (:port "pop") + (:port 110) (:user (or (user-login-name) (getenv "LOGNAME") (getenv "USER"))) (:program) (:function) @@ -111,12 +111,17 @@ All keywords that can be used must be listed here.")) (defmacro mail-source-bind (type-source &rest body) "Return a `let' form that binds all variables in source TYPE. +TYPE-SOURCE is a list where the first element is the TYPE, and +the second variable is the SOURCE. At run time, the mail source specifier SOURCE will be inspected, and the variables will be set according to it. Variables not specified will be given default values. After this is done, BODY will be executed in the scope -of the `let' form." +of the `let' form. + +The variables bound and their default values are described by +the `mail-source-keyword-map' variable." `(let ,(mail-source-bind-1 (car type-source)) (mail-source-set-1 ,(cadr type-source)) ,@body)) @@ -322,8 +327,7 @@ If ARGS, PROMPT is used as an argument to `format'." (let ((from (format "%s:%s:%s" server user port)) (mail-source-string (format "pop:%s@%s" user server)) result) - (when (and (not (eq authentication 'apop)) - (not program)) + (when (not (eq authentication 'apop)) (setq password (or password (cdr (assoc from mail-source-password-cache)) @@ -364,8 +368,7 @@ If ARGS, PROMPT is used as an argument to `format'." postscript (format-spec-make ?p password ?t mail-source-crash-box - ?s server ?P port ?u user))))) - 1) + ?s server ?P port ?u user)))))) ;; We nix out the password in case the error ;; was because of a wrong password being given. (setq mail-source-password-cache diff --git a/lisp/message.el b/lisp/message.el index b13b004..f0eb481 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1370,7 +1370,7 @@ C-c C-e message-elide-region (elide the text between point and mark). C-c C-v message-delete-not-region (remove the text outside the region). C-c C-z message-kill-to-signature (kill the text up to the signature). C-c C-r message-caesar-buffer-body (rot13 the message body). -C-c C-a message-mime-attach-file (attach a file as MIME)." +C-c C-a mml-attach-file (attach a file as MIME)." (interactive) (kill-all-local-variables) (set (make-local-variable 'message-reply-buffer) nil) @@ -2095,8 +2095,7 @@ the user from the mailer." (let ((message-deletable-headers (if news nil message-deletable-headers))) (message-generate-headers message-required-mail-headers)) - (let ((mail-parse-charset message-posting-charset)) - (mail-encode-encoded-word-buffer)) + (mail-encode-encoded-word-buffer) ;; Let the user do all of the above. (run-hooks 'message-header-hook)) (unwind-protect diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index c854662..83cf901 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -600,7 +600,18 @@ This overrides entries in the mailcap file." (mm-insert-part handle) (prog1 (setq spec - (make-glyph `[,(intern type) :data ,(buffer-string)])) + (ignore-errors + (make-glyph + (cond + ((equal type "xbm") + (let ((height 32) + (width 32)) + (forward-line 2) + (vector 'xbm :data (list height width + (buffer-substring + (point) (point-max)))))) + (t + (vector (intern type) :data (buffer-string))))))) (mm-handle-set-cache handle spec)))))) (defun mm-image-fit-p (handle) diff --git a/lisp/mm-encode.el b/lisp/mm-encode.el index 0846d92..587abf8 100644 --- a/lisp/mm-encode.el +++ b/lisp/mm-encode.el @@ -29,7 +29,7 @@ (defvar mm-content-transfer-encoding-defaults '(("text/.*" quoted-printable) - ("message/rfc822" quoted-printable) + ("message/rfc822" 8bit) ("application/emacs-lisp" 8bit) ("application/x-patch" 8bit) (".*" base64)) diff --git a/lisp/mml.el b/lisp/mml.el index 5c5efdc..d233adf 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -221,7 +221,7 @@ (setq charset (mm-encode-body)) (setq encoding (mm-body-encoding charset)) (setq coded (buffer-string))) - (mm-with-unibyte-buffer + (with-temp-buffer (cond ((cdr (assq 'buffer cont)) (insert-buffer-substring (cdr (assq 'buffer cont)))) @@ -446,6 +446,8 @@ (dolist (elem (append (cdr (mm-handle-type handle)) (cdr (mm-handle-disposition handle)))) (insert " " (symbol-name (car elem)) "=\"" (cdr elem) "\"")) + (when (mm-handle-disposition handle) + (insert " disposition=" (car (mm-handle-disposition handle)))) (when buffer (insert " buffer=\"" (buffer-name buffer) "\"")) (when (mm-handle-description handle) @@ -464,8 +466,9 @@ (define-key map "b" 'mml-attach-buffer) (define-key map "q" 'mml-quote-region) (define-key map "m" 'mml-insert-multipart) - (define-key map "q" 'mml-insert-part) + (define-key map "p" 'mml-insert-part) (define-key map "v" 'mml-validate) + (define-key map "P" 'mml-preview) (define-key main "\M-m" map) main)) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 3ae7f62..de31551 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -396,8 +396,6 @@ parameter. It should return nil, `warn' or `delete'." (defvar nnmail-split-history nil "List of group/article elements that say where the previous split put messages.") -(defvar nnmail-current-spool nil) - (defvar nnmail-split-fancy-syntax-table nil "Syntax table used by `nnmail-split-fancy'.") (unless (syntax-table-p nnmail-split-fancy-syntax-table) @@ -655,9 +653,7 @@ If SOURCE is a directory spec, try to return the group name component." (if (not (and (re-search-forward "^From " nil t) (goto-char (match-beginning 0)))) ;; Possibly wrong format? - (progn - (pop-to-buffer (nnheader-find-file-noselect nnmail-current-spool)) - (error "Error, unknown mail format! (Possibly corrupted.)")) + (error "Error, unknown mail format! (Possibly corrupted.)") ;; Carry on until the bitter end. (while (not (eobp)) (setq start (point) @@ -742,9 +738,7 @@ If SOURCE is a directory spec, try to return the group name component." (if (not (and (re-search-forward delim nil t) (forward-line 1))) ;; Possibly wrong format? - (progn - (pop-to-buffer (nnheader-find-file-noselect nnmail-current-spool)) - (error "Error, unknown mail format! (Possibly corrupted.)")) + (error "Error, unknown mail format! (Possibly corrupted.)") ;; Carry on until the bitter end. (while (not (eobp)) (setq start (point)) @@ -1347,7 +1341,7 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." (list nnmail-spool-file))) (group-in group) (i 0) - nnmail-current-spool incoming incomings source) + incoming incomings source) (when (and (nnmail-get-value "%s-get-new-mail" method) nnmail-spool-file) ;; We first activate all the groups. @@ -1376,12 +1370,16 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." ;; Hack to only fetch the contents of a single group's spool file. (when (and (eq (car source) 'directory) group) - (setq source (append source - (list :predicate - `(lambda (file) - (string-match - ,(concat (regexp-quote group) "$") - file)))))) + (mail-source-bind (directory source) + (setq source (append source + (list + :predicate + `(lambda (file) + (string-match + ,(concat + (regexp-quote (concat group suffix)) + "$") + file))))))) (when nnmail-fetched-sources (if (member source nnmail-fetched-sources) (setq source nil) diff --git a/lisp/pop3.el b/lisp/pop3.el index 391d5b8..0b6318b 100644 --- a/lisp/pop3.el +++ b/lisp/pop3.el @@ -4,7 +4,7 @@ ;; Author: Richard L. Pieri ;; Keywords: mail, pop3 -;; Version: 1.3m +;; Version: 1.3q ;; This file is part of GNU Emacs. @@ -91,7 +91,7 @@ Used for APOP authentication.") (pop3-retr process n crashbuf) (save-excursion (set-buffer crashbuf) - (append-to-file (point-min) (point-max) crashbox) + (write-region (point-min) (point-max) crashbox t 'nomesg) (set-buffer (process-buffer process)) (while (> (buffer-size) 5000) (goto-char (point-min)) diff --git a/lisp/smiley.el b/lisp/smiley.el index d227e26..184cc64 100644 --- a/lisp/smiley.el +++ b/lisp/smiley.el @@ -309,11 +309,8 @@ Mouse button3 - menu")) (interactive) (save-excursion (set-buffer gnus-article-buffer) - (goto-char (point-min)) - ;; We skip the headers. - (unless (search-forward "\n\n" nil t) - (goto-char (point-max))) - (smiley-buffer (current-buffer) (point)))) + (article-goto-body) + (smiley-buffer (current-buffer) (point-min) (point-max)))) (provide 'smiley) diff --git a/texi/ChangeLog b/texi/ChangeLog index e90be54..cd413b4 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,16 @@ +1999-03-01 16:41:42 Rob Browning + + * gnus.texi (Score Variables): Clarify. + +1999-02-26 Andreas Jaeger + + * gnus.texi: Add ',' after @xrefs. + +1999-02-26 20:54:34 Jason R. Mastaler + + * gnus.texi (Article Date): Added joke by Colin Rafferty + (colin@xemacs.org). + 1999-02-26 08:26:10 Lars Magne Ingebrigtsen * gnus.texi (Mail Source Specifiers): Fix. diff --git a/texi/gnus.texi b/texi/gnus.texi index f872510..3665f7b 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Pterodactyl Gnus 0.79 Manual +@settitle Pterodactyl Gnus 0.80 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Gnus 0.79 Manual +@title Pterodactyl Gnus 0.80 Manual @author by Lars Magne Ingebrigtsen @page @@ -354,7 +354,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 Pterodactyl Gnus 0.79. +This manual corresponds to Pterodactyl Gnus 0.80. @end ifinfo @@ -1975,7 +1975,7 @@ Add the current group to an @code{nnvirtual} group (@code{gnus-group-add-to-virtual}). Uses the process/prefix convention. @end table -@xref{Select Methods} for more information on the various select +@xref{Select Methods}, for more information on the various select methods. @vindex gnus-activate-foreign-newsgroups @@ -2879,7 +2879,7 @@ Sort the current topic alphabetically by backend name @end table -@xref{Sorting Groups} for more information about group sorting. +@xref{Sorting Groups}, for more information about group sorting. @node Topic Topology @@ -6346,7 +6346,7 @@ default. @end table -@xref{Customizing Articles} for how to highlight articles automatically. +@xref{Customizing Articles}, for how to highlight articles automatically. @node Article Fontisizing @@ -6400,7 +6400,7 @@ say something like: (copy-face 'red 'gnus-emphasis-italic) @end lisp -@xref{Customizing Articles} for how to fontize articles automatically. +@xref{Customizing Articles}, for how to fontize articles automatically. @node Article Hiding @@ -6549,7 +6549,7 @@ hidden. If you give a positive prefix, they will always hide. Also @pxref{Article Highlighting} for further variables for citation customization. -@xref{Customizing Articles} for how to hide article elements +@xref{Customizing Articles}, for how to hide article elements automatically. @@ -6571,7 +6571,7 @@ Cleaner, perhaps. @kindex W l (Summary) @findex gnus-summary-stop-page-breaking Remove page breaks from the current article -(@code{gnus-summary-stop-page-breaking}). @xref{Misc Article} for page +(@code{gnus-summary-stop-page-breaking}). @xref{Misc Article}, for page delimiters. @item W r @@ -6741,7 +6741,7 @@ body (@code{gnus-article-strip-trailing-space}). @end table -@xref{Customizing Articles} for how to wash articles automatically. +@xref{Customizing Articles}, for how to wash articles automatically. @node Article Buttons @@ -6827,7 +6827,7 @@ Face used when the mouse cursor is over a button. @end table -@xref{Customizing Articles} for how to buttonize articles automatically. +@xref{Customizing Articles}, for how to buttonize articles automatically. @node Article Date @@ -6874,8 +6874,16 @@ for a list of possible format specs. @findex gnus-start-date-timer @findex gnus-stop-date-timer Say how much time has elapsed between the article was posted and now -(@code{gnus-article-date-lapsed}). If you want to have this line -updated continually, you can put +(@code{gnus-article-date-lapsed}). It looks something like: + +@example +X-Sent: 29 years, 6 weeks, 4 days, 10 hours, 3 minutes, 28 seconds ago +@end example + +An advantage of using Gnus to read mail is that it converts simple bugs +into wonderful absurdities. + +If you want to have this line updated continually, you can put @lisp (gnus-start-date-timer) @@ -6896,7 +6904,7 @@ that the article was posted in 1854. Although something like that is @end table -@xref{Customizing Articles} for how to display the date in your +@xref{Customizing Articles}, for how to display the date in your preferred format automatically. @@ -13055,6 +13063,10 @@ If you have really complicated score files, and do lots of batch scoring, then you might set this variable to @code{t}. This will make Gnus save the scores into the @file{.newsrc.eld} file. +If you do not set this to @code{t}, then manual scores (like those set +with @kbd{V s} (@code{gnus-summary-set-score})) will not be preserved +across group visits. + @item gnus-score-interactive-default-score @vindex gnus-score-interactive-default-score Score used by all the interactive raise/lower commands to raise/lower @@ -18686,6 +18698,10 @@ Some nntp servers never respond when posting, so there should be a timeout for all commands. @item +When stading on a topic line and `t'-ing, point goes to the last line. +It should go somewhere else. + +@item Solve the halting problem. @c TODO diff --git a/texi/message.texi b/texi/message.texi index 96e389e..3350daf 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.79 Manual +@settitle Pterodactyl Message 0.80 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Message 0.79 Manual +@title Pterodactyl Message 0.80 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Pterodactyl Message 0.79. Message is +This manual corresponds to Pterodactyl Message 0.80. Message is distributed with the Gnus distribution bearing the same version number as this manual.