/** React to modifying hte given variable */ static void react_to_variable_change(const wcstring &key) { if(var_is_locale(key)){ handle_locale(); } else if (key == L"fish_term256") { update_fish_term256(); reader_react_to_color_change(); } else if (string_prefixes_string(L"fish_color_", key)) { reader_react_to_color_change(); } }
void env_pop() { if (&top->env != global) { int i; int locale_changed = 0; env_node_t *killme = top; for (i=0; locale_variable[i]; i++) { var_table_t::iterator result = killme->env.find(locale_variable[i]); if (result != killme->env.end()) { locale_changed = 1; break; } } if (killme->new_scope) { if (killme->exportv || local_scope_exports(killme->next)) mark_changed_exported(); } top = top->next; var_table_t::iterator iter; for (iter = killme->env.begin(); iter != killme->env.end(); ++iter) { const var_entry_t &entry = iter->second; if (entry.exportv) { mark_changed_exported(); break; } } delete killme; if (locale_changed) handle_locale(); } else { debug(0, _(L"Tried to pop empty environment stack.")); sanity_lose(); } }
/// React to modifying the given variable. static void react_to_variable_change(const wcstring &key) { if (var_is_locale(key)) { handle_locale(key.c_str()); } else if (var_is_curses(key)) { handle_curses(key.c_str()); } else if (var_is_timezone(key)) { handle_timezone(key.c_str()); } else if (key == L"fish_term256" || key == L"fish_term24bit") { update_fish_color_support(); reader_react_to_color_change(); } else if (string_prefixes_string(L"fish_color_", key)) { reader_react_to_color_change(); } else if (key == L"fish_escape_delay_ms") { update_wait_on_escape_ms(); } }