diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/quotearg.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/quotearg.c b/lib/quotearg.c index 9eb05161c..bdbb82080 100644 --- a/lib/quotearg.c +++ b/lib/quotearg.c @@ -262,20 +262,21 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, #endif case '\b': esc = 'b'; goto c_escape; case '\f': esc = 'f'; goto c_escape; - case '\n': esc = 'n'; goto c_escape; - case '\r': esc = 'r'; goto c_escape; - case '\t': esc = 't'; goto c_escape; + case '\n': esc = 'n'; goto c_and_shell_escape; + case '\r': esc = 'r'; goto c_and_shell_escape; + case '\t': esc = 't'; goto c_and_shell_escape; case '\v': esc = 'v'; goto c_escape; - case '\\': esc = c; goto c_escape; + case '\\': esc = c; goto c_and_shell_escape; + c_and_shell_escape: + if (quoting_style == shell_quoting_style) + goto use_shell_always_quoting_style; c_escape: if (backslash_escapes) { c = esc; goto store_escape; } - if (quoting_style == shell_quoting_style) - goto use_shell_always_quoting_style; break; case '#': case '~': |