diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/utils.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 01e3f6a22..0336c8787 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-08-03 Peter Stephenson <p.w.stephenson@ntlworld.com> + + * Martijn: 41484: Src/utils.c: ${(q+)...} didn't properly + quote backslashes. + 2017-08-02 Daniel Shahaf <d.s@daniel.shahaf.name> * 41479: Completion/Unix/Command/_xz: Complete compressed, diff --git a/Src/utils.c b/Src/utils.c index 1b80e8cb0..5055d69fe 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -5119,7 +5119,7 @@ niceztrlen(char const *s) * If flags contains NICEFLAG_HEAP, use the heap for *outstrp, else * zalloc. * If flags contsins NICEFLAG_QUOTE, the output is going to be within - * $'...', so quote "'" with a backslash. + * $'...', so quote "'" and "\" with a backslash. */ /**/ @@ -5175,6 +5175,10 @@ mb_niceformat(const char *s, FILE *stream, char **outstrp, int flags) fmt = "\\'"; newl = 2; } + else if (c == L'\\' && (flags & NICEFLAG_QUOTE)) { + fmt = "\\\\"; + newl = 2; + } else fmt = wcs_nicechar_sel(c, &newl, NULL, flags & NICEFLAG_QUOTE); break; |