Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
plist: fix variable expansion when a line ends with '%'
Baptiste Daroussin committed 2 years ago
commit 961d455729cd498513ac225ff7e8281442687eb6
parent 2488a07
2 files changed +11 -1
modified libpkg/pkg_ports.c
@@ -1098,8 +1098,10 @@ expand_plist_variables(const char *in, kvlist_t *vars)
			continue;
		}
		in++;
-
		if (in[0] == '\0')
+
		if (in[0] == '\0') {
+
			fputc('%', buf->fp);
			break;
+
		}
		if (in[0] != '%') {
			fputc('%', buf->fp);
			fputc(in[0], buf->fp);
modified tests/lib/plist.c
@@ -310,6 +310,14 @@ ATF_TC_BODY(expand_plist_variables, tc)
	plop = expand_plist_variables("%%this%% %F is %%kof a %%new%% line", &kv);
	ATF_REQUIRE_STREQ(plop, "@comment  %F is %%kof a var line");
	free(plop);
+

+
	plop = expand_plist_variables("%%this%% %F is %%kof a %%new%% line %f", &kv);
+
	ATF_REQUIRE_STREQ(plop, "@comment  %F is %%kof a var line %f");
+
	free(plop);
+

+
	plop = expand_plist_variables("%%this%% %F is %%kof a %%new%% line %", &kv);
+
	ATF_REQUIRE_STREQ(plop, "@comment  %F is %%kof a var line %");
+
	free(plop);
}

ATF_TP_ADD_TCS(tp)