aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatsumi Yamaoka2010-05-07 06:58:17 +0000
committerKatsumi Yamaoka2010-05-07 06:58:17 +0000
commit765d43190e16d6093aa794743b9f92f40566bb15 (patch)
treeadeb28652d9a53b3c78de981da0e3aac91106920
parent40ab7974b58fe90e6aa1087453b213e28a89a51d (diff)
downloademacs-765d43190e16d6093aa794743b9f92f40566bb15.tar.gz
emacs-765d43190e16d6093aa794743b9f92f40566bb15.zip
Synch with Gnus trunk.
* mail/binhex.el (binhex-decode-region-internal) * mail/uudecode.el (uudecode-decode-region-internal) * net/dns.el (dns-read-string-name, dns-write, dns-read) (dns-read-type, dns-query) * pgg-parse.el (pgg-parse-armor) * pgg.el (pgg-verify-region) * sha1.el (sha1-string-external): Don't run set-buffer-multibyte for XEmacs. * net/imap.el (imap-disable-multibyte): Redefine them as a macro. * nnweb.el (nnweb-gmane-search) * yenc.el (yenc-decode-region): Don't run set-buffer-multibyte for XEmacs. * gnus-art.el (gnus-article-browse-html-parts) * gnus-group.el (gnus-read-ephemeral-gmane-group) (gnus-read-ephemeral-bug-grou): Use mm-make-temp-file instead of make-temp-file. * gnus-dired.el (gnus-dired-mode): Bind gnus-dired-mode-hook, gnus-dired-mode-on-hook and gnus-dired-mode-off-hook for XEmacs when compiling. * gnus-ml.el (gnus-mailing-list-mode): Bind gnus-mailing-list-mode-hook, gnus-mailing-list-mode-on-hook and gnus-mailing-list-mode-off-hook for XEmacs when compiling. * gnus-salt.el (gnus-pick-mode): Bind gnus-pick-mode-on-hook and gnus-pick-mode-off-hook for XEmacs when compiling. (gnus-binary-mode): Bind gnus-binary-mode-on-hook and gnus-binary-mode-off-hook for XEmacs when compiling. * gnus-sum.el (gnus-summary-limit-strange-charsets-predicate): Return nil if char-charset is not available. * sieve-manage.el (sieve-manage-disable-multibyte): Redefine them as a macro. * mm-url.el (mm-url-form-encode-xwfu): Use mm-encode-coding-string instead of encode-coding-string. * mm-util.el (mm-enable-multibyte, mm-disable-multibyte): Use (featurep 'xemacs) instead of mm-emacs-mule to switch function definitions. (mm-with-unibyte-current-buffer): Make it a progn macro for XEmacs.
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/gnus/ChangeLog37
-rw-r--r--lisp/gnus/gnus-art.el2
-rw-r--r--lisp/gnus/gnus-dired.el6
-rw-r--r--lisp/gnus/gnus-group.el4
-rw-r--r--lisp/gnus/gnus-ml.el6
-rw-r--r--lisp/gnus/gnus-salt.el10
-rw-r--r--lisp/gnus/gnus-sum.el17
-rw-r--r--lisp/gnus/mm-url.el12
-rw-r--r--lisp/gnus/mm-util.el54
-rw-r--r--lisp/gnus/nnweb.el2
-rw-r--r--lisp/gnus/sieve-manage.el6
-rw-r--r--lisp/gnus/yenc.el6
-rw-r--r--lisp/mail/binhex.el3
-rw-r--r--lisp/mail/uudecode.el2
-rw-r--r--lisp/net/dns.el10
-rw-r--r--lisp/net/imap.el6
-rw-r--r--lisp/pgg-parse.el4
-rw-r--r--lisp/pgg.el4
-rw-r--r--lisp/sha1.el2
20 files changed, 139 insertions, 67 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a7343b2d1b4..a99797e5ed8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,16 @@
12010-05-07 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * mail/binhex.el (binhex-decode-region-internal)
4 * mail/uudecode.el (uudecode-decode-region-internal)
5 * net/dns.el (dns-read-string-name, dns-write, dns-read)
6 (dns-read-type, dns-query)
7 * pgg-parse.el (pgg-parse-armor)
8 * pgg.el (pgg-verify-region)
9 * sha1.el (sha1-string-external): Don't run set-buffer-multibyte for
10 XEmacs.
11
12 * net/imap.el (imap-disable-multibyte): Redefine them as a macro.
13
12010-05-07 Juanma Barranquero <lekktu@gmail.com> 142010-05-07 Juanma Barranquero <lekktu@gmail.com>
2 15
3 * progmodes/cperl-mode.el (cperl-mode-unload-function): New function. 16 * progmodes/cperl-mode.el (cperl-mode-unload-function): New function.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 3a4a502679d..5516a8c81c8 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,40 @@
12010-05-07 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * nnweb.el (nnweb-gmane-search)
4 * yenc.el (yenc-decode-region): Don't run set-buffer-multibyte for
5 XEmacs.
6
7 * gnus-art.el (gnus-article-browse-html-parts)
8 * gnus-group.el (gnus-read-ephemeral-gmane-group)
9 (gnus-read-ephemeral-bug-grou): Use mm-make-temp-file instead of
10 make-temp-file.
11
12 * gnus-dired.el (gnus-dired-mode): Bind gnus-dired-mode-hook,
13 gnus-dired-mode-on-hook and gnus-dired-mode-off-hook for XEmacs when
14 compiling.
15
16 * gnus-ml.el (gnus-mailing-list-mode): Bind gnus-mailing-list-mode-hook,
17 gnus-mailing-list-mode-on-hook and gnus-mailing-list-mode-off-hook for
18 XEmacs when compiling.
19
20 * gnus-salt.el (gnus-pick-mode): Bind gnus-pick-mode-on-hook and
21 gnus-pick-mode-off-hook for XEmacs when compiling.
22 (gnus-binary-mode): Bind gnus-binary-mode-on-hook and
23 gnus-binary-mode-off-hook for XEmacs when compiling.
24
25 * gnus-sum.el (gnus-summary-limit-strange-charsets-predicate): Return
26 nil if char-charset is not available.
27
28 * sieve-manage.el (sieve-manage-disable-multibyte): Redefine them as a
29 macro.
30
31 * mm-url.el (mm-url-form-encode-xwfu): Use mm-encode-coding-string
32 instead of encode-coding-string.
33
34 * mm-util.el (mm-enable-multibyte, mm-disable-multibyte): Use (featurep
35 'xemacs) instead of mm-emacs-mule to switch function definitions.
36 (mm-with-unibyte-current-buffer): Make it a progn macro for XEmacs.
37
12010-05-06 Tommi Vainikainen <thv@iki.fi> (tiny change) 382010-05-06 Tommi Vainikainen <thv@iki.fi> (tiny change)
2 39
3 * mml-sec.el (mml-secure-message-sign): Fix cut and paste error. 40 * mml-sec.el (mml-secure-message-sign): Fix cut and paste error.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 8b9d8b69ff4..7ce3a4374d1 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -2897,7 +2897,7 @@ message header will be added to the bodies of the \"text/html\" parts."
2897<img[\t\n ]+\\(?:[^\t\n >]+[\t\n ]+\\)*src=\"\\(cid:\\([^\"]+\\)\\)\"" 2897<img[\t\n ]+\\(?:[^\t\n >]+[\t\n ]+\\)*src=\"\\(cid:\\([^\"]+\\)\\)\""
2898 nil t) 2898 nil t)
2899 (unless cid-dir 2899 (unless cid-dir
2900 (setq cid-dir (make-temp-file "cid" t)) 2900 (setq cid-dir (mm-make-temp-file "cid" t))
2901 (add-to-list 'gnus-article-browse-html-temp-list cid-dir)) 2901 (add-to-list 'gnus-article-browse-html-temp-list cid-dir))
2902 (setq file nil 2902 (setq file nil
2903 content nil) 2903 content nil)
diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el
index 4874de1925a..e5c886d8672 100644
--- a/lisp/gnus/gnus-dired.el
+++ b/lisp/gnus/gnus-dired.el
@@ -87,6 +87,12 @@ See `mail-user-agent' for more information."
87 gnus-user-agent) 87 gnus-user-agent)
88 (function :tag "Other"))) 88 (function :tag "Other")))
89 89
90(eval-when-compile
91 (when (featurep 'xemacs)
92 (defvar gnus-dired-mode-hook)
93 (defvar gnus-dired-mode-on-hook)
94 (defvar gnus-dired-mode-off-hook)))
95
90(define-minor-mode gnus-dired-mode 96(define-minor-mode gnus-dired-mode
91 "Minor mode for intersections of gnus and dired. 97 "Minor mode for intersections of gnus and dired.
92 98
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 6d3b80e4f88..7a887735fe2 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -2364,7 +2364,7 @@ specified by `gnus-gmane-group-download-format'."
2364 (unless range (setq range 500)) 2364 (unless range (setq range 500))
2365 (when (< range 1) 2365 (when (< range 1)
2366 (error "Invalid range: %s" range)) 2366 (error "Invalid range: %s" range))
2367 (let ((tmpfile (make-temp-file 2367 (let ((tmpfile (mm-make-temp-file
2368 (format "%s.start-%s.range-%s." group start range))) 2368 (format "%s.start-%s.range-%s." group start range)))
2369 (gnus-thread-sort-functions '(gnus-thread-sort-by-number))) 2369 (gnus-thread-sort-functions '(gnus-thread-sort-by-number)))
2370 (with-temp-file tmpfile 2370 (with-temp-file tmpfile
@@ -2445,7 +2445,7 @@ the bug number, and browsing the URL must return mbox output."
2445 (cdr (assoc 'emacs gnus-bug-group-download-format-alist)))) 2445 (cdr (assoc 'emacs gnus-bug-group-download-format-alist))))
2446 (when (stringp number) 2446 (when (stringp number)
2447 (setq number (string-to-number number))) 2447 (setq number (string-to-number number)))
2448 (let ((tmpfile (make-temp-file "gnus-temp-group-"))) 2448 (let ((tmpfile (mm-make-temp-file "gnus-temp-group-")))
2449 (with-temp-file tmpfile 2449 (with-temp-file tmpfile
2450 (url-insert-file-contents (format mbox-url number)) 2450 (url-insert-file-contents (format mbox-url number))
2451 (write-region (point-min) (point-max) tmpfile) 2451 (write-region (point-min) (point-max) tmpfile)
diff --git a/lisp/gnus/gnus-ml.el b/lisp/gnus/gnus-ml.el
index 3a5b8deb45f..30c1bfedcef 100644
--- a/lisp/gnus/gnus-ml.el
+++ b/lisp/gnus/gnus-ml.el
@@ -85,6 +85,12 @@ If FORCE is non-nil, replace the old ones."
85 (gnus-mailing-list-mode 1)) 85 (gnus-mailing-list-mode 1))
86 (gnus-message 1 "no list-post in this message.")))) 86 (gnus-message 1 "no list-post in this message."))))
87 87
88(eval-when-compile
89 (when (featurep 'xemacs)
90 (defvar gnus-mailing-list-mode-hook)
91 (defvar gnus-mailing-list-mode-on-hook)
92 (defvar gnus-mailing-list-mode-off-hook)))
93
88;;;###autoload 94;;;###autoload
89(define-minor-mode gnus-mailing-list-mode 95(define-minor-mode gnus-mailing-list-mode
90 "Minor mode for providing mailing-list commands. 96 "Minor mode for providing mailing-list commands.
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el
index 21c556ad33f..52f307d7fdd 100644
--- a/lisp/gnus/gnus-salt.el
+++ b/lisp/gnus/gnus-salt.el
@@ -101,6 +101,11 @@ It accepts the same format specs that `gnus-summary-line-format' does."
101 ["Start reading" gnus-pick-start-reading t] 101 ["Start reading" gnus-pick-start-reading t]
102 ["Switch pick mode off" gnus-pick-mode gnus-pick-mode])))) 102 ["Switch pick mode off" gnus-pick-mode gnus-pick-mode]))))
103 103
104(eval-when-compile
105 (when (featurep 'xemacs)
106 (defvar gnus-pick-mode-on-hook)
107 (defvar gnus-pick-mode-off-hook)))
108
104(define-minor-mode gnus-pick-mode 109(define-minor-mode gnus-pick-mode
105 "Minor mode for providing a pick-and-read interface in Gnus summary buffers. 110 "Minor mode for providing a pick-and-read interface in Gnus summary buffers.
106 111
@@ -332,6 +337,11 @@ This must be bound to a button-down mouse event."
332 '("Pick" 337 '("Pick"
333 ["Switch binary mode off" gnus-binary-mode t])))) 338 ["Switch binary mode off" gnus-binary-mode t]))))
334 339
340(eval-when-compile
341 (when (featurep 'xemacs)
342 (defvar gnus-binary-mode-on-hook)
343 (defvar gnus-binary-mode-off-hook)))
344
335(define-minor-mode gnus-binary-mode 345(define-minor-mode gnus-binary-mode
336 "Minor mode for providing a binary group interface in Gnus summary buffers." 346 "Minor mode for providing a binary group interface in Gnus summary buffers."
337 :lighter " Binary" :keymap gnus-binary-mode-map 347 :lighter " Binary" :keymap gnus-binary-mode-map
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 5939f9b6e7e..480c546ca6e 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -8185,14 +8185,15 @@ in `nnmail-extra-headers'."
8185 (gnus-summary-position-point)))) 8185 (gnus-summary-position-point))))
8186 8186
8187(defun gnus-summary-limit-strange-charsets-predicate (header) 8187(defun gnus-summary-limit-strange-charsets-predicate (header)
8188 (let ((string (concat (mail-header-subject header) 8188 (when (fboundp 'char-charset)
8189 (mail-header-from header))) 8189 (let ((string (concat (mail-header-subject header)
8190 charset found) 8190 (mail-header-from header)))
8191 (dotimes (i (1- (length string))) 8191 charset found)
8192 (setq charset (format "%s" (char-charset (aref string (1+ i))))) 8192 (dotimes (i (1- (length string)))
8193 (when (string-match "unicode\\|big\\|japanese" charset) 8193 (setq charset (format "%s" (char-charset (aref string (1+ i)))))
8194 (setq found t))) 8194 (when (string-match "unicode\\|big\\|japanese" charset)
8195 found)) 8195 (setq found t)))
8196 found)))
8196 8197
8197(defun gnus-summary-limit-to-predicate (predicate) 8198(defun gnus-summary-limit-to-predicate (predicate)
8198 "Limit to articles where PREDICATE returns non-nil. 8199 "Limit to articles where PREDICATE returns non-nil.
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el
index 35a43f5bd27..c5a8d9f7fdc 100644
--- a/lisp/gnus/mm-url.el
+++ b/lisp/gnus/mm-url.el
@@ -404,14 +404,10 @@ spaces. Die Die Die."
404 ((= char ? ) "+") 404 ((= char ? ) "+")
405 ((memq char mm-url-unreserved-chars) (char-to-string char)) 405 ((memq char mm-url-unreserved-chars) (char-to-string char))
406 (t (upcase (format "%%%02x" char))))) 406 (t (upcase (format "%%%02x" char)))))
407 ;; Fixme: Should this actually be accepting multibyte? Is there a 407 (mm-encode-coding-string chunk
408 ;; better way in XEmacs? 408 (if (fboundp 'find-coding-systems-string)
409 (if (featurep 'mule) 409 (car (find-coding-systems-string chunk))
410 (encode-coding-string chunk 410 buffer-file-coding-system))
411 (if (fboundp 'find-coding-systems-string)
412 (car (find-coding-systems-string chunk))
413 buffer-file-coding-system))
414 chunk)
415 "")) 411 ""))
416 412
417(defun mm-url-encode-www-form-urlencoded (pairs) 413(defun mm-url-encode-www-form-urlencoded (pairs)
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index c1dc4f5b754..a288b8b1b6d 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -908,20 +908,20 @@ mail with multiple parts is preferred to sending a Unicode one.")
908 (fboundp 'set-buffer-multibyte)) 908 (fboundp 'set-buffer-multibyte))
909 "True in Emacs with Mule.") 909 "True in Emacs with Mule.")
910 910
911 (if mm-emacs-mule 911 (if (featurep 'xemacs)
912 (defun mm-enable-multibyte () 912 (defalias 'mm-enable-multibyte 'ignore)
913 "Set the multibyte flag of the current buffer. 913 (defun mm-enable-multibyte ()
914 "Set the multibyte flag of the current buffer.
914Only do this if the default value of `enable-multibyte-characters' is 915Only do this if the default value of `enable-multibyte-characters' is
915non-nil. This is a no-op in XEmacs." 916non-nil. This is a no-op in XEmacs."
916 (set-buffer-multibyte 'to)) 917 (set-buffer-multibyte t)))
917 (defalias 'mm-enable-multibyte 'ignore))
918 918
919 (if mm-emacs-mule 919 (if (featurep 'xemacs)
920 (defun mm-disable-multibyte () 920 (defalias 'mm-disable-multibyte 'ignore)
921 "Unset the multibyte flag of in the current buffer. 921 (defun mm-disable-multibyte ()
922 "Unset the multibyte flag of in the current buffer.
922This is a no-op in XEmacs." 923This is a no-op in XEmacs."
923 (set-buffer-multibyte nil)) 924 (set-buffer-multibyte nil))))
924 (defalias 'mm-disable-multibyte 'ignore)))
925 925
926(defun mm-preferred-coding-system (charset) 926(defun mm-preferred-coding-system (charset)
927 ;; A typo in some Emacs versions. 927 ;; A typo in some Emacs versions.
@@ -1239,22 +1239,24 @@ worth using this macro in unibyte buffers of course). Use of
1239harmful since it is likely to modify existing data in the buffer. 1239harmful since it is likely to modify existing data in the buffer.
1240For instance, it converts \"\\300\\255\" into \"\\255\" in 1240For instance, it converts \"\\300\\255\" into \"\\255\" in
1241Emacs 23 (unicode)." 1241Emacs 23 (unicode)."
1242 ;; FIXME: (default-value 'enable-multibyte-characters) is read-only 1242 (if (featurep 'xemacs)
1243 ;; so let-binding it is wrong. The right fix is to not use this 1243 `(progn ,@forms)
1244 ;; macro at all any more, since it's been ill-defined from the start. 1244 ;; FIXME: (default-value 'enable-multibyte-characters) is read-only
1245 (let ((multibyte (make-symbol "multibyte")) 1245 ;; so let-binding it is wrong. The right fix is to not use this
1246 (buffer (make-symbol "buffer"))) 1246 ;; macro at all any more, since it's been ill-defined from the start.
1247 `(if mm-emacs-mule 1247 (let ((multibyte (make-symbol "multibyte"))
1248 (let ((,multibyte enable-multibyte-characters) 1248 (buffer (make-symbol "buffer")))
1249 (,buffer (current-buffer))) 1249 `(if mm-emacs-mule
1250 (unwind-protect 1250 (let ((,multibyte enable-multibyte-characters)
1251 (letf (((default-value 'enable-multibyte-characters) nil)) 1251 (,buffer (current-buffer)))
1252 (set-buffer-multibyte nil) 1252 (unwind-protect
1253 ,@forms) 1253 (letf (((default-value 'enable-multibyte-characters) nil))
1254 (set-buffer ,buffer) 1254 (set-buffer-multibyte nil)
1255 (set-buffer-multibyte ,multibyte))) 1255 ,@forms)
1256 (letf (((default-value 'enable-multibyte-characters) nil)) 1256 (set-buffer ,buffer)
1257 ,@forms)))) 1257 (set-buffer-multibyte ,multibyte)))
1258 (letf (((default-value 'enable-multibyte-characters) nil))
1259 ,@forms)))))
1258(put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) 1260(put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0)
1259(put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) 1261(put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body))
1260 1262
diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el
index b6b0ddd41a9..fcb8e93a05d 100644
--- a/lisp/gnus/nnweb.el
+++ b/lisp/gnus/nnweb.el
@@ -525,7 +525,7 @@ Valid types include `google', `dejanews', and `gmane'.")
525 ;;("TOPDOC" . "1000") 525 ;;("TOPDOC" . "1000")
526 )))) 526 ))))
527 (setq buffer-file-name nil) 527 (setq buffer-file-name nil)
528 (set-buffer-multibyte t) 528 (unless (featurep 'xemacs) (set-buffer-multibyte t))
529 (mm-decode-coding-region (point-min) (point-max) 'utf-8) 529 (mm-decode-coding-region (point-min) (point-max) 'utf-8)
530 t) 530 t)
531 531
diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el
index 4b78490bbe3..bd8741fe85f 100644
--- a/lisp/gnus/sieve-manage.el
+++ b/lisp/gnus/sieve-manage.el
@@ -191,10 +191,10 @@ Valid states are `closed', `initial', `nonauth', and `auth'.")
191 191
192;; Internal utility functions 192;; Internal utility functions
193 193
194(defsubst sieve-manage-disable-multibyte () 194(defmacro sieve-manage-disable-multibyte ()
195 "Enable multibyte in the current buffer." 195 "Enable multibyte in the current buffer."
196 (when (fboundp 'set-buffer-multibyte) 196 (unless (featurep 'xemacs)
197 (set-buffer-multibyte nil))) 197 '(set-buffer-multibyte nil)))
198 198
199(declare-function password-read "password-cache" (prompt &optional key)) 199(declare-function password-read "password-cache" (prompt &optional key))
200(declare-function password-cache-add "password-cache" (key password)) 200(declare-function password-cache-add "password-cache" (key password))
diff --git a/lisp/gnus/yenc.el b/lisp/gnus/yenc.el
index 8cb522c4ec7..2d56d660583 100644
--- a/lisp/gnus/yenc.el
+++ b/lisp/gnus/yenc.el
@@ -89,9 +89,9 @@
89 (when (re-search-forward "^=yend.*$" end t) 89 (when (re-search-forward "^=yend.*$" end t)
90 (setq last (match-beginning 0)) 90 (setq last (match-beginning 0))
91 (setq footer-alist (yenc-parse-line (match-string 0))) 91 (setq footer-alist (yenc-parse-line (match-string 0)))
92 (with-current-buffer 92 (setq work-buffer (generate-new-buffer " *yenc-work*"))
93 (setq work-buffer (generate-new-buffer " *yenc-work*")) 93 (unless (featurep 'xemacs)
94 (set-buffer-multibyte nil)) 94 (with-current-buffer work-buffer (set-buffer-multibyte nil)))
95 (while (< first last) 95 (while (< first last)
96 (setq char (char-after first)) 96 (setq char (char-after first))
97 (cond ((or (eq char ?\r) 97 (cond ((or (eq char ?\r)
diff --git a/lisp/mail/binhex.el b/lisp/mail/binhex.el
index e131db76af8..4d80d021399 100644
--- a/lisp/mail/binhex.el
+++ b/lisp/mail/binhex.el
@@ -221,7 +221,8 @@ If HEADER-ONLY is non-nil only decode header and return filename."
221 (goto-char start) 221 (goto-char start)
222 (when (re-search-forward binhex-begin-line end t) 222 (when (re-search-forward binhex-begin-line end t)
223 (setq work-buffer (generate-new-buffer " *binhex-work*")) 223 (setq work-buffer (generate-new-buffer " *binhex-work*"))
224 (with-current-buffer work-buffer (set-buffer-multibyte nil)) 224 (unless (featurep 'xemacs)
225 (with-current-buffer work-buffer (set-buffer-multibyte nil)))
225 (beginning-of-line) 226 (beginning-of-line)
226 (setq bits 0 counter 0) 227 (setq bits 0 counter 0)
227 (while tmp 228 (while tmp
diff --git a/lisp/mail/uudecode.el b/lisp/mail/uudecode.el
index 335e1e10c47..b1c2a7be41d 100644
--- a/lisp/mail/uudecode.el
+++ b/lisp/mail/uudecode.el
@@ -216,7 +216,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
216 (skip-chars-forward non-data-chars end)) 216 (skip-chars-forward non-data-chars end))
217 (if file-name 217 (if file-name
218 (with-temp-file file-name 218 (with-temp-file file-name
219 (set-buffer-multibyte nil) 219 (unless (featurep 'xemacs) (set-buffer-multibyte nil))
220 (insert (apply 'concat (nreverse result)))) 220 (insert (apply 'concat (nreverse result))))
221 (or (markerp end) (setq end (set-marker (make-marker) end))) 221 (or (markerp end) (setq end (set-marker (make-marker) end)))
222 (goto-char start) 222 (goto-char start)
diff --git a/lisp/net/dns.el b/lisp/net/dns.el
index 17973cfd94f..d3717371927 100644
--- a/lisp/net/dns.el
+++ b/lisp/net/dns.el
@@ -101,7 +101,7 @@ If nil, /etc/resolv.conf and nslookup will be consulted.")
101 101
102(defun dns-read-string-name (string buffer) 102(defun dns-read-string-name (string buffer)
103 (with-temp-buffer 103 (with-temp-buffer
104 (set-buffer-multibyte nil) 104 (unless (featurep 'xemacs) (set-buffer-multibyte nil))
105 (insert string) 105 (insert string)
106 (goto-char (point-min)) 106 (goto-char (point-min))
107 (dns-read-name buffer))) 107 (dns-read-name buffer)))
@@ -135,7 +135,7 @@ If nil, /etc/resolv.conf and nslookup will be consulted.")
135 "Write a DNS packet according to SPEC. 135 "Write a DNS packet according to SPEC.
136If TCP-P, the first two bytes of the package with be the length field." 136If TCP-P, the first two bytes of the package with be the length field."
137 (with-temp-buffer 137 (with-temp-buffer
138 (set-buffer-multibyte nil) 138 (unless (featurep 'xemacs) (set-buffer-multibyte nil))
139 (dns-write-bytes (dns-get 'id spec) 2) 139 (dns-write-bytes (dns-get 'id spec) 2)
140 (dns-write-bytes 140 (dns-write-bytes
141 (logior 141 (logior
@@ -186,7 +186,7 @@ If TCP-P, the first two bytes of the package with be the length field."
186 186
187(defun dns-read (packet) 187(defun dns-read (packet)
188 (with-temp-buffer 188 (with-temp-buffer
189 (set-buffer-multibyte nil) 189 (unless (featurep 'xemacs) (set-buffer-multibyte nil))
190 (let ((spec nil) 190 (let ((spec nil)
191 queries answers authorities additionals) 191 queries answers authorities additionals)
192 (insert packet) 192 (insert packet)
@@ -263,7 +263,7 @@ If TCP-P, the first two bytes of the package with be the length field."
263 (point (point))) 263 (point (point)))
264 (prog1 264 (prog1
265 (with-temp-buffer 265 (with-temp-buffer
266 (set-buffer-multibyte nil) 266 (unless (featurep 'xemacs) (set-buffer-multibyte nil))
267 (insert string) 267 (insert string)
268 (goto-char (point-min)) 268 (goto-char (point-min))
269 (cond 269 (cond
@@ -391,7 +391,7 @@ If REVERSEP, look up an IP address."
391 (if (not dns-servers) 391 (if (not dns-servers)
392 (message "No DNS server configuration found") 392 (message "No DNS server configuration found")
393 (with-temp-buffer 393 (with-temp-buffer
394 (set-buffer-multibyte nil) 394 (unless (featurep 'xemacs) (set-buffer-multibyte nil))
395 (let ((process (condition-case () 395 (let ((process (condition-case ()
396 (dns-make-network-process (car dns-servers)) 396 (dns-make-network-process (car dns-servers))
397 (error 397 (error
diff --git a/lisp/net/imap.el b/lisp/net/imap.el
index a47822533e5..9f1afc53ada 100644
--- a/lisp/net/imap.el
+++ b/lisp/net/imap.el
@@ -475,10 +475,10 @@ sure of changing the value of `foo'."
475 (setcdr alist (imap-remassoc key (cdr alist))) 475 (setcdr alist (imap-remassoc key (cdr alist)))
476 alist))) 476 alist)))
477 477
478(defsubst imap-disable-multibyte () 478(defmacro imap-disable-multibyte ()
479 "Enable multibyte in the current buffer." 479 "Enable multibyte in the current buffer."
480 (when (fboundp 'set-buffer-multibyte) 480 (unless (featurep 'xemacs)
481 (set-buffer-multibyte nil))) 481 '(set-buffer-multibyte nil)))
482 482
483(defsubst imap-utf7-encode (string) 483(defsubst imap-utf7-encode (string)
484 (if imap-use-utf7 484 (if imap-use-utf7
diff --git a/lisp/pgg-parse.el b/lisp/pgg-parse.el
index b0f2a815cbd..40df20bde34 100644
--- a/lisp/pgg-parse.el
+++ b/lisp/pgg-parse.el
@@ -503,8 +503,8 @@
503(defun pgg-parse-armor (string) 503(defun pgg-parse-armor (string)
504 (with-temp-buffer 504 (with-temp-buffer
505 (buffer-disable-undo) 505 (buffer-disable-undo)
506 (if (fboundp 'set-buffer-multibyte) 506 (unless (featurep 'xemacs)
507 (set-buffer-multibyte nil)) 507 (set-buffer-multibyte nil))
508 (insert string) 508 (insert string)
509 (pgg-decode-armor-region (point-min)(point)))) 509 (pgg-decode-armor-region (point-min)(point))))
510 510
diff --git a/lisp/pgg.el b/lisp/pgg.el
index 7364d3782ac..8209dc1608f 100644
--- a/lisp/pgg.el
+++ b/lisp/pgg.el
@@ -475,8 +475,8 @@ signer's public key from `pgg-default-keyserver-address'."
475 (if (null signature) nil 475 (if (null signature) nil
476 (with-temp-buffer 476 (with-temp-buffer
477 (buffer-disable-undo) 477 (buffer-disable-undo)
478 (if (fboundp 'set-buffer-multibyte) 478 (unless (featurep 'xemacs)
479 (set-buffer-multibyte nil)) 479 (set-buffer-multibyte nil))
480 (insert-file-contents signature) 480 (insert-file-contents signature)
481 (cdr (assq 2 (pgg-decode-armor-region 481 (cdr (assq 2 (pgg-decode-armor-region
482 (point-min)(point-max))))))) 482 (point-min)(point-max)))))))
diff --git a/lisp/sha1.el b/lisp/sha1.el
index 1db7a2835f4..351af62783e 100644
--- a/lisp/sha1.el
+++ b/lisp/sha1.el
@@ -95,7 +95,7 @@ If this variable is set to nil, use internal function only."
95 (setq prog sha1-program 95 (setq prog sha1-program
96 args nil)) 96 args nil))
97 (with-temp-buffer 97 (with-temp-buffer
98 (set-buffer-multibyte nil) 98 (unless (featurep 'xemacs) (set-buffer-multibyte nil))
99 (insert string) 99 (insert string)
100 (apply (function call-process-region) 100 (apply (function call-process-region)
101 (point-min) (point-max) 101 (point-min) (point-max)