diff options
author | Eli Zaretskii <eliz@gnu.org> | 2012-09-09 20:33:58 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2012-09-09 20:33:58 +0000 |
commit | 1820908804cc775809d7b4269a6754eb4df957c9 (patch) | |
tree | 75a09e939cded8355885511342b4ecc253d1eff7 | |
parent | 145661a54151e13f05c86a526d7490e12ba79ed6 (diff) | |
download | gunmake-1820908804cc775809d7b4269a6754eb4df957c9.tar.gz |
read.c (unescape_char): Fix a thinko in the last change.
-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++); |