diff options
Diffstat (limited to 'lisp/gnus')
-rw-r--r-- | lisp/gnus/ChangeLog | 64 | ||||
-rw-r--r-- | lisp/gnus/ChangeLog.1 | 6 | ||||
-rw-r--r-- | lisp/gnus/ChangeLog.2 | 16 | ||||
-rw-r--r-- | lisp/gnus/gnus-art.el | 6 | ||||
-rw-r--r-- | lisp/gnus/gnus-sum.el | 4 | ||||
-rw-r--r-- | lisp/gnus/message.el | 62 | ||||
-rw-r--r-- | lisp/gnus/mm-extern.el | 8 | ||||
-rw-r--r-- | lisp/gnus/mm-util.el | 46 | ||||
-rw-r--r-- | lisp/gnus/mml1991.el | 2 | ||||
-rw-r--r-- | lisp/gnus/mml2015.el | 1 |
10 files changed, 137 insertions, 78 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index d78e07037b4..0b7eaf7ed72 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,4 +1,66 @@ -2010-05-07 Christian von Roques <roques@mti.ag> (tiny change) +2010-05-13 Katsumi Yamaoka <yamaoka@jpl.org> + + * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt) + * mml2015.el (mml2015-gpg-encrypt): Disable multibyte in buffers + generated within the mm-with-unibyte-current-buffer macro. + +2010-05-13 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-bind-safe-url-regexp): Bind mm-w3m-safe-url-regexp + to nil when we're in a mml-preview buffer and no group is selected. + +2010-05-12 Andreas Seltenreich <seltenreich@gmx.de> + + * gnus-sum.el (gnus-summary-read-group-1): Don't jump to next group + when catching the `C-g'. Reported by: "Leo" + +2010-05-12 Katsumi Yamaoka <yamaoka@jpl.org> + + * message.el (message-forward-make-body-plain) + (message-forward-make-body-mml): Use mm-multibyte-string-p instead of + multibyte-string-p. + +2010-05-12 Katsumi Yamaoka <yamaoka@jpl.org> + + * message.el (message-forward-make-body-mml): Assume original message + is multibyte string; error on unibyte. + (message-forward-make-body-plain): Ditto; don't add excessive newline + in body end. + +2010-05-11 Andreas Seltenreich <seltenreich@gmx.de> + + * gnus-sum.el (gnus-summary-kill-thread): Use gnus-summary-mark-article + instead of g-s-m-a-as-unread to set the expirable mark. (Bug#5284) + +2010-05-11 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-extern.el (mm-extern-url): Don't use + mm-with-unibyte-current-buffer. + (mm-extern-cache-contents): Use with-current-buffer instead of + save-excursion + set-buffer. + +2010-05-10 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-util.el (mm-emacs-mule): Remove. + +2010-05-10 Andreas Seltenreich <seltenreich@gmx.de> + + * gnus-sum.el (gnus-summary-mode): Don't make minor-mode-alist + buffer-local as it's incompatible with Stefan Monnier's 2010-05-03 + change. + +2010-05-10 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-util.el (mm-with-unibyte-current-buffer): Redefine it so as not to + bind the default value of enable-multibyte-characters to nil. + +2010-05-10 Katsumi Yamaoka <yamaoka@jpl.org> + + * message.el (message-forward-make-body-plain) + (message-forward-make-body-mml): + Don't use mm-with-unibyte-current-buffer. + +2010-05-07 Christian von Roques <roques@mti.ag> (tiny change) * mml2015.el (mml2015-epg-find-usable-key): Skip disabled key (Bug#5592). diff --git a/lisp/gnus/ChangeLog.1 b/lisp/gnus/ChangeLog.1 index e455770711b..795df6f95a7 100644 --- a/lisp/gnus/ChangeLog.1 +++ b/lisp/gnus/ChangeLog.1 @@ -28,10 +28,10 @@ * gnus-start.el (gnus-slave-save-newsrc): * gnus-uu.el (gnus-uu-tmp-dir, gnus-uu-decode-binhex) - (gnus-uu-decode-binhex-view, gnus-uu-digest-mail-forward) - (gnus-uu-initialize): + (gnus-uu-decode-binhex-view, gnus-uu-digest-mail-forward) + (gnus-uu-initialize): * nnmail.el (nnmail-make-complex-temp-name, nnmail-get-new-mail): - Use make-temp-file. + Use make-temp-file. 1999-09-07 Eli Zaretskii <eliz@gnu.org> diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index cd7f3b56aad..b05ff5fc8ef 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 @@ -4905,8 +4905,8 @@ 2003-02-08 Michael Welsh Duggan <md5i@cs.cmu.edu> * nnmail.el (nnmail-split-it): If a message ends up matching the - same mailbox more than once, it will cause duplicates to appear - in the mailbox. + same mailbox more than once, it will cause duplicates to appear + in the mailbox. 2003-02-08 Simon Josefsson <jas@extundo.com> @@ -5553,8 +5553,8 @@ 2003-01-13 Jhair Tocancipa Triana <jhair_tocancipa@@gmx.net> * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use - /usr/bin/play as default player. - (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play. + /usr/bin/play as default player. + (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play. 2003-01-14 Katsumi Yamaoka <yamaoka@jpl.org> @@ -9034,7 +9034,7 @@ boolean not a string * gnus-group.el (gnus-group-line-format): Add description of %C * gnus-group.el (gnus-group-line-format-alist): Add gnus-tmp-comment - as %C + as %C * gnus-group.el (gnus-group-insert-group-line): Add gnus-tmp-comment. 2002-04-22 Paul Jarc <prj@po.cwru.edu> @@ -11326,7 +11326,7 @@ 2002-01-02 ShengHuo ZHU <zsh@cs.rochester.edu> * gnus-picon.el (gnus-picon-transform-newsgroups): Fix for the case - "Newsgroups: rec.music.beatles.moderated, rec.music.beatles". + "Newsgroups: rec.music.beatles.moderated, rec.music.beatles". 2002-01-03 Steve Youngs <youngs@xemacs.org> @@ -12256,7 +12256,7 @@ (imap-stream-alist): Backslash. * gnus-sum.el (gnus-summary-limit-to-author): Missing arguments. - Thanks to david.goldberg6@verizon.net (David S. Goldberg). + Thanks to david.goldberg6@verizon.net (David S. Goldberg). 2001-11-27 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -12755,7 +12755,7 @@ 2001-10-30 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> * gnus-spec.el (gnus-parse-simple-format): Use - buffer-substring-no-properties. + buffer-substring-no-properties. 2001-10-30 Katsumi Yamaoka <yamaoka@jpl.org> diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 5f899b3067a..0659ee893de 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -4822,7 +4822,11 @@ General format specifiers can also be used. See Info node (with-current-buffer gnus-article-current-summary gnus-newsgroup-name) gnus-newsgroup-name))) - (if (cond ((stringp gnus-safe-html-newsgroups) + (if (cond ((not group) + ;; Maybe we're in a mml-preview buffer + ;; and no group is selected. + t) + ((stringp gnus-safe-html-newsgroups) (string-match gnus-safe-html-newsgroups group)) ((consp gnus-safe-html-newsgroups) (member group gnus-safe-html-newsgroups))) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 480c546ca6e..3a2c944ed2f 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -3056,7 +3056,6 @@ The following commands are available: (gnus-simplify-mode-line) (setq major-mode 'gnus-summary-mode) (setq mode-name "Summary") - (make-local-variable 'minor-mode-alist) (use-local-map gnus-summary-mode-map) (buffer-disable-undo) (setq buffer-read-only t ;Disable modification @@ -3932,7 +3931,6 @@ If NO-DISPLAY, don't generate a summary buffer." (progn (set-buffer gnus-group-buffer) (gnus-group-jump-to-group group) - (gnus-group-next-unread-group 1) (gnus-configure-windows 'group 'force)) (gnus-handle-ephemeral-exit quit-config)) ;; Finally signal the quit. @@ -11509,7 +11507,7 @@ If the prefix argument is negative, tick articles instead." ((> unmark 0) (gnus-summary-mark-article-as-unread gnus-unread-mark)) ((= unmark 0) - (gnus-summary-mark-article-as-unread gnus-expirable-mark)) + (gnus-summary-mark-article nil gnus-expirable-mark)) (t (gnus-summary-mark-article-as-unread gnus-ticked-mark))) (setq articles (cdr articles)))) diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 79a88cd6bd3..947b1bd53e8 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -7161,22 +7161,28 @@ Optional DIGEST will use digest to forward." (defun message-forward-make-body-plain (forward-buffer) (insert "\n-------------------- Start of forwarded message --------------------\n") - (let ((b (point)) e) - (insert - (with-temp-buffer - (mm-disable-multibyte) - (insert - (with-current-buffer forward-buffer - (mm-with-unibyte-current-buffer (buffer-string)))) - (mm-enable-multibyte) - (mime-to-mml) - (goto-char (point-min)) - (when (looking-at "From ") - (replace-match "X-From-Line: ")) - (buffer-string))) + (let ((b (point)) + (contents (with-current-buffer forward-buffer (buffer-string))) + e) + (unless (featurep 'xemacs) + (unless (mm-multibyte-string-p contents) + (error "Attempt to insert unibyte string from the buffer \"%s\"\ + to the multibyte buffer \"%s\"" + (if (bufferp forward-buffer) + (buffer-name forward-buffer) + forward-buffer) + (buffer-name)))) + (insert (mm-with-multibyte-buffer + (insert contents) + (mime-to-mml) + (goto-char (point-min)) + (when (looking-at "From ") + (replace-match "X-From-Line: ")) + (buffer-string))) + (unless (bolp) (insert "\n")) (setq e (point)) (insert - "\n-------------------- End of forwarded message --------------------\n") + "-------------------- End of forwarded message --------------------\n") (message-remove-ignored-headers b e))) (defun message-remove-ignored-headers (b e) @@ -7212,18 +7218,22 @@ Optional DIGEST will use digest to forward." (insert "\n\n<#mml type=message/rfc822 disposition=inline>\n") (let ((b (point)) e) (if (not message-forward-decoded-p) - (insert - (with-temp-buffer - (mm-disable-multibyte) - (insert - (with-current-buffer forward-buffer - (mm-with-unibyte-current-buffer (buffer-string)))) - (mm-enable-multibyte) - (mime-to-mml) - (goto-char (point-min)) - (when (looking-at "From ") - (replace-match "X-From-Line: ")) - (buffer-string))) + (let ((contents (with-current-buffer forward-buffer (buffer-string)))) + (unless (featurep 'xemacs) + (unless (mm-multibyte-string-p contents) + (error "Attempt to insert unibyte string from the buffer \"%s\"\ + to the multibyte buffer \"%s\"" + (if (bufferp forward-buffer) + (buffer-name forward-buffer) + forward-buffer) + (buffer-name)))) + (insert (mm-with-multibyte-buffer + (insert contents) + (mime-to-mml) + (goto-char (point-min)) + (when (looking-at "From ") + (replace-match "X-From-Line: ")) + (buffer-string)))) (save-restriction (narrow-to-region (point) (point)) (mml-insert-buffer forward-buffer) diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el index 1e3df3c4cff..f40f798789c 100644 --- a/lisp/gnus/mm-extern.el +++ b/lisp/gnus/mm-extern.el @@ -67,9 +67,8 @@ (coding-system-for-read mm-binary-coding-system)) (unless url (error "URL is not specified")) - (mm-with-unibyte-current-buffer - (mm-url-insert-file-contents url)) (mm-disable-multibyte) + (mm-url-insert-file-contents url) (setq buffer-file-name name))) (defun mm-extern-anon-ftp (handle) @@ -125,7 +124,7 @@ (or access-type (error "Couldn't find access type")))) mm-extern-function-alist))) - buf handles) + handles) (unless func (error "Access type (%s) is not supported" access-type)) (mm-with-part handle @@ -136,8 +135,7 @@ (unless (bufferp (car handles)) (mm-destroy-parts handles) (error "Multipart external body is not supported")) - (save-excursion - (set-buffer (setq buf (mm-handle-buffer handles))) + (with-current-buffer (mm-handle-buffer handles) (let (good) (unwind-protect (progn diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index a288b8b1b6d..f657000205e 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el @@ -902,12 +902,6 @@ mail with multiple parts is preferred to sending a Unicode one.") out))) (eval-and-compile - (defvar mm-emacs-mule (and (not (featurep 'xemacs)) - (boundp 'enable-multibyte-characters) - (default-value 'enable-multibyte-characters) - (fboundp 'set-buffer-multibyte)) - "True in Emacs with Mule.") - (if (featurep 'xemacs) (defalias 'mm-enable-multibyte 'ignore) (defun mm-enable-multibyte () @@ -1230,33 +1224,23 @@ Use multibyte mode for this." (defmacro mm-with-unibyte-current-buffer (&rest forms) "Evaluate FORMS with current buffer temporarily made unibyte. -Also bind the default-value of `enable-multibyte-characters' to nil. -Equivalent to `progn' in XEmacs - -NOTE: Use this macro with caution in multibyte buffers (it is not -worth using this macro in unibyte buffers of course). Use of -`(set-buffer-multibyte t)', which is run finally, is generally -harmful since it is likely to modify existing data in the buffer. -For instance, it converts \"\\300\\255\" into \"\\255\" in -Emacs 23 (unicode)." +Equivalent to `progn' in XEmacs. + +Note: We recommend not using this macro any more; there should be +better ways to do a similar thing. The previous version of this macro +bound the default value of `enable-multibyte-characters' to nil while +evaluating FORMS but it is no longer done. So, some programs assuming +it if any may malfunction." (if (featurep 'xemacs) `(progn ,@forms) - ;; FIXME: (default-value 'enable-multibyte-characters) is read-only - ;; so let-binding it is wrong. The right fix is to not use this - ;; macro at all any more, since it's been ill-defined from the start. - (let ((multibyte (make-symbol "multibyte")) - (buffer (make-symbol "buffer"))) - `(if mm-emacs-mule - (let ((,multibyte enable-multibyte-characters) - (,buffer (current-buffer))) - (unwind-protect - (letf (((default-value 'enable-multibyte-characters) nil)) - (set-buffer-multibyte nil) - ,@forms) - (set-buffer ,buffer) - (set-buffer-multibyte ,multibyte))) - (letf (((default-value 'enable-multibyte-characters) nil)) - ,@forms))))) + (let ((multibyte (make-symbol "multibyte"))) + `(let ((,multibyte enable-multibyte-characters)) + (when ,multibyte + (set-buffer-multibyte nil)) + (prog1 + (progn ,@forms) + (when ,multibyte + (set-buffer-multibyte t))))))) (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el index a3ada29fa66..3ba479574fd 100644 --- a/lisp/gnus/mml1991.el +++ b/lisp/gnus/mml1991.el @@ -145,6 +145,7 @@ Whether the passphrase is cached at all is controlled by (delete-region (point-min) (point))) (mm-with-unibyte-current-buffer (with-temp-buffer + (inline (mm-disable-multibyte)) (setq cipher (current-buffer)) (insert-buffer-substring text) (unless (mc-encrypt-generic @@ -225,6 +226,7 @@ Whether the passphrase is cached at all is controlled by (delete-region (point-min) (point))) (mm-with-unibyte-current-buffer (with-temp-buffer + (inline (mm-disable-multibyte)) (flet ((gpg-encrypt-func (sign plaintext ciphertext result recipients &optional passphrase sign-with-key armor textmode) diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el index 130a3ca86a5..977f4dabb67 100644 --- a/lisp/gnus/mml2015.el +++ b/lisp/gnus/mml2015.el @@ -680,6 +680,7 @@ Whether the passphrase is cached at all is controlled by cipher) (mm-with-unibyte-current-buffer (with-temp-buffer + (mm-disable-multibyte) ;; set up a function to call the correct gpg encrypt routine ;; with the right arguments. (FIXME: this should be done ;; differently.) |