From df553b586b7c11fc660bb1829c339fb005bbbead Mon Sep 17 00:00:00 2001 From: Michal Schmidt Date: Wed, 7 Oct 2015 14:40:44 +0200 Subject: basic: fix env expansion for strings leading with two dollar signs The way to escape a literal dollar sign is to write "$$". But this does not work right if it's at the beginning of the argument. Fix it. --- src/test/test-env-replace.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/test-env-replace.c b/src/test/test-env-replace.c index 2e28c0c49b..110223f3b8 100644 --- a/src/test/test-env-replace.c +++ b/src/test/test-env-replace.c @@ -118,6 +118,8 @@ static void test_replace_env_arg(void) { "$FOO$FOO", "${FOO}${BAR}", "${FOO", + "FOO$$${FOO}", + "$$FOO${FOO}", NULL }; _cleanup_strv_free_ char **r = NULL; @@ -133,7 +135,9 @@ static void test_replace_env_arg(void) { assert_se(streq(r[6], "BAR")); assert_se(streq(r[7], "BAR BARwaldo")); assert_se(streq(r[8], "${FOO")); - assert_se(strv_length(r) == 9); + assert_se(streq(r[9], "FOO$BAR BAR")); + assert_se(streq(r[10], "$FOOBAR BAR")); + assert_se(strv_length(r) == 11); } static void test_env_clean(void) { -- cgit v1.2.3-54-g00ecf