summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2021-02-23 18:35:52 +0000
committerAlexander Larsson <alexander.larsson@gmail.com>2021-04-06 16:19:09 +0200
commitb13c8a76d2c1c2cee763a9f878c902e309010a4e (patch)
tree02d3b94b8687eeef7df771e1dc3ed2a78ba5a7dd
parentf2b2a12f5611f2bd6b7a94585a515e63556ea678 (diff)
downloadflatpak-b13c8a76d2c1c2cee763a9f878c902e309010a4e.tar.gz
utils: Display bundled bwrap arguments one per line
This makes them easier to deal with when debugging. Otherwise, it's easy for the bundled arguments to wrap across 50 or more lines, and with linebreaks in arbitrary positions that becomes very hard to read. Signed-off-by: Simon McVittie <smcv@collabora.com>
-rw-r--r--common/flatpak-bwrap.c19
-rw-r--r--common/flatpak-utils-private.h1
-rw-r--r--common/flatpak-utils.c6
3 files changed, 19 insertions, 7 deletions
diff --git a/common/flatpak-bwrap.c b/common/flatpak-bwrap.c
index 6a02e868..6d8dc5b5 100644
--- a/common/flatpak-bwrap.c
+++ b/common/flatpak-bwrap.c
@@ -347,10 +347,21 @@ flatpak_bwrap_bundle_args (FlatpakBwrap *bwrap,
fd = glnx_steal_fd (&args_tmpf.fd);
- {
- g_autofree char *commandline = flatpak_quote_argv ((const char **) bwrap->argv->pdata + start, end - start);
- flatpak_debug2 ("bwrap --args %d = %s", fd, commandline);
- }
+ flatpak_debug2 ("bwrap --args %d = ...", fd);
+
+ for (i = start; i < end; i++)
+ {
+ if (flatpak_argument_needs_quoting (bwrap->argv->pdata[i]))
+ {
+ g_autofree char *quoted = g_shell_quote (bwrap->argv->pdata[i]);
+
+ flatpak_debug2 (" %s", quoted);
+ }
+ else
+ {
+ flatpak_debug2 (" %s", (const char *) bwrap->argv->pdata[i]);
+ }
+ }
flatpak_bwrap_add_fd (bwrap, fd);
g_ptr_array_remove_range (bwrap->argv, start, end - start);
diff --git a/common/flatpak-utils-private.h b/common/flatpak-utils-private.h
index 84c458f5..97b77196 100644
--- a/common/flatpak-utils-private.h
+++ b/common/flatpak-utils-private.h
@@ -593,6 +593,7 @@ GList *flatpak_list_extensions (GKeyFile *metakey,
const char *arch,
const char *branch);
+gboolean flatpak_argument_needs_quoting (const char *arg);
char * flatpak_quote_argv (const char *argv[],
gssize len);
gboolean flatpak_file_arg_has_suffix (const char *arg,
diff --git a/common/flatpak-utils.c b/common/flatpak-utils.c
index 56cbb06d..6e5bd6b3 100644
--- a/common/flatpak-utils.c
+++ b/common/flatpak-utils.c
@@ -1412,8 +1412,8 @@ flatpak_switch_symlink_and_remove (const char *symlink_path,
return flatpak_fail (error, "flatpak_switch_symlink_and_remove looped too many times");
}
-static gboolean
-needs_quoting (const char *arg)
+gboolean
+flatpak_argument_needs_quoting (const char *arg)
{
while (*arg != 0)
{
@@ -1443,7 +1443,7 @@ flatpak_quote_argv (const char *argv[],
if (i != 0)
g_string_append_c (res, ' ');
- if (needs_quoting (argv[i]))
+ if (flatpak_argument_needs_quoting (argv[i]))
{
g_autofree char *quoted = g_shell_quote (argv[i]);
g_string_append (res, quoted);