(utf-8-post-read-conversion): If the
authorKenichi Handa <handa@m17n.org>
Fri, 27 Aug 2004 00:25:59 +0000 (00:25 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 27 Aug 2004 00:25:59 +0000 (00:25 +0000)
buffer is unibyte, temporarily set it multibyte.

lisp/ChangeLog
lisp/international/utf-8.el

index 2141bcd..66ef446 100644 (file)
@@ -1,3 +1,8 @@
+2004-08-27  Kenichi Handa  <handa@m17n.org>
+
+       * international/utf-8.el (utf-8-post-read-conversion): If the
+       buffer is unibyte, temporarily make it multibyte.
+
 2004-08-27  Masatake YAMATO  <jet@gyve.org>
 
        * calendar/time-date.el (time-to-seconds): Add autoload cookies.
index bad79b5..5a7acee 100644 (file)
@@ -870,7 +870,9 @@ Also compose particular scripts if `utf-8-compose-scripts' is non-nil."
       ;; version of the string in the loop, since it's always loaded as
       ;; unibyte from a byte-compiled file.
       (let ((range (string-as-multibyte "^\xc0-\xc3\xe1-\xf7"))
+           (buffer-multibyte enable-multibyte-characters)
            hash-table ch)
+       (set-buffer-multibyte t)
        (when utf-translate-cjk-mode
          (if (not utf-translate-cjk-lang-env)
              ;; Check these characters:
@@ -893,7 +895,9 @@ Also compose particular scripts if `utf-8-compose-scripts' is non-nil."
                (progn
                  (insert ch)
                  (delete-char 1))
-             (forward-char 1)))))
+             (forward-char 1))))
+       (or buffer-multibyte
+           (set-buffer-multibyte nil)))
 
       (when (and utf-8-compose-scripts (> length 1))
        ;; These currently have definitions which cover the relevant