diff options
| author | Michael Biebl <biebl@debian.org> | 2020-06-28 18:59:08 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-06-28 18:59:08 +0200 |
| commit | 215112eefc83274273a10d9ddb5e107c9beec548 (patch) | |
| tree | a16052cef4bb8707d6a906dd784a50c75945d03e /shared/systemd/src/basic/escape.c | |
| parent | 5ed4e66e01b005212aee22c255c9c6b2a4b040a9 (diff) | |
| parent | a54ac63bbf9b2c71026ac9028a8ffaf186cf3c82 (diff) | |
Update upstream source from tag 'upstream/1.25.90'
Update to upstream version '1.25.90' with Debian dir 16d4caa71e8ba8c27ee163c88f11456b6cdc0490
Diffstat (limited to 'shared/systemd/src/basic/escape.c')
| -rw-r--r-- | shared/systemd/src/basic/escape.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/shared/systemd/src/basic/escape.c b/shared/systemd/src/basic/escape.c index 2cc5be18..1ea0b6a6 100644 --- a/shared/systemd/src/basic/escape.c +++ b/shared/systemd/src/basic/escape.c @@ -522,22 +522,28 @@ char* shell_maybe_quote(const char *s, EscapeStyle style) { return NULL; t = r; - if (style == ESCAPE_BACKSLASH) + switch (style) { + case ESCAPE_BACKSLASH: + case ESCAPE_BACKSLASH_ONELINE: *(t++) = '"'; - else if (style == ESCAPE_POSIX) { + break; + case ESCAPE_POSIX: *(t++) = '$'; *(t++) = '\''; - } else + break; + default: assert_not_reached("Bad EscapeStyle"); + } t = mempcpy(t, s, p - s); - if (style == ESCAPE_BACKSLASH) - t = strcpy_backslash_escaped(t, p, SHELL_NEED_ESCAPE, false); + if (IN_SET(style, ESCAPE_BACKSLASH, ESCAPE_BACKSLASH_ONELINE)) + t = strcpy_backslash_escaped(t, p, SHELL_NEED_ESCAPE, + style == ESCAPE_BACKSLASH_ONELINE); else t = strcpy_backslash_escaped(t, p, SHELL_NEED_ESCAPE_POSIX, true); - if (style == ESCAPE_BACKSLASH) + if (IN_SET(style, ESCAPE_BACKSLASH, ESCAPE_BACKSLASH_ONELINE)) *(t++) = '"'; else *(t++) = '\''; |