diff options
-rwxr-xr-x | check/check-whitespace | 4 | ||||
-rw-r--r-- | pkg.c | 20 |
2 files changed, 20 insertions, 4 deletions
diff --git a/check/check-whitespace b/check/check-whitespace index e4388ba..b062bc0 100755 --- a/check/check-whitespace +++ b/check/check-whitespace @@ -4,6 +4,10 @@ set -e . ${srcdir}/common +# variables come out unquoted +RESULT='/usr/white space/include' +run_test --variable=includedir whitespace + # expect cflags from whitespace RESULT='-Dlala=misc -I/usr/white\ space/include -I$(top_builddir) -Iinclude\ dir -Iother\ include\ dir' run_test --cflags whitespace @@ -1042,6 +1042,7 @@ packages_get_var (GList *pkgs, GList *tmp; GString *str; char *retval; + GError *error = NULL; str = g_string_new (""); @@ -1049,14 +1050,25 @@ packages_get_var (GList *pkgs, while (tmp != NULL) { Package *pkg = tmp->data; - char *var; + char *var, *unquoted_var; var = package_get_var (pkg, varname); - if (var) { - g_string_append (str, var); - g_string_append_c (str, ' '); + unquoted_var = g_shell_unquote (var, &error); + if (unquoted_var != NULL) + { + g_string_append (str, unquoted_var); + g_string_append_c (str, ' '); + g_free (unquoted_var); + } + else + { + verbose_error ("Couldn't unquote value of \"%s\": %s\n", + varname, error ? error->message : "unknown"); + g_clear_error (&error); + } + g_free (var); } |