# HG changeset patch # User Reiner Steib # Date 1227972409 0 # Node ID d13d583ff5cc7124ebd07f9fcbe4db1774795edd # Parent a368e04ccb9a80ddb5aaa23fe643facf8a626c2b (nnimap-demule-use-string-to-multibyte): New temporary variable for debugging bug#464 and bug#1174. (nnimap-demule): Use it. diff -r a368e04ccb9a -r d13d583ff5cc lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Sat Nov 29 13:47:31 2008 +0000 +++ b/lisp/gnus/ChangeLog Sat Nov 29 15:26:49 2008 +0000 @@ -1,3 +1,9 @@ +2008-11-29 Reiner Steib + + * nnimap.el (nnimap-demule-use-string-to-multibyte): New temporary + variable for debugging bug#464 and bug#1174. + (nnimap-demule): Use it. + 2008-11-21 Stefan Monnier * message.el (message-send-mail): Just set the buffer to unibyte diff -r a368e04ccb9a -r d13d583ff5cc lisp/gnus/nnimap.el --- a/lisp/gnus/nnimap.el Sat Nov 29 13:47:31 2008 +0000 +++ b/lisp/gnus/nnimap.el Sat Nov 29 15:26:49 2008 +0000 @@ -901,12 +901,35 @@ (when (nnimap-possibly-change-server server) (nnoo-status-message 'nnimap server))) +(defvar nnimap-demule-use-string-to-multibyte (fboundp 'string-to-multibyte) + "Temporary internal debug variable. +If you have problems (UTF-8 not decoded correctly on IMAP) with +the default value, please report it as a bug!") +;; FIXME: Clarify if we need to make this variable conditional on the Emacs +;; version (Emacs 22 vs. Emacs 23;Emacs 21 doesn't have `string-to-multibyte' +;; anyhow). --rsteib +;; +;; http://thread.gmane.org/gmane.emacs.gnus.general/67112 +;; (bug#464, reported by James Cloos) +;; http://thread.gmane.org/gmane.emacs.bugs/21524 +;; (bug#1174, reported by Frank Schmitt) + (defun nnimap-demule (string) ;; BEWARE: we used to use string-as-multibyte here which is braindead ;; because it will turn accidental emacs-mule-valid byte sequences ;; into multibyte chars. --Stef ;; Reverted, braindead got 7.5 out of 10 on imdb, so it can't be ;; that bad. --Simon + (gnus-message 9 "nnimap-demule-use-string-to-multibyte: %s" + nnimap-demule-use-string-to-multibyte) + (if nnimap-demule-use-string-to-multibyte + ;; Stefan + (funcall (if (and (fboundp 'string-to-multibyte) + (subrp (symbol-function 'string-to-multibyte))) + 'string-to-multibyte + 'identity) + (or string ""))) + ;; Simon (funcall (if (and (fboundp 'string-as-multibyte) (subrp (symbol-function 'string-as-multibyte))) 'string-as-multibyte