diff --git a/src/basic/extract-word.c b/src/basic/extract-word.c index 5ebf67437c..c21ac1fde5 100644 --- a/src/basic/extract-word.c +++ b/src/basic/extract-word.c @@ -78,7 +78,7 @@ int extract_first_word(const char **p, char **ret, const char *separators, Extra return -EINVAL; } - if (flags & (EXTRACT_CUNESCAPE|EXTRACT_UNESCAPE_SEPARATORS)) { + if (flags & (EXTRACT_CUNESCAPE|EXTRACT_UNESCAPE_SEPARATORS|EXTRACT_UNESCAPE_RELAX)) { bool eight_bit = false; char32_t u; diff --git a/src/test/test-extract-word.c b/src/test/test-extract-word.c index aad9bbc47d..3e11f5922b 100644 --- a/src/test/test-extract-word.c +++ b/src/test/test-extract-word.c @@ -247,13 +247,13 @@ TEST(extract_first_word) { p = original = "fooo\\ bar quux"; assert_se(extract_first_word(&p, &t, NULL, EXTRACT_UNESCAPE_RELAX) > 0); - ASSERT_STREQ(t, "fooo bar"); + ASSERT_STREQ(t, "fooo\\ bar"); free(t); assert_se(p == original + 10); p = original = "fooo\\ bar quux"; assert_se(extract_first_word(&p, &t, NULL, EXTRACT_UNESCAPE_RELAX|EXTRACT_RELAX) > 0); - ASSERT_STREQ(t, "fooo bar"); + ASSERT_STREQ(t, "fooo\\ bar"); free(t); assert_se(p == original + 10);