* uudecode.el (uudecode-string-to-multibyte): New function emulating
authorKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 24 Jan 2007 13:13:25 +0000 (13:13 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 24 Jan 2007 13:13:25 +0000 (13:13 +0000)
 string-to-multibyte.
(uudecode-decode-region-internal): Use it.

* lpath.el: Fbind string-as-multibyte for XEmacs.

lisp/ChangeLog
lisp/lpath.el
lisp/uudecode.el

index f25f4ec..777159f 100644 (file)
@@ -1,3 +1,11 @@
+2007-01-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * uudecode.el (uudecode-string-to-multibyte): New function emulating
+       string-to-multibyte.
+       (uudecode-decode-region-internal): Use it.
+
+       * lpath.el: Fbind string-as-multibyte for XEmacs.
+
 2007-01-23  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus-score.el (gnus-home-score-file, gnus-home-adapt-file): Fix
index 169b3d9..f62eeb2 100644 (file)
@@ -38,7 +38,8 @@
                     mouse-scroll-subr overlay-lists posn-point posn-window
                     read-event set-buffer-multibyte
                     select-frame-set-input-focus select-safe-coding-system
-                    timer-set-function track-mouse window-edges))
+                    string-as-multibyte timer-set-function track-mouse
+                    window-edges))
       (maybe-bind '(adaptive-fill-first-line-regexp
                    buffer-display-table buffer-file-coding-system
                    current-language-environment cursor-in-non-selected-windows
index bd277d8..8422cb6 100644 (file)
@@ -126,6 +126,20 @@ used is specified by `uudecode-decoder-program'."
          (message "Can not uudecode")))
       (ignore-errors (or file-name (delete-file tempfile))))))
 
+(eval-and-compile
+  (defalias 'uudecode-string-to-multibyte
+    (cond
+     ((featurep 'xemacs)
+      'identity)
+     ((fboundp 'string-to-multibyte)
+      'string-to-multibyte)
+     (t
+      (lambda (string)
+       "Return a multibyte string with the same individual chars as string."
+       (mapconcat
+        (lambda (ch) (string-as-multibyte (char-to-string ch)))
+        string ""))))))
+
 ;;;###autoload
 (defun uudecode-decode-region-internal (start end &optional file-name)
   "Uudecode region between START and END without using an external program.
@@ -204,7 +218,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
          (or (markerp end) (setq end (set-marker (make-marker) end)))
          (goto-char start)
          (if enable-multibyte-characters
-             (mapc #'(lambda (x) (insert (string-to-multibyte x)))
+             (mapc #'(lambda (x) (insert (uudecode-string-to-multibyte x)))
                    (nreverse result))
            (insert (apply 'concat (nreverse result))))
          (delete-region (point) end))))))