]> git.eshelyaron.com Git - emacs.git/commitdiff
(base64_decode_1): Insert eight-bit chars correctly.
authorKenichi Handa <handa@m17n.org>
Wed, 21 Aug 2002 02:28:21 +0000 (02:28 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 21 Aug 2002 02:28:21 +0000 (02:28 +0000)
src/fns.c

index 5133f32a5dcc5e4509ae58c7a5430bb041bf013f..2a4428164053359381d516564548182973b6d50c 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -3263,8 +3263,8 @@ base64_decode_1 (from, to, length, multibyte, nchars_return)
       value |= base64_char_to_value[c] << 12;
 
       c = (unsigned char) (value >> 16);
-      if (multibyte)
-       e += CHAR_STRING (c, e);
+      if (multibyte && c >= 128)
+       e += BYTE8_STRING (c, e);
       else
        *e++ = c;
       nchars++;
@@ -3287,8 +3287,8 @@ base64_decode_1 (from, to, length, multibyte, nchars_return)
       value |= base64_char_to_value[c] << 6;
 
       c = (unsigned char) (0xff & value >> 8);
-      if (multibyte)
-       e += CHAR_STRING (c, e);
+      if (multibyte && c >= 128)
+       e += BYTE8_STRING (c, e);
       else
        *e++ = c;
       nchars++;
@@ -3305,8 +3305,8 @@ base64_decode_1 (from, to, length, multibyte, nchars_return)
       value |= base64_char_to_value[c];
 
       c = (unsigned char) (0xff & value);
-      if (multibyte)
-       e += CHAR_STRING (c, e);
+      if (multibyte && c >= 128)
+       e += BYTE8_STRING (c, e);
       else
        *e++ = c;
       nchars++;