# HG changeset patch # User Stefan Monnier # Date 1272039351 14400 # Node ID 7ffbe3a6a8f29b26b6f37ef2064ddd32b969173e # Parent 6f2d16153b19b86b4ac50c8bb6fbbf6a9121993c * mm-util.el (mm-find-buffer-file-coding-system): * yenc.el (yenc-decode-region): Don't let-bind a read-only variable. diff -r 6f2d16153b19 -r 7ffbe3a6a8f2 lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Fri Apr 23 11:59:32 2010 -0400 +++ b/lisp/gnus/ChangeLog Fri Apr 23 12:15:51 2010 -0400 @@ -1,3 +1,8 @@ +2010-04-23 Stefan Monnier + + * mm-util.el (mm-find-buffer-file-coding-system): + * yenc.el (yenc-decode-region): Don't let-bind a read-only variable. + 2010-04-22 Andreas Seltenreich * message.el (message-generate-headers): Record insertion of optional diff -r 6f2d16153b19 -r 7ffbe3a6a8f2 lisp/gnus/mm-util.el --- a/lisp/gnus/mm-util.el Fri Apr 23 11:59:32 2010 -0400 +++ b/lisp/gnus/mm-util.el Fri Apr 23 12:15:51 2010 -0400 @@ -1239,6 +1239,9 @@ harmful since it is likely to modify existing data in the buffer. For instance, it converts \"\\300\\255\" into \"\\255\" in Emacs 23 (unicode)." + ;; 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 @@ -1593,8 +1596,8 @@ filename)) (mm-decompress-buffer filename nil t)))) (when decomp - (set-buffer (letf (((default-value 'enable-multibyte-characters) nil)) - (generate-new-buffer " *temp*"))) + (set-buffer (generate-new-buffer " *temp*")) + (mm-disable-multibyte) (insert decomp) (setq filename (file-name-sans-extension filename))) (goto-char (point-min)) diff -r 6f2d16153b19 -r 7ffbe3a6a8f2 lisp/gnus/yenc.el --- a/lisp/gnus/yenc.el Fri Apr 23 11:59:32 2010 -0400 +++ b/lisp/gnus/yenc.el Fri Apr 23 12:15:51 2010 -0400 @@ -89,8 +89,9 @@ (when (re-search-forward "^=yend.*$" end t) (setq last (match-beginning 0)) (setq footer-alist (yenc-parse-line (match-string 0))) - (letf (((default-value 'enable-multibyte-characters) nil)) - (setq work-buffer (generate-new-buffer " *yenc-work*"))) + (with-current-buffer + (setq work-buffer (generate-new-buffer " *yenc-work*")) + (set-buffer-multibyte nil)) (while (< first last) (setq char (char-after first)) (cond ((or (eq char ?\r)