From 844eb643e45887a54d5ad5edd6ced1de0b82e5ab Mon Sep 17 00:00:00 2001
From: Dave Love <fx@gnu.org>
Date: Mon, 25 Sep 2000 09:23:53 +0000
Subject: [PATCH] (base64_encode_1): Fix last change.

---
 src/ChangeLog |  4 ++++
 src/fns.c     | 14 +++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index 97235b593ec..da4dc9c21c5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2000-09-24  Dave Love  <fx@gnu.org>
+
+	* fns.c (base64_encode_1): Fix last change.
+
 2000-09-22  Gerd Moellmann  <gerd@gnu.org>
 
 	* dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
diff --git a/src/fns.c b/src/fns.c
index e46159fd63c..fce3d728a3a 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -3377,7 +3377,7 @@ base64_encode_1 (from, to, length, line_break, multibyte)
 {
   int counter = 0, i = 0;
   char *e = to;
-  unsigned char c;
+  int c;
   unsigned int value;
   int bytes;
 
@@ -3386,9 +3386,9 @@ base64_encode_1 (from, to, length, line_break, multibyte)
       if (multibyte)
 	{
 	  c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes);
-	  if (!SINGLE_BYTE_CHAR_P (c))
+	  if (bytes > 1)
 	    return -1;
-	  i += bytes;
+	  i++;
 	}
       else
 	c = from[i++];
@@ -3424,7 +3424,9 @@ base64_encode_1 (from, to, length, line_break, multibyte)
       if (multibyte)
 	{
 	  c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes);
-	  i += bytes;
+	  if (bytes > 1)
+	    return -1;
+	  i++;
 	}
       else
 	c = from[i++];
@@ -3444,7 +3446,9 @@ base64_encode_1 (from, to, length, line_break, multibyte)
       if (multibyte)
 	{
 	  c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes);
-	  i += bytes;
+	  if (bytes > 1)
+	    return -1;
+	  i++;
 	}
       else
 	c = from[i++];
-- 
2.39.5