diff --git a/src/builtin_set.cpp b/src/builtin_set.cpp index 1d1af95a6..8672e6fcc 100644 --- a/src/builtin_set.cpp +++ b/src/builtin_set.cpp @@ -293,8 +293,6 @@ 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) { diff --git a/src/expand.cpp b/src/expand.cpp index 4a34ba4a2..2bcc6ec18 100644 --- a/src/expand.cpp +++ b/src/expand.cpp @@ -1172,16 +1172,8 @@ 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 = ENV_NULL; + input.clear(); return; } tail_idx = 1;