ridiculousfish
051605b593
Cleap up owning_lock interface
...
Use some operator overloading to avoid the weird interface of acquired_lock.
2018-09-01 13:11:42 -07:00
ridiculousfish
1a9e3761ae
Add highlighting tests for empty variables
2018-09-01 12:05:52 -07:00
ridiculousfish
7bd26f9ff0
Teach syntax highlighting about variables in commands
2018-09-01 12:00:56 -07:00
ridiculousfish
865a4647ae
Allow variables in commands
...
Syntax highlighting for these coming in next commit.
Fixes #154
2018-09-01 12:00:56 -07:00
ridiculousfish
59d78e8afa
Clean up syntax highlighting test
2018-09-01 10:17:57 -07:00
ridiculousfish
de2b0d1ae8
Remove some #if 0 code
2018-08-26 02:36:28 -07:00
ridiculousfish
2a680ebd12
Fix some miscellaneous warnings
2018-08-26 00:43:40 -07:00
ridiculousfish
67c4da9dbf
Correct formatting in argparse
2018-08-25 16:18:49 -07:00
ridiculousfish
4abdf8c301
Some refactoring of argparse implicit ints
2018-08-25 16:14:16 -07:00
ridiculousfish
d046452cdf
Increased const correctness in argparse
2018-08-25 16:09:04 -07:00
ridiculousfish
9f436c3750
Clean up bits of wgetopter_t interface
2018-08-25 16:09:04 -07:00
Mahmoud Al-Qudsi
1b1bc28c0a
Protect against loss of background jobs on exec
...
`exec` now exhibits the same behavior as `exit` and prompts the user to
confirm their intention to end the current process if there are
background jobs running. Running `exec` again immediately thereafter
will force the exec to go through.
Additionally, background jobs are reaped upon exec to prevent process
leaking (same as `exit`).
2018-08-20 22:52:47 -05:00
ridiculousfish
54d8d169b5
Remove some compatibility juk from wgetopt
2018-08-18 17:22:55 -07:00
ridiculousfish
d9f34147c3
builtins to only acquire terminal if owned by their pgroup
...
Fix #5133 changed builtins to acquire the terminal, but this regressed
caused fish to be stopped when running in background via `sudo fish`.
Fix this by only acquiring the terminal if the terminal was owned by the
builtin's pgroup.
Fixes #5147
2018-08-18 16:56:01 -07:00
ridiculousfish
cbcabf6d00
Add support for fish_ambiguous_width
...
fish_ambiguous_width is a variable which controls the width of ambiguous CJK
characters.
Fixes #5149
2018-08-18 15:38:05 -07:00
ridiculousfish
d40a82b4d3
Mark reader.cpp jump as static
2018-08-18 14:48:46 -07:00
Chris
1d68b52cbc
Add till/repeat/reverse jump bindings
...
- Add support for:
- Jumping to the character before a target.
- Repeating the previous jump (same direction, same precision).
- Repeating the previous jump in the reverse order.
- Enhance vi bindings.
2018-08-18 14:42:29 -07:00
Mahmoud Al-Qudsi
1c59a3f1a8
Fix traversal order of tokens in history completion
...
Fixes an issue introduced by e51e854. Closes #5150 .
2018-08-16 14:07:38 -05:00
ridiculousfish
fa66ac8d8c
Acquire tty if interactive when running builtins
...
When running a builtin, if we are an interactive shell and stdin is a tty,
then acquire ownership of the terminal via tcgetpgrp() before running the
builtin, and set it back after.
Fixes #4540
2018-08-12 03:41:56 -07:00
ridiculousfish
c0a332743f
Escape less aggressively when showing completions in pager
...
Stop escaping [, spaces, etc. in the pager.
2018-08-12 03:37:13 -07:00
ridiculousfish
9b22ae7c74
Remove a gnarly macro from builtin_history
2018-08-12 02:41:09 -07:00
ridiculousfish
d87f00bdc9
Simplify history search
...
Remove features related to navigating forwards in history that are no
longer used.
2018-08-12 02:41:09 -07:00
ridiculousfish
e51e854d8d
Clean up reader history search
...
Factor the history search fields into a new class.
As a side effect, this shares the deduplication logic, so that token search
no longer returns duplicates.
Fixes #4795
2018-08-12 02:40:15 -07:00
ridiculousfish
1473f952d4
Make contains() more general
...
Allow contains() to find arbitrary values in arbitrary vectors, and adopt it
in place of std::find.
2018-08-11 22:23:20 -07:00
ridiculousfish
b0dc715d18
Factor update_autosuggestion to use can_autosuggest
2018-08-11 17:40:06 -07:00
ridiculousfish
4fdcc2e400
Begin to rationalize reader data stack
...
Switch from a manually maintained linked list to an explicit stack.
2018-08-11 13:17:00 -07:00
ridiculousfish
68c7ecd777
Remove reader_t::app_name field
...
It was unused
2018-08-11 13:02:50 -07:00
ridiculousfish
f7d846ad8b
Make reader_push accept wcstring instead of wchar_t*
2018-08-11 12:43:11 -07:00
ridiculousfish
82bff2d692
Modernize some reader code for C++11
2018-08-11 12:39:24 -07:00
ridiculousfish
1f2b2b119a
Remove some disabled (commented or ifdef'd out) code
2018-08-10 20:48:02 -07:00
Jon Eyolfson
c3ca108dbe
Added const to methods which 'ought to be const' based on Const Checker
2018-08-09 19:05:47 -07:00
ridiculousfish
9c957eeef3
Prefer to not autosuggest existing arguments
...
This teaches autosuggestions to demote completions whose text matches an already
present argument.
2018-08-07 02:04:43 -07:00
ridiculousfish
459c01df76
Slightly refactor completion calculation
...
Move more stuff into completer_t
2018-08-07 00:40:01 -07:00
ridiculousfish
3175ccf266
Use move semantics when returning completions
...
Avoids some string copies
2018-08-06 23:58:48 -07:00
ridiculousfish
20cec8611d
Remove a stale comment
2018-08-04 16:51:57 -07:00
ridiculousfish
cbff87fe17
Minor cleanup and const correctness
2018-08-04 16:45:16 -07:00
ridiculousfish
2b0c54dfc8
Ignore return value of system() in tests
...
Fixes some warnings on Linux
2018-08-04 16:33:31 -07:00
ridiculousfish
acff2516d4
Straighten out some wchar_t** casts
...
Embrace the fact that builtins expect to modify their argv array and get rid
of a bunch of const.
2018-08-04 16:25:51 -07:00
ridiculousfish
5eada4b623
Put some of builtin_test in an anonymous namespace
...
Reduces the binary size a bit
2018-08-04 15:49:20 -07:00
ridiculousfish
d2bee105c9
Default math scale to 6
...
This changes the behavior of builtin math to floating point by default.
If the result of a computation is an integer, then it will be printed as an
integer; otherwise it will be printed as a floating point decimal with up to
'scale' digits past the decimal point (default is 6, matching printf).
Trailing zeros are trimmed. Values are rounded following printf semantics.
Fixes #4478
2018-08-04 15:32:09 -07:00
David Adam
22ccee3380
wutil.h: fix build on newer glibc
...
https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xlocale.h.27
2018-08-03 22:35:50 +08:00
ridiculousfish
40e37c4a87
Teach test to handle floating point values
2018-08-03 00:48:50 -07:00
ridiculousfish
42c648ab35
Create an immortal C locale
...
This adds a function fish_c_locale() which returns an immortal locale_t
corresponding to the C locale, and switches builtin_printf to use wcstod_l.
2018-08-03 00:48:50 -07:00
ridiculousfish
9d1fc1045e
Implement 'functions -d' to set function description
...
This was documented, but didn't actually work.
Fixes #5105
2018-07-22 11:28:05 -07:00
ridiculousfish
7af3adc344
Revert "Don't require ./etc to exist in relocatable fish"
...
This reverts commit e2a3dae58b265121f192bf6518ff2f7969378aeb.
This idea failed because ./share was not complete when bliding via cmake;
it misses critical files such as config.fish.
2018-07-21 20:57:21 -07:00
ridiculousfish
8b83fe1ff7
Simplify yet more memory management in argparse
2018-07-21 19:13:10 -07:00
ridiculousfish
c269ef2c5d
Copy strings less in argparse
2018-07-21 18:53:03 -07:00
ridiculousfish
3c4c47f516
Clean up some memory usage in argparse
...
Clarify some ownership models
2018-07-21 18:52:54 -07:00
ridiculousfish
a374b8ede7
Simplify splitting on commas in argparse
2018-07-21 17:25:16 -07:00
ridiculousfish
e2a3dae58b
Don't require ./etc to exist in relocatable fish
...
fish tries to be relocatable by looking for directories relative to its
executable. These directories are not found when running fish from
within a cmake build because the etc directory is not present. Stop requiring
this directory to be present since it's not critical for running fish.
Fixes #4825
2018-07-21 16:47:00 -07:00