/* 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;
{ "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 },