aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* reduce number of Unicode private-use charactersGravatar Kurtis Rader2016-02-28
| | | | | | | | | This narrows the range of Unicode codepoints fish reserves for its own use from U+E000 thru U+F8FE (6399 codepoints) to U+F600 thru U+F73F (320 codepoints). This is still not ideal since fish shouldn't be using any Unicode private-use codepoints but it's a step in the right direction. This partially addresses issue #2684.
* Eliminate narrow_string_rep_tGravatar ridiculousfish2016-02-28
| | | | | | | | | | This was used to cache a narrow string representation of commands, so that if certain system calls returned errors after fork, we could output error messages without allocating memory. But in practice these errors are very uncommon, as are commands that have wide characters. It is simpler to do a best-effort output of the wide string, instead of caching a narrow string unconditionally.
* Re-use the parse tree generated during error detection for executionGravatar ridiculousfish2016-02-28
| | | | | | | Prior to this fix, read_ni would use parse_util_detect_errors to lint the script to run, and then parser_t::eval() to execute it. Both functions would parse the script into a parse tree. This allows us to re-use the parse tree, improving perfomance.
* Allow parse_execution_context to take ownership of a parse treeGravatar ridiculousfish2016-02-28
| | | | | | Introduces a new template moved_ref which is like an rvalue reference. This allows passing around objects while being explicit that the receiver may acquire ownership. This will help reduce some allocations.
* Add missing #include guards in FISH_PAGER_HGravatar ridiculousfish2016-02-27
|
* Remove unused MESS_SIZE defineGravatar ridiculousfish2016-02-27
|
* Remove some unnecessary statics and a silly #define constGravatar ridiculousfish2016-02-27
|
* Mark a bunch of constructors as explicitGravatar ridiculousfish2016-02-27
| | | | This prevents undesired implicit conversions
* Make expand_argument_list a static functionGravatar ridiculousfish2016-02-27
| | | | It doesn't use any properties of parser_t
* Eliminate parser_t::show_errorsGravatar ridiculousfish2016-02-27
| | | | Errors are now unconditionally shown
* Eliminate parser_type_tGravatar ridiculousfish2016-02-27
| | | | It was never fully implemented and wasn't used for anything
* Allow -w option as short for --wraps in define_functionGravatar ridiculousfish2016-02-27
| | | | Fixes #2772
* Allow variable completion from just a $Gravatar ridiculousfish2016-02-27
| | | | | Previously there had to be some variable text, now you can tab complete from just a naked $.
* Save a few allocations in src/parse_execution.cppGravatar ridiculousfish2016-02-27
|
* Fix a subtle problem that caused lots of unnecessary memory allocationGravatar ridiculousfish2016-02-27
|
* Send BEL to terminal to flash/beep while trying to complete something not ↵Gravatar Aaron Gyes2016-02-25
| | | | completeable.
* Resume sorting completions from wildcard expansionsGravatar ridiculousfish2016-02-22
| | | | Ought to fix the wildcard expansion test on Linux
* Remove an unused variableGravatar ridiculousfish2016-02-22
|
* make fish compatible with pcre2 10.21Gravatar Michael Steed2016-02-21
| | | | | | | | | | | | | pcre2_substitute() now sets the output buffer length to PCRE2_UNSET (~0) if the output buffer is determined to be too small. This change keeps track of the buffer size separately where pcre2 can't touch it. A better fix would be to let pcre2 tell fish what size buffer it needs. This can be done with PCRE2_SUBSTITUTE_OVERFLOW_LENGTH, but this requires pcre2 10.21 or later (released January 12), which may be too new to introduce as a dependency at this point. Fixes #2743
* Miscellaneous cleanup and dead code removalGravatar ridiculousfish2016-02-19
| | | | Noticed by cppcheck
* Remove some newly dead codeGravatar ridiculousfish2016-02-18
| | | | out_suggested_cdpath is no longer required from is_potential_path
* Remove autosuggest_suggest_specialGravatar ridiculousfish2016-02-18
|
* Implement the cd "unique hierarchy" autosuggestion in expand.cppGravatar ridiculousfish2016-02-18
|
* Teach tests about changes to special autosuggestionsGravatar ridiculousfish2016-02-18
|
* Always env_set_pwd after chdir in the fish testsGravatar ridiculousfish2016-02-18
| | | | This avoids confusion between getcwd() and $PWD
* Additional work on unifying cd autosuggestions with completeGravatar ridiculousfish2016-02-18
|
* Complete to take a pointer to output completions, not a mutable refGravatar ridiculousfish2016-02-18
|
* Migrate sort_and_prioritize to complete.cppGravatar ridiculousfish2016-02-18
|
* Switch autosuggest_suggest_special to returning a completion_tGravatar ridiculousfish2016-02-18
|
* Early work towards moving the cd special autosuggestion into completionsGravatar ridiculousfish2016-02-18
| | | | This will simplify some code and make the cd autosuggestion smarter
* Stop always returning STATUS_BUILTIN_ERROR on --merge.Gravatar Aaron Gyes2016-02-16
|
* Remove a debug() guarded by a surprising get_is_interactiveGravatar ridiculousfish2016-02-16
| | | | | | get_is_interactive can crash if proc_init has not been called. Fixes #2280
* Use contains instead of string ==Gravatar ridiculousfish2016-02-15
| | | | Fix a few typos too
* Reinstate failglob behaviour for most commandsGravatar Andreas Nordal2016-02-15
| | | | | | | | | | | | | | | | | Expand globs to zero arguments (nullglob) only for set, for and count. The warning about failing globs, and setting the accompanying $status, now happens regardless of mode, interactive or not. It is assumed that the above commands are the common cases where nullglob behaviour is desirable. More importantly, doing this with `set` is a real feature enabler, since the resulting empty array can be passed on to any command. The previous behaviour was actually all nullglob (since commit cab115c8b9933ae7db9412c66d452c0ccb2d7152), but this was undocumented; the failglob warning was still printed in interactive mode, and the documentation was bragging about failglob behaviour.
* Remove an unnecessary typecastGravatar ridiculousfish2016-02-10
|
* Remove a stale comment about constGravatar ridiculousfish2016-02-10
|
* Remove const from _wgetopt_internal's argv argumentGravatar Jon Eyolfson2016-02-10
| | | | The argv argument may be modified on calls to exchange within the function and should not be const qualified (it's not true from the caller's point of view).
* fish_tests: Explicitly cast -2 to wchar_tGravatar Andy Lutomirski2016-02-08
| | | | | | On arm, wchar_t is unsigned, and C++11 and newer disallow implicit narrowing conversions inside braces. Use an explicit conversion to fix the build on GCC 6 and up, which defaults to C++11.
* Factor expand_string into multiple stagesGravatar ridiculousfish2016-02-05
| | | | | Breaks up a big ugly function into separable stages with a common interface.
* expand_string to return an enum instead of intGravatar ridiculousfish2016-02-05
|
* Bits of cleanup of expand_stringGravatar ridiculousfish2016-02-04
| | | | Remove some unnecessary variables, make some things not pointers
* Merge change for lengthened and configurable escape key timeoutGravatar ridiculousfish2016-02-04
|\
| * change default escape timeoutGravatar Kurtis Rader2016-02-04
| | | | | | | | | | | | | | | | This changes the default escape timeout for the default keybindings (emacs mode) to 300ms and the default for vi keybindings to 10ms. I couldn't resist fixing a few nits in the fish_vi_key_bindings.fish file since I was touching it to set the escape timeout.
* | when sourcing config.fish do not redirect stderrGravatar Kurtis Rader2016-02-04
| | | | | | | | | | | | | | | | | | | | All versions of fish prior to this change silently discarded anything written to stderr while source a config.fish file. Apparently just to avoid having the source command display an error if the file did not exist. This can mask real problems. So instead this change explicitly checks whether the file is readable and silently skips sourcing it if it isn't. Resolves issue #2702.
* | Prefer special autosuggestions to match caseGravatar ridiculousfish2016-02-04
| | | | | | | | Fixes #2672
* | Autosuggestions to follow same prioritization as tab completionsGravatar ridiculousfish2016-02-04
| | | | | | | | Partial fix for #2672
* | Use vector instead of deque in input_function_push_argsGravatar ridiculousfish2016-02-02
| | | | | | | | deque is a memory hog last I checked
* | Merge branch 'fix-jump' of git://github.com/cpick/fish-shell into cpick-fix-jumpGravatar ridiculousfish2016-02-02
|\ \
* | | Don't crash when autosuggesting cd'ing into a directory with ~Gravatar ridiculousfish2016-02-02
| | | | | | | | | | | | Fixes #2696
* | | Work around some bogus static analyzer warningsGravatar ridiculousfish2016-02-02
| | |