GNU bug report logs -
#6010
24.0.50; setting-constant enable-multibyte-characters
Previous Next
Reported by: Katsumi Yamaoka <yamaoka <at> jpl.org>
Date: Fri, 23 Apr 2010 07:52:02 UTC
Severity: normal
Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 6010 in the body.
You can then email your comments to 6010 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#6010
; Package
emacs
.
(Fri, 23 Apr 2010 07:52:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Katsumi Yamaoka <yamaoka <at> jpl.org>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Fri, 23 Apr 2010 07:52:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
I got the following error when sending the bug#6009 report
containing the attachment bt.gz to bug-gnu-emacs <at> gnu.org:
Debugger entered--Lisp error: (setting-constant enable-multibyte-characters)
set-default(enable-multibyte-characters nil)
mm-find-buffer-file-coding-system("~/bt.gz")
mml-generate-mime-1((part (type . "application/octet-stream") (filename . "~/bt.gz") (disposition . "attachment") (tag-location . 320) (contents . "")))
mml-generate-mime-1((multipart (type . "mixed") (part (type . "text/plain") (contents . "test.\n\n")) (part (type . "application/octet-stream") (filename . "~/bt.gz") (disposition . "attachment") (tag-location . 320) (contents . ""))))
mml-generate-mime()
message-encode-message-body()
message-send-mail(nil)
my-message-send-via-mail(nil)
message-send(nil)
message-send-and-exit(nil)
call-interactively(message-send-and-exit nil nil)
(I used the old mm-util.el instead then.)
It seems a matter of course, however I've never encountered such
an error for these months IIRC. You can reproduce the same error
now by evaluating:
(letf (((default-value 'enable-multibyte-characters) nil))
(generate-new-buffer " *temp*"))
The relevant ChangeLog entry is:
2009-09-04 Glenn Morris <rgm <at> gnu.org>
[...]
* mm-util.el (mm-with-unibyte-current-buffer)
(mm-find-buffer-file-coding-system):
* yenc.el (yenc-decode-region): Use default-value rather than
default-enable-multibyte-characters.
Regards,
Reply sent
to
Stefan Monnier <monnier <at> IRO.UMontreal.CA>
:
You have taken responsibility.
(Fri, 23 Apr 2010 16:22:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Katsumi Yamaoka <yamaoka <at> jpl.org>
:
bug acknowledged by developer.
(Fri, 23 Apr 2010 16:22:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 6010-done <at> debbugs.gnu.org (full text, mbox):
> 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)
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 22 May 2010 11:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 15 years and 93 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.