From 4c4087aa9651092d5624e8e3263f1287ae9c5b56 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Thu, 4 Mar 1999 03:31:22 +0000 Subject: [PATCH] * gnus.el (gnus-version-number): Update to 6.10.062. (gnus-revision-number): Fresh start from 00. * gnus-sum.el (gnus-summary-edit-article): Don't use `mime-to-mml' nor `mml-to-mime'. * Sync up with Pterodactyl Gnus v0.80. --- lisp/ChangeLog | 65 +++++++++++++++++ lisp/gnus-art.el | 193 ++++++++++++++++++++++++++++++++------------------- lisp/gnus-msg.el | 7 +- lisp/gnus-salt.el | 24 ++++--- lisp/gnus-sum.el | 50 +++++++++---- lisp/gnus.el | 16 ++++- lisp/mail-source.el | 12 ++-- lisp/mm-decode.el | 13 +++- lisp/mm-encode.el | 2 +- lisp/mml.el | 7 +- lisp/nnmail.el | 28 ++++---- lisp/pop3.el | 5 +- lisp/smiley.el | 7 +- 13 files changed, 298 insertions(+), 131 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0dae059..fe203df 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 bc4adae..1767125 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -130,7 +130,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." @@ -642,167 +642,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) @@ -880,34 +954,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) @@ -2882,6 +2928,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)) @@ -4484,16 +4535,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 1f07605..bf68d50 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -114,10 +114,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"))) @@ -954,7 +953,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 d3062bd..3f60b0e 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -4486,15 +4486,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) @@ -6996,8 +6987,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)))) @@ -7496,10 +7489,9 @@ groups." (error "The current newsgroup does not support article editing")) (gnus-summary-show-article t) (gnus-article-edit-article - 'mime-to-mml + 'ignore `(lambda (no-highlight) (let ((mail-parse-charset ',gnus-newsgroup-charset)) - (mml-to-mime) (gnus-summary-edit-article-done ,(or (mail-header-references gnus-current-headers) "") ,(gnus-group-read-only-p) ,gnus-summary-buffer no-highlight))))))) @@ -9342,6 +9334,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 6bb0d0a..9681dd3 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -31,6 +31,7 @@ (eval '(run-hooks 'gnus-load-hook)) (eval-when-compile (require 'cl)) +(require 'mm-util) (require 'custom) (eval-and-compile @@ -264,13 +265,13 @@ is restarted, and sometimes reloaded." (defconst gnus-product-name "T-gnus" "Product name of this version of gnus.") -(defconst gnus-version-number "6.10.061" +(defconst gnus-version-number "6.10.062" "Version number for this version of gnus.") -(defconst gnus-revision-number "03" +(defconst gnus-revision-number "00" "Revision number for this version of gnus.") -(defconst gnus-original-version-number "0.79" +(defconst gnus-original-version-number "0.80" "Version number for this version of Gnus.") (provide 'running-pterodactyl-gnus-0_73-or-later) @@ -2445,6 +2446,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 436d0ed..2d5e02d 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)) @@ -362,8 +367,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/mm-decode.el b/lisp/mm-decode.el index 01daa1b..e29f50a 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 6bda8b6..13f3c25 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 84db558..409b289 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) @@ -654,9 +652,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) @@ -741,9 +737,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)) @@ -1346,7 +1340,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. @@ -1375,12 +1369,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 571c979..a4821a4 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,8 @@ Used for APOP authentication.") (pop3-retr process n crashbuf) (save-excursion (set-buffer crashbuf) - (write-region-as-binary (point-min) (point-max) crashbox 'append) + (write-region-as-binary (point-min) (point-max) + crashbox 'append '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 d1967bc..842a037 100644 --- a/lisp/smiley.el +++ b/lisp/smiley.el @@ -314,11 +314,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) -- 1.7.10.4