yes, if e.g. a filename contains one, like `i am a " crazy file name` and it's properly quoted so `g_shell_parse_argv()` don't fail, the parsed argument will contain it.  It's a bit unlikely I agree, but not impossible at all.

Writing an escaping function for this shouldn't be hard, it only has to put a `\` before any quote (and maybe `\`es?), plus quotes around:
```C
gchar *escape(const gchar *arg)
{
  GString *str = g_string_new();
  g_string_append_c(str, '"');
  for (; *arg; arg++)
  {
    if (*arg == '"' || *arg == '\\')
      g_string_append_c(str, '\\');
    g_string_append_c(str, *arg);
  }
  g_string_append_c(str, '"');
  return g_string_free(str, FALSE);
}
```
And apply this to each argument.