bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#6010: 24.0.50; setting-constant enable-multibyte-characters


From: Stefan Monnier
Subject: bug#6010: 24.0.50; setting-constant enable-multibyte-characters
Date: Fri, 23 Apr 2010 12:16:24 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.92 (gnu/linux)

> Debugger entered--Lisp error: (setting-constant enable-multibyte-characters)
>   set-default(enable-multibyte-characters nil)
>   mm-find-buffer-file-coding-system("~/bt.gz")

Thanks.  The patch below should have fixed it,


        Stefan


=== modified file 'lisp/gnus/mm-util.el'
--- lisp/gnus/mm-util.el        2010-03-15 01:38:28 +0000
+++ lisp/gnus/mm-util.el        2010-04-23 15:04:34 +0000
@@ -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))

=== modified file 'lisp/gnus/yenc.el'
--- lisp/gnus/yenc.el   2010-01-13 08:35:10 +0000
+++ lisp/gnus/yenc.el   2010-04-23 14:59:23 +0000
@@ -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)







reply via email to

[Prev in Thread] Current Thread [Next in Thread]