fish-shell/src
Fabian Homborg 81a987c39c Fix range expansion with negative ends
If just one of the range ends is negative, this now forces direction away from it.

I.e. if the beginning is negative, we go in reverse.
If the end is negative, we go forwards.

This fixes cases like

    $var[2..-1]

if $var only has one element.
2018-06-25 17:52:56 +02: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_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 [commandline] Change "--selection" to "--current-selection" 2018-05-05 21:41:03 +02: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 Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05: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 function: restore '%self' functionality for --on-process-exit 2018-05-08 11:17:07 +02: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 Tweak the error message for history delete --exact foo 2018-04-14 21:59:18 -07:00
builtin_history.h split builtin history into its own module 2017-06-16 21:01:56 -07:00
builtin_jobs.cpp Support job expansion for jobs builtin 2018-04-14 16:47:05 -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 fixup! Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:34:31 -05: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 Support multiple read --line variable outputs 2018-04-17 21:34:22 -05: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_color.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05:00
builtin_set_color.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_set.cpp Don't corrupt memory when setting a slice with wrong # of args 2018-04-10 21:09:31 +08:00
builtin_set.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 Add a feature_test() function 2018-05-06 11:20:15 -07:00
builtin_status.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_string.cpp Work around compiler warning regarding C++17 name mangling 2018-06-01 22:53:33 -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 Fix warnings when compiling under clang 2018-05-11 11:11:53 -05:00
builtin_wait.h add wait command 2017-11-16 10:48:21 -08:00
builtin.cpp Convert list of builtins from sorted array to unordered_set 2018-04-03 15:47:21 -05:00
builtin.h Convert list of builtins from sorted array to unordered_set 2018-04-03 15:47:21 -05: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 Add a debug_escape function 2018-06-23 13:15:32 -07:00
common.h Add a debug_escape function 2018-06-23 13:15:32 -07:00
complete.cpp Fix off-by-one in complete_cmd_desc 2018-06-03 19:17:02 +02:00
complete.h Clean up complete.cpp code 2018-05-12 11:23:43 -05:00
env_universal_common.cpp Fix the Linux build 2018-04-01 17:59:42 -07:00
env_universal_common.h Remove MAC address from universal variables file 2018-04-01 17:43:12 -07:00
env.cpp Clean up some env.cpp export code 2018-05-27 15:45:30 -07:00
env.h Add and use new exit code for env_remove() when var doesn't exist 2018-03-31 22:12:52 -05: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 Eliminate a common subexpression 2018-06-16 11:43:52 -07:00
exec.h implement limits on command substitution output 2017-08-03 17:40:25 -07:00
expand.cpp Fix range expansion with negative ends 2018-06-25 17:52:56 +02:00
expand.h Handle whitespace within parameter expansion tokens 2018-03-11 22:02:43 -05:00
fallback.cpp Teach fish_wcwidth about variation selectors 2018-06-23 16:40:25 -07:00
fallback.h Add fish_emoji_width variable to control computed emoji width 2018-02-25 23:38:10 -08:00
fish_indent.cpp Teach fish_indent about escaped newlines 2018-05-07 21:40:53 -07:00
fish_key_reader.cpp fixup! Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:34:31 -05:00
fish_tests.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -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
fish.cpp Set features from the environment 2018-05-06 11:20:14 -07: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
future_feature_flags.cpp Add a qmark-noglob feature flag 2018-05-06 11:20:15 -07:00
future_feature_flags.h Add a feature_test() function 2018-05-06 11:20:15 -07:00
highlight.cpp Add a feature_test() function 2018-05-06 11:20:15 -07: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_common.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05:00
input_common.h Add new pager-toggle-search input function 2018-01-30 09:58:08 -08:00
input.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05:00
input.h lint cleanup 2017-06-16 21:01:56 -07: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 Add acquire() to maybe_t 2018-04-01 16:10:59 -07:00
output.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05:00
output.h Prevent fish from crashing if non-essential terminfo strings not found 2018-06-17 20:59:34 -05: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_elements.inc Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
parse_grammar.h Fix warning about extra ';' being ignored 2018-06-18 00:05:31 -05:00
parse_productions.cpp Fix some unused variable warnings 2018-03-31 17:06:13 -07:00
parse_productions.h style cleanups 2017-05-01 22:05:35 -07:00
parse_tree.cpp Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
parse_tree.h Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
parse_util.cpp Add a feature_test() function 2018-05-06 11:20:15 -07:00
parse_util.h Teach parse_util_escape_string_with_quote about tildes 2018-02-17 15:18:43 -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
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
path.cpp Handle odd return codes for waccess(..) in src/path.cpp under Solaris 2018-06-17 19:58:20 -05:00
path.h stop subclassing env_var_t from wcstring 2017-08-06 13:24:34 -07:00
postfork.cpp Silence EACCES errors upon setpgid after posix_spawn() 2018-06-17 22:32:52 -05: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 Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05:00
proc.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
reader.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -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 Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05: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 Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
tokenizer.h Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07: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 Support multiple read --line variable outputs 2018-04-17 21:34:22 -05:00
wcstringutil.h Add line-delimited read presets with --line and --all-lines 2018-04-17 21:34:22 -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 Add a feature_test() function 2018-05-06 11:20:15 -07:00
wildcard.h Feature flag support for ? wildcard 2018-05-06 11:20:15 -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