mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-04-16 08:21:20 -04:00
tokenize: perform tilde expansion when tokenizing command line
This commit is contained in:
parent
9b0d5e7c96
commit
2992892b9b
1 changed files with 16 additions and 5 deletions
21
tokenize.c
21
tokenize.c
|
|
@ -52,12 +52,10 @@ tokenize_cmdline(const char *cmdline, char ***argv)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!push_argv(argv, &argv_size, p, final_end - p, &idx) ||
|
if (!push_argv(argv, &argv_size, p, final_end - p, &idx))
|
||||||
!push_argv(argv, &argv_size, NULL, 0, &idx))
|
|
||||||
{
|
|
||||||
goto err;
|
goto err;
|
||||||
} else
|
|
||||||
return true;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end > p && *(end - 1) == '\\') {
|
if (end > p && *(end - 1) == '\\') {
|
||||||
|
|
@ -92,6 +90,19 @@ tokenize_cmdline(const char *cmdline, char ***argv)
|
||||||
if (!push_argv(argv, &argv_size, NULL, 0, &idx))
|
if (!push_argv(argv, &argv_size, NULL, 0, &idx))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
// expand '~/'
|
||||||
|
if (**argv && (**argv)[0] == '~' && (**argv)[1] == '/') {
|
||||||
|
const char *homedir = getenv("HOME");
|
||||||
|
if (homedir == NULL) {
|
||||||
|
LOG_ERR("failed to expand '~': HOME not set");
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *argv0 = xstrjoin3(homedir, "/", **argv + 2);
|
||||||
|
free(**argv);
|
||||||
|
**argv = argv0;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue