diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | read.c | 9 |
2 files changed, 10 insertions, 3 deletions
@@ -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 @@ -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++); |