diff options
| author | Katsumi Yamaoka | 2010-05-10 07:25:27 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2010-05-10 07:25:27 +0000 |
| commit | 72e841ce72dda0d21f16a04951bee8e1e1d71fae (patch) | |
| tree | f17527069f690d28057fead85815be0cc19e8c2c | |
| parent | d8a7b2720048f6635a62873809169738728e629f (diff) | |
| download | emacs-72e841ce72dda0d21f16a04951bee8e1e1d71fae.tar.gz emacs-72e841ce72dda0d21f16a04951bee8e1e1d71fae.zip | |
Synch with Gnus trunk.
(mm-with-unibyte-current-buffer): Redefine it so as not to bind the default
value of enable-multibyte-characters to nil.
| -rw-r--r-- | lisp/gnus/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/gnus/mm-util.el | 40 |
2 files changed, 20 insertions, 25 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 65974c46124..b1a687f8aff 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,5 +1,10 @@ | |||
| 1 | 2010-05-10 Katsumi Yamaoka <yamaoka@jpl.org> | 1 | 2010-05-10 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 2 | ||
| 3 | * mm-util.el (mm-with-unibyte-current-buffer): Redefine it so as not to | ||
| 4 | bind the default value of enable-multibyte-characters to nil. | ||
| 5 | |||
| 6 | 2010-05-10 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 7 | |||
| 3 | * message.el (message-forward-make-body-plain) | 8 | * message.el (message-forward-make-body-plain) |
| 4 | (message-forward-make-body-mml): | 9 | (message-forward-make-body-mml): |
| 5 | Don't use mm-with-unibyte-current-buffer. | 10 | Don't use mm-with-unibyte-current-buffer. |
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index a288b8b1b6d..fe7fd78afa2 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el | |||
| @@ -1230,33 +1230,23 @@ Use multibyte mode for this." | |||
| 1230 | 1230 | ||
| 1231 | (defmacro mm-with-unibyte-current-buffer (&rest forms) | 1231 | (defmacro mm-with-unibyte-current-buffer (&rest forms) |
| 1232 | "Evaluate FORMS with current buffer temporarily made unibyte. | 1232 | "Evaluate FORMS with current buffer temporarily made unibyte. |
| 1233 | Also bind the default-value of `enable-multibyte-characters' to nil. | 1233 | Equivalent to `progn' in XEmacs. |
| 1234 | Equivalent to `progn' in XEmacs | 1234 | |
| 1235 | 1235 | Note: We recommend not using this macro any more; there should be | |
| 1236 | NOTE: Use this macro with caution in multibyte buffers (it is not | 1236 | better ways to do a similar thing. The previous version of this macro |
| 1237 | worth using this macro in unibyte buffers of course). Use of | 1237 | bound the default value of `enable-multibyte-characters' to nil while |
| 1238 | `(set-buffer-multibyte t)', which is run finally, is generally | 1238 | evaluating FORMS but it is no longer done. So, some programs assuming |
| 1239 | harmful since it is likely to modify existing data in the buffer. | 1239 | it if any may malfunction." |
| 1240 | For instance, it converts \"\\300\\255\" into \"\\255\" in | ||
| 1241 | Emacs 23 (unicode)." | ||
| 1242 | (if (featurep 'xemacs) | 1240 | (if (featurep 'xemacs) |
| 1243 | `(progn ,@forms) | 1241 | `(progn ,@forms) |
| 1244 | ;; FIXME: (default-value 'enable-multibyte-characters) is read-only | 1242 | (let ((multibyte (make-symbol "multibyte"))) |
| 1245 | ;; so let-binding it is wrong. The right fix is to not use this | 1243 | `(let ((,multibyte enable-multibyte-characters)) |
| 1246 | ;; macro at all any more, since it's been ill-defined from the start. | 1244 | (when ,multibyte |
| 1247 | (let ((multibyte (make-symbol "multibyte")) | 1245 | (set-buffer-multibyte nil)) |
| 1248 | (buffer (make-symbol "buffer"))) | 1246 | (prog1 |
| 1249 | `(if mm-emacs-mule | 1247 | (progn ,@forms) |
| 1250 | (let ((,multibyte enable-multibyte-characters) | 1248 | (when ,multibyte |
| 1251 | (,buffer (current-buffer))) | 1249 | (set-buffer-multibyte t))))))) |
| 1252 | (unwind-protect | ||
| 1253 | (letf (((default-value 'enable-multibyte-characters) nil)) | ||
| 1254 | (set-buffer-multibyte nil) | ||
| 1255 | ,@forms) | ||
| 1256 | (set-buffer ,buffer) | ||
| 1257 | (set-buffer-multibyte ,multibyte))) | ||
| 1258 | (letf (((default-value 'enable-multibyte-characters) nil)) | ||
| 1259 | ,@forms))))) | ||
| 1260 | (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) | 1250 | (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) |
| 1261 | (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) | 1251 | (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) |
| 1262 | 1252 | ||