mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-05 08:56:16 +01:00
gshell: Fix parsing of comments in command lines.
Fixes bug 562907
This commit is contained in:
parent
9bca5bb49f
commit
6e4acf44b3
@ -520,6 +520,24 @@ tokenize_command_line (const gchar *command_line,
|
||||
/* FALL THRU */
|
||||
|
||||
case '#':
|
||||
if (p == command_line)
|
||||
{ /* '#' was the first char */
|
||||
current_quote = *p;
|
||||
break;
|
||||
}
|
||||
switch(*(p-1))
|
||||
{
|
||||
case ' ':
|
||||
case '\n':
|
||||
case '\0':
|
||||
current_quote = *p;
|
||||
break;
|
||||
default:
|
||||
ensure_token (¤t_token);
|
||||
g_string_append_c (current_token, *p);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case '\\':
|
||||
current_quote = *p;
|
||||
break;
|
||||
|
@ -59,6 +59,8 @@ static CmdlineTest cmdline_tests[] =
|
||||
{ "foo \"yada yada \\$\\\"\"", 2, { "foo", "yada yada $\"", NULL }, -1 },
|
||||
{ "foo \"c:\\\\\"", 2, { "foo", "c:\\", NULL }, -1 },
|
||||
{ "foo # bla bla bla\n bar", 2, { "foo", "bar", NULL }, -1 },
|
||||
{ "foo a#b", 2, { "foo", "a#b", NULL }, -1 },
|
||||
{ "#foo", 0, { NULL }, -1 },
|
||||
{ "foo bar \\", 0, { NULL }, G_SHELL_ERROR_BAD_QUOTING },
|
||||
{ "foo 'bar baz", 0, { NULL }, G_SHELL_ERROR_BAD_QUOTING },
|
||||
{ "foo '\"bar\" baz", 0, { NULL }, G_SHELL_ERROR_BAD_QUOTING },
|
||||
|
Loading…
Reference in New Issue
Block a user