mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-22 14:23:38 +08:00
Don't call expand_home_directory from within parser_t::test - it may hang
https://github.com/fish-shell/fish-shell/issues/512
This commit is contained in:
parent
e9c226b8be
commit
b32fcc7a8e
|
@ -1644,7 +1644,8 @@ int expand_string(const wcstring &input, std::vector<completion_t> &output, expa
|
|||
{
|
||||
wcstring next = in->at(i).completion;
|
||||
|
||||
expand_home_directory(next);
|
||||
if (! (EXPAND_SKIP_HOME_DIRECTORIES & flags))
|
||||
expand_home_directory(next);
|
||||
|
||||
|
||||
if (flags & ACCEPT_INCOMPLETE)
|
||||
|
|
5
expand.h
5
expand.h
|
@ -53,7 +53,10 @@ enum
|
|||
EXPAND_SKIP_PROCESS = 1 << 7,
|
||||
|
||||
/** Don't expand jobs (but you can still expand processes). This is because job expansion is not thread safe. */
|
||||
EXPAND_SKIP_JOBS = 1 << 8
|
||||
EXPAND_SKIP_JOBS = 1 << 8,
|
||||
|
||||
/** Don't expand home directories */
|
||||
EXPAND_SKIP_HOME_DIRECTORIES = 1 << 9
|
||||
};
|
||||
typedef int expand_flags_t;
|
||||
|
||||
|
|
|
@ -3061,8 +3061,10 @@ int parser_t::test(const wchar_t * buff,
|
|||
arg_count=0;
|
||||
|
||||
command = tok_last(&tok);
|
||||
has_command = expand_one(command, EXPAND_SKIP_CMDSUBST | EXPAND_SKIP_VARIABLES);
|
||||
if (!has_command)
|
||||
|
||||
// Pass SKIP_HOME_DIRECTORIES for https://github.com/fish-shell/fish-shell/issues/512
|
||||
has_command = expand_one(command, EXPAND_SKIP_CMDSUBST | EXPAND_SKIP_VARIABLES | EXPAND_SKIP_HOME_DIRECTORIES);
|
||||
if (! has_command)
|
||||
{
|
||||
command = L"";
|
||||
err=1;
|
||||
|
|
Loading…
Reference in New Issue
Block a user