read.c (unescape_char): Fix a thinko in the last change.
authorEli Zaretskii <eliz@gnu.org>
Sun, 9 Sep 2012 20:33:58 +0000 (20:33 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sun, 9 Sep 2012 20:33:58 +0000 (20:33 +0000)
ChangeLog
read.c

index fefd28501039051208b543eaa56562f8f63016b4..786f438fb67ba02fab21bfc540218bfbcb7a9e49 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-09-09  Eli Zaretskii  <eliz@gnu.org>
+
+       * read.c (unescape_char): Fix a thinko in the last change.
+
 2012-09-09  Paul Smith  <psmith@gnu.org>
 
        * default.c (default_variables): Use a correct default LIBPPATERNS
diff --git a/read.c b/read.c
index 8478c8d73c94b3935a55994c404a30201a813019..d4bfb9c37a9964b3280365c9da6444cdf21de64a 100644 (file)
--- a/read.c
+++ b/read.c
@@ -2242,16 +2242,19 @@ unescape_char (char *string, int c)
           l = e - s;
 
           if (*e != c || l%2 == 0)
-            /* It's not; just take it all without unescaping.  */
-            memcpy (p, s, l);
+           {
+             /* It's not; just take it all without unescaping.  */
+             memcpy (p, s, l);
+             p += l;
+           }
           else if (l > 1)
             {
               /* It is, and there's >1 backslash.  Take half of them.  */
               l /= 2;
               memcpy (p, s, l);
+             p += l;
             }
           s = e;
-          p += l;
         }
 
       *(p++) = *(s++);