(defsubst mm-enable-multibyte ()
"Enable multibyte in the current buffer."
- (when (fboundp 'set-buffer-multibyte)
+ (when (and (fboundp 'set-buffer-multibyte)
+ (default-value enable-multibyte-characters))
(set-buffer-multibyte t)))
+(defsubst mm-disable-multibyte ()
+ "Disable multibyte in the current buffer."
+ (when (fboundp 'set-buffer-multibyte)
+ (set-buffer-multibyte nil)))
+
(defun mm-mime-charset (charset b e)
(if (fboundp 'coding-system-get)
(or
(with-temp-buffer ,@forms)
(let ((,multibyte (default-value enable-multibyte-characters))
,temp-buffer)
- (setq-default enable-multibyte-characters nil)
- (setq ,temp-buffer
- (get-buffer-create (generate-new-buffer-name " *temp*")))
(unwind-protect
- (with-current-buffer ,temp-buffer
- (let (buffer-file-coding-system)
- ,@forms))
- (and (buffer-name ,temp-buffer)
- (kill-buffer ,temp-buffer))
+ (progn
+ (setq-default enable-multibyte-characters nil)
+ (setq ,temp-buffer
+ (get-buffer-create (generate-new-buffer-name " *temp*")))
+ (unwind-protect
+ (with-current-buffer ,temp-buffer
+ (let (buffer-file-coding-system)
+ ,@forms))
+ (and (buffer-name ,temp-buffer)
+ (kill-buffer ,temp-buffer))))
(setq-default enable-multibyte-characters ,multibyte))))))
(put 'mm-with-unibyte-buffer 'lisp-indent-function 0)
(put 'mm-with-unibyte-buffer 'edebug-form-spec '(body))
-
(provide 'mm-util)
;;; mm-util.el ends here