mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-24 00:22:10 +08:00
Revert "remove more ENV_NULL references"
This reverts commit 591449aba72f5f6a8fa646f57704ece4428eccb4. It was meant for the major branch.
This commit is contained in:
parent
9f4f9545c1
commit
a2f507f1c8
@ -293,6 +293,8 @@ static int my_env_set(const wchar_t *cmd, const wchar_t *key, const wcstring_lis
|
||||
if (retval != STATUS_CMD_OK) return retval;
|
||||
}
|
||||
|
||||
// We don't check `val->empty()` because an array var with a single empty string will be
|
||||
// "empty". A truly empty array var is set to the special value `ENV_NULL`.
|
||||
auto val = list_to_array_val(list);
|
||||
retval = env_set(key, val->c_str(), scope | ENV_USER);
|
||||
switch (retval) {
|
||||
|
@ -1172,8 +1172,16 @@ static void expand_home_directory(wcstring &input) {
|
||||
if (username.empty()) {
|
||||
// Current users home directory.
|
||||
home = env_get(L"HOME");
|
||||
// If home is either missing or empty,
|
||||
// treat it like an empty list.
|
||||
// $HOME is defined to be a _path_,
|
||||
// and those cannot be empty.
|
||||
//
|
||||
// We do not expand a string-empty var differently,
|
||||
// because that results in bogus paths
|
||||
// - ~/foo turns into /foo.
|
||||
if (home.missing_or_empty()) {
|
||||
input.clear();
|
||||
input = ENV_NULL;
|
||||
return;
|
||||
}
|
||||
tail_idx = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user