mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-24 12:17:22 +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;
|
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);
|
auto val = list_to_array_val(list);
|
||||||
retval = env_set(key, val->c_str(), scope | ENV_USER);
|
retval = env_set(key, val->c_str(), scope | ENV_USER);
|
||||||
switch (retval) {
|
switch (retval) {
|
||||||
|
@ -1172,8 +1172,16 @@ static void expand_home_directory(wcstring &input) {
|
|||||||
if (username.empty()) {
|
if (username.empty()) {
|
||||||
// Current users home directory.
|
// Current users home directory.
|
||||||
home = env_get(L"HOME");
|
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()) {
|
if (home.missing_or_empty()) {
|
||||||
input.clear();
|
input = ENV_NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tail_idx = 1;
|
tail_idx = 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user