Revert "Remove unnecessary "string_set_contains" function"

I have no idea why this worked or passed the tests?

This reverts commit 1836e704c4.

Fixes #5349.
This commit is contained in:
Fabian Homborg
2018-11-18 22:22:15 +01:00
parent 4221d6c3e6
commit 58b29fb5d1

View File

@@ -286,11 +286,19 @@ static env_universal_t *uvars() { return s_universal_variables; }
// so we don't bother to sort them.
using string_set_t = const wchar_t *const[];
template <typename T>
bool string_set_contains(const T &set, const wchar_t *val) {
for (const wchar_t *entry : set) {
if (!wcscmp(val, entry)) return true;
}
return false;
}
/// Check if a variable may not be set using the set command.
static bool is_read_only(const wchar_t *val) {
const string_set_t env_read_only = {L"PWD", L"SHLVL", L"history", L"status", L"version",
L"fish_pid", L"hostname", L"_", L"fish_private_mode"};
return contains(env_read_only, val) ||
return string_set_contains(env_read_only, val) ||
(in_private_mode() && wcscmp(L"fish_history", val) == 0);
}