fish-shell/src
ridiculousfish 4b079e16e5 Execute the conditions of if and while statements outside of their block
Variables set in if and while conditions are in the enclosing block, not
the if/while statement block. For example:

    if set -l var (somecommand) ; end
    echo $var

will now work as expected.

Fixes #4820. Fixes #1212.
2018-03-31 14:57:24 -07:00
..
wcwidth9 Switch to Unicode 9 savvy wcwidth 2018-02-25 23:12:37 -08:00
autoload.cpp Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
autoload.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
builtin.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
builtin.h Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
builtin_argparse.cpp Use move semantics instead of swap in env_set 2017-08-30 00:59:45 -07:00
builtin_argparse.h implement argparse builtin 2017-07-12 22:38:24 -07:00
builtin_bg.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_bg.h split builtin bg into its own module 2017-06-16 21:01:56 -07:00
builtin_bind.cpp Add -s to builtin_bind's allowed parameter list 2017-10-03 11:20:17 +02:00
builtin_bind.h Silence bind errors in default key bindings 2017-10-03 11:20:17 +02:00
builtin_block.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_block.h split builtin block into its own module 2017-06-16 21:01:56 -07:00
builtin_builtin.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_builtin.h split builtin builtin into its own module 2017-06-16 21:01:56 -07:00
builtin_cd.cpp env_var_t to forget its name 2018-01-30 12:36:50 -08:00
builtin_cd.h split builtin cd into its own module 2017-06-16 21:01:56 -07:00
builtin_command.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_command.h split builtin command into its own module 2017-06-16 21:01:56 -07:00
builtin_commandline.cpp Clean up tokenizer implementation 2018-02-23 14:31:13 -08:00
builtin_commandline.h restyle builtin modules to match project style 2016-04-26 21:58:59 -07:00
builtin_complete.cpp Remove unused vars identified by lint 2017-08-18 16:52:39 -07:00
builtin_complete.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_contains.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_contains.h split builtin contains into its own module 2017-06-16 21:01:56 -07:00
builtin_disown.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_disown.h split builtin disown into its own module 2017-06-16 21:01:56 -07:00
builtin_echo.cpp use the UNUSED(); pattern for the prev change 2017-07-09 19:55:04 -07:00
builtin_echo.h split builtin echo into its own module 2017-06-16 21:01:56 -07:00
builtin_emit.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_emit.h split builtin emit into its own module 2017-06-16 21:01:56 -07:00
builtin_exit.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_exit.h split builtin exit into its own module 2017-06-16 21:01:56 -07:00
builtin_fg.cpp Deprecate $_ in favor of (status current-command) 2018-03-24 11:58:19 -05:00
builtin_fg.h split builtin fg into its own module 2017-06-16 21:01:56 -07:00
builtin_function.cpp Migrate some function properties into a shared_ptr 2018-02-12 10:52:55 -08:00
builtin_function.h Functions to store nodes 2018-02-12 10:49:22 -08:00
builtin_functions.cpp Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
builtin_functions.h split builtin functions into its own module 2017-06-16 21:01:56 -07:00
builtin_history.cpp Merge branch 'master' into history-glob-search 2017-10-10 08:16:21 +02:00
builtin_history.h split builtin history into its own module 2017-06-16 21:01:56 -07:00
builtin_jobs.cpp Fix accidental rename of --pid parameter to jobs builtin 2018-03-24 12:13:58 -05:00
builtin_jobs.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_math.cpp [math] Add tests for runtime errors 2018-03-07 18:13:26 +01:00
builtin_math.h Implement bare minimum builtin math command 2017-08-23 14:43:45 -07:00
builtin_printf.cpp fix 'printf "%o"' handling on powerpc64 2017-10-03 04:17:56 +03:00
builtin_printf.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_pwd.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_pwd.h split builtin pwd into its own module 2017-06-16 21:01:56 -07:00
builtin_random.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_random.h split builtin random into its own module 2017-06-16 21:01:56 -07:00
builtin_read.cpp Emit deprecation error when read -i is used for --silent 2018-03-09 11:48:51 -06:00
builtin_read.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_realpath.cpp Change wrealpath to return a maybe_t 2017-10-11 00:08:26 -07:00
builtin_realpath.h split builtin realpath into its own module 2017-06-16 21:01:56 -07:00
builtin_return.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_return.h split builtin return into its own module 2017-06-16 21:01:56 -07:00
builtin_set.cpp env_var_t to forget its name 2018-01-30 12:36:50 -08:00
builtin_set.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_set_color.cpp [cmake] Clean up curses vs ncurses includes 2018-02-04 03:11:22 -06:00
builtin_set_color.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_source.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_source.h split builtin source into its own module 2017-06-16 21:01:56 -07:00
builtin_status.cpp Deprecate $_ in favor of (status current-command) 2018-03-24 11:58:19 -05:00
builtin_status.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_string.cpp Default string split to keeping empty entries with option to remove 2018-03-29 08:12:08 -05:00
builtin_string.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_test.cpp Mark overriding virtual functions as override instead of virtual 2018-02-18 19:12:45 -08:00
builtin_test.h restyle builtin modules to match project style 2016-04-26 21:58:59 -07:00
builtin_ulimit.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_ulimit.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_wait.cpp Use some modern initialization syntax in builtin_wait 2017-11-16 10:54:34 -08:00
builtin_wait.h add wait command 2017-11-16 10:48:21 -08:00
color.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
color.h implement our own assert() function 2017-02-14 18:48:27 -08:00
common.cpp Use alternative Unicode glyphs if compiled under Windows/WSL 2018-03-28 14:27:25 -05:00
common.h Stop exporting empty variables as ENV_NULL 2018-03-24 23:42:09 -07:00
complete.cpp fix compile error on gcc 7.3 2018-03-14 13:13:59 +01:00
complete.h Wrapping completions to allow injecting arguments 2018-02-27 14:12:44 -08:00
env.cpp Stop exporting empty variables as ENV_NULL 2018-03-24 23:42:09 -07:00
env.h Stop exporting empty variables as ENV_NULL 2018-03-24 23:42:09 -07:00
env_universal_common.cpp Stop exporting empty variables as ENV_NULL 2018-03-24 23:42:09 -07:00
env_universal_common.h Implement $hostname variable 2018-03-09 15:02:32 -06:00
event.cpp Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
event.h Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
exec.cpp Fix handling of signals (#4851) 2018-03-24 12:37:15 -07:00
exec.h implement limits on command substitution output 2017-08-03 17:40:25 -07:00
expand.cpp deleted no longer necessary codes due to removing process expansion. 2018-03-31 12:12:27 -07:00
expand.h Handle whitespace within parameter expansion tokens 2018-03-11 22:02:43 -05:00
fallback.cpp Add fish_emoji_width variable to control computed emoji width 2018-02-25 23:38:10 -08:00
fallback.h Add fish_emoji_width variable to control computed emoji width 2018-02-25 23:38:10 -08:00
fish.cpp Source : function without any C++ hacks 2018-03-15 18:19:08 -05:00
fish_indent.cpp Add && and || support to the conditions of if and while 2018-03-05 13:39:36 -08:00
fish_key_reader.cpp Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
fish_tests.cpp Fix tests for new ) token error 2018-03-11 17:16:53 -05:00
fish_version.cpp [cmake] Untangle the CMake versioning 2018-01-08 22:28:10 -08:00
fish_version.h Revert "Generate FISH_BUILD_VERSION info for cmake builds" 2018-01-08 22:28:10 -08:00
function.cpp Source : function without any C++ hacks 2018-03-15 18:19:08 -05:00
function.h Source : function without any C++ hacks 2018-03-15 18:19:08 -05:00
highlight.cpp Rename BRACKET in reference to { to BRACE instead per #3802 2018-03-10 13:16:53 -06:00
highlight.h implement our own assert() function 2017-02-14 18:48:27 -08:00
history.cpp Add && and || support to tokenizer 2018-03-05 12:20:56 -08:00
history.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
input.cpp Move fixed test outside of input_mapping_is_match loop 2018-03-09 14:11:43 -06:00
input.h lint cleanup 2017-06-16 21:01:56 -07:00
input_common.cpp Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
input_common.h Add new pager-toggle-search input function 2018-01-30 09:58:08 -08:00
intern.cpp Remove custom lock types in favor of native C++11 mutexes 2017-08-18 23:09:31 -05:00
intern.h restyle intern module to match project style 2016-05-01 20:28:46 -07:00
io.cpp Mark trivial constructors/destructors as default 2018-02-18 19:12:45 -08:00
io.h Mark overriding virtual functions as override instead of virtual 2018-02-18 19:12:45 -08:00
iothread.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
iothread.h lint cleanups 2017-02-11 21:30:38 -08:00
kill.cpp fix random lint issues 2016-05-29 22:24:29 -07:00
kill.h restyle kill module to match project style 2016-05-01 22:18:59 -07:00
lru.h Removed XXHash and converted some wchar_t* to wcstring 2017-08-19 18:27:24 -05:00
maybe.h Correct failure to set 'filled' flag in maybe_t constructors 2018-03-10 02:17:35 -08:00
output.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
output.h change env_var_t to a vector of strings 2017-08-18 16:24:30 -07:00
pager.cpp Make pager background cover the entire candidate 2018-03-31 13:04:30 +02:00
pager.h implement our own assert() function 2017-02-14 18:48:27 -08:00
parse_constants.h Rename $pid (née %self) to $fish_pid 2018-03-24 11:54:27 -05:00
parse_execution.cpp Execute the conditions of if and while statements outside of their block 2018-03-31 14:57:24 -07:00
parse_execution.h Execute the conditions of if and while statements outside of their block 2018-03-31 14:57:24 -07:00
parse_grammar.h Add support for ! as an analog to 'not' 2018-03-05 14:04:49 -08:00
parse_grammar_elements.inc Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
parse_productions.cpp Add support for ! as an analog to 'not' 2018-03-05 14:04:49 -08:00
parse_productions.h style cleanups 2017-05-01 22:05:35 -07:00
parse_tree.cpp Restore localization to tokenizer error strings 2018-03-13 13:45:15 -05:00
parse_tree.h Highlight && and || as operators 2018-03-05 13:51:05 -08:00
parse_util.cpp Rename BRACKET in reference to { to BRACE instead per #3802 2018-03-10 13:16:53 -06:00
parse_util.h Teach parse_util_escape_string_with_quote about tildes 2018-02-17 15:18:43 -08:00
parser.cpp Mark trivial constructors/destructors as default 2018-02-18 19:12:45 -08:00
parser.h Remove parser_error 2018-02-18 20:29:28 -08:00
parser_keywords.cpp Reserve some builtin names 2018-02-25 21:29:24 +01:00
parser_keywords.h Make IWYU output in lint.cpp less messy 2016-06-23 17:26:08 -07:00
path.cpp Work around WSL access(2) EINVAL bug 2017-09-24 13:43:50 -05:00
path.h stop subclassing env_var_t from wcstring 2017-08-06 13:24:34 -07:00
postfork.cpp Sprinkle in some job control asserts 2018-03-04 20:17:26 -06:00
postfork.h Refactor job control to make functions act like their names imply 2018-02-14 19:08:12 -06:00
print_help.cpp lint: "collapsible if statements" warnings 2016-10-22 19:09:40 -07:00
print_help.h restyle proc module to match project style 2016-05-02 22:07:58 -07:00
proc.cpp Unify ellipsis_str[ing] with common variable set once 2018-03-09 14:40:35 -06:00
proc.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
reader.cpp Deprecate $_ in favor of (status current-command) 2018-03-24 11:58:19 -05:00
reader.h Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
sanity.cpp Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
sanity.h improve sanity check code 2017-01-24 15:24:13 -08:00
screen.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
screen.h Add prompt layout caching to layout_cache_t 2018-02-04 16:20:55 -08:00
signal.cpp Fix uninitialized sigaction.sa_flags valgrind error 2017-08-26 19:13:58 -05:00
signal.h Revert "Revert "finish cleanup of signal blocking code"" 2017-08-06 14:46:12 -07:00
tinyexpr.c [math] Better error for 2 + 2 4 2018-03-01 13:09:35 +01:00
tinyexpr.h [math] Better error for 2 + 2 4 2018-03-01 13:09:35 +01:00
tnode.cpp Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
tnode.h Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
tokenizer.cpp Restore localization to tokenizer error strings 2018-03-13 13:45:15 -05:00
tokenizer.h Restore localization to tokenizer error strings 2018-03-13 13:45:15 -05:00
utf8.cpp implement our own assert() function 2017-02-14 18:48:27 -08:00
utf8.h implement our own assert() function 2017-02-14 18:48:27 -08:00
util.cpp Fix the build on FreeBSD with Clang 2017-06-17 22:51:25 -07:00
util.h restyle remaining modules to match project style 2016-05-03 16:09:45 -07:00
wcstringutil.cpp Handle whitespace within parameter expansion tokens 2018-03-11 22:02:43 -05:00
wcstringutil.h Default string split to keeping empty entries with option to remove 2018-03-29 08:12:08 -05:00
wgetopt.cpp refactor wgetopt.cpp to reduce complexity 2017-06-17 17:09:01 -07:00
wgetopt.h Fix the build on FreeBSD ARM and ARM64 (#4593) 2017-12-12 22:45:17 -08:00
wildcard.cpp Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
wildcard.h Make IWYU output in lint.cpp less messy 2016-06-23 17:26:08 -07:00
wutil.cpp Change wrealpath to return a maybe_t 2017-10-11 00:08:26 -07:00
wutil.h Change wrealpath to return a maybe_t 2017-10-11 00:08:26 -07:00