Mahmoud Al-Qudsi
097d6c3c5b
Fix order of operations in tilde comparison
...
The previous form of the statement evaluated to a constant comparison
and couldn't have been what was actually intended.
2019-05-09 01:22:23 -05:00
Per Bothner
4c0a119557
Disable cursor_down optimization, but fix to check c_oflag, but c_iflag.
...
The old commit #3f820f0 "Disable ONLCR mapping of NL output to CR-NL"
incorrectly used c_iflag instead of c_oflag, and I copied that error
in my patch. Fixed that. However, there seems to be other problems
trying to use "\x1B[A", which I have not tried to debug, so comment that out.
(However, #3f820f0 seems to mostly work if we fix it to use c_oflag.)
2019-05-08 17:22:44 +02:00
Per Bothner
50db10a422
Alternate fix for cursor_down bound to "\n" and ONLCR set.
...
See GitHub issue #4505 "Terminal mode confusion"
and commit #3f820f0 "Disable ONLCR mapping of NL output to CR-NL".
2019-05-08 17:22:44 +02:00
Fabian Homborg
e20c08d04e
argparse: Fix validation for short-only-flags
...
This read something like `o=!_validate_int`, and the flag modifier
reading kept the pointer after the `!`, so it created a long flag
called `_validate_int`, which meant it would not only error out form
```fish
argparse 'i=!_validate_int' 'o=!_validate_int' -- $argv
```
with "Long flag '_validate_int' already defined", but also set
$_flag_validate_int.
Fixes #5864 .
2019-05-06 17:24:42 +02:00
Fabian Homborg
5bf21f2928
Penalize files ending in ~ in suggestions
...
Fixes #985 .
2019-05-06 17:07:29 +02:00
Fabian Homborg
cc205a134b
Disable fish_title in emacs
2019-05-06 17:06:40 +02:00
ridiculousfish
8a8b2513b5
Eliminate the global jobs() function
...
All job lists are attached to a parser now.
2019-05-05 11:33:08 -07:00
Fabian Homborg
afff93bdb2
Disable vi-cursor in tests
...
Otherwise this breaks if run inside a terminal that could do the cursor.
2019-05-05 17:31:33 +02:00
Fabian Homborg
8f3f4bbc9c
CHANGELOG fish_indent semicolons and test stacktrace
...
[ci skip]
2019-05-05 15:22:01 +02:00
Fabian Homborg
8d9782301e
docs: Call "arrays" "lists"
...
We were flip-flopping between the two terms, so we now use one. We
still mention "array" in the chapter, and it's still `read --array`,
though.
Fixes #5846 .
[ci skip]
2019-05-05 14:01:07 +02:00
Fabian Homborg
d83636f70e
completions/git: Handle AD files
...
Added files that were deleted after. These count as both added and
deleted.
Fixes #5861 .
[ci skip]
2019-05-05 13:49:11 +02:00
Fabian Homborg
bcce6d691f
Keep "; and" and "; or" on fish files
...
This reformats *.fish files from before commit
c2970f9618
with the changes to fish_indent.
[ci skip]
2019-05-05 13:34:38 +02:00
Fabian Homborg
46b804cf19
fish_vi_cursor: Don't fail if --force-iterm
is given in non-iterm
...
Otherwise this would have used it as the terminal.
Fixup!
[ci skip]
2019-05-05 13:05:19 +02:00
Fabian Homborg
e952f60b02
functions/fish_vi_cursor: Disable on iTerm, allow override
...
I still don't get #3696 , so let's just offer an override for now.
[ci skip]
2019-05-05 13:01:02 +02:00
Fabian Homborg
7451443050
functions/fish_vi_cursor: Cleanup
...
Removes the unused "uses_echo" variable and adds some comments.
[ci skip]
2019-05-05 12:57:14 +02:00
Fabian Homborg
7d2eb9649c
functions/fish_vi_cursor: Detect a few more terms
...
These have $TERM entries of their own, so detecting them is quite easy.
2019-05-05 12:57:14 +02:00
Fabian Homborg
c22af0d8c7
functions/fish_vi_cursor: Simplify detection
...
This was quite famously rather complicated.
We drop a bunch of cases - we can't handle tmux-starting-terminals
100% accurately, so we just don't try. It should be quite rare that
somebody starts a different terminal from tmux.
We drop the `tput` since it is useless (like terminfo in general for
feature-detection, because everyone claims to be xterm).
So we just check if we are in konsole, iTerm, vte or genuine-xterm.
Fixes #3696 .
See #3481 .
2019-05-05 12:57:14 +02:00
Fabian Homborg
787ef3e558
functions/fish_vi_cursor: Move $XTERM_VERSION check earlier
...
Saves us from having to do it again and again.
2019-05-05 12:56:31 +02:00
Fabian Homborg
4078a3df26
build_tools/style.fish: Stop excluding completions
...
[ci skip]
2019-05-05 12:54:02 +02:00
Fabian Homborg
ce245704d7
Reformat completion scripts
...
These were excluded from style.fish
2019-05-05 12:53:09 +02:00
Fabian Homborg
15c50703ce
fish_indent: Allow semicolons for and
and or
...
As mentioned in #2900 , something like
```fish
test -n "$var"; and set -l foo $var
```
is sufficiently idiomatic that it should be allowable.
Also fixes some additional weirdness with semicolons.
2019-05-05 12:51:49 +02:00
Fabian Homborg
c2970f9618
Reformat all files
...
This runs build_tools/style.fish, which runs clang-format on C++, fish_indent on fish and (new) black on python.
If anything is wrong with the formatting, we should fix the tools, but automated formatting is worth it.
2019-05-05 12:09:25 +02:00
Fabian Homborg
90d64194c5
functions: Replace crummy forced tab with spaces
...
Still forced indentation, but at least the kind we recommend via
fish_indent.
Fixes #1472 .
2019-05-05 12:07:38 +02:00
Fabian Homborg
df7cb66ff9
build_tools/style: Make output a bit spicier.
...
COLORS! ALL THE COLORS! Well, three! No, wait, FOUR! But only if you
count "normal" as a color!
[ci skip]
2019-05-05 12:07:38 +02:00
Fabian Homborg
2b3f48d9ee
build_tools/style.fish: Use black as python formatter
...
(Also renames the silly "$f_files" to "$fish_files")
2019-05-05 12:07:38 +02:00
Fabian Homborg
3bea947bb5
fish_indent: Ignore consecutive semicolons
...
This removes semicolons at the end of the line and collapses
consecutive ones, while replacing meaningful semicolons with newlines.
I.e.
```fish
echo;
```
becomes
```fish
echo
```
but
```fish
echo; echo
```
becomes
```fish
echo
echo
```
Fixes #5859 .
2019-05-05 12:07:38 +02:00
Deniz Kızılırmak
c7cbf6dad0
Make 'git checkout' complete recent commits
2019-05-05 11:52:18 +02:00
ridiculousfish
1e171140d5
Make the input_common lookahead main-thread only
2019-05-04 20:58:36 -07:00
ridiculousfish
9018a7d5ee
Rename input_initialized to s_input_initialized and make it relaxed atomic
2019-05-04 20:58:35 -07:00
ridiculousfish
e10838d5d6
Make job_control_mode a static variable with accessors
2019-05-04 20:58:35 -07:00
ridiculousfish
9fb98baba6
Thread the parser into process_clean_after_marking
2019-05-04 20:58:35 -07:00
ridiculousfish
32d1b3d7cb
Simplify looping in readb
2019-05-04 20:58:35 -07:00
ridiculousfish
edab366d3a
Eliminate the "input callback queue"
...
This was a sort of side channel that was only used to propagate redraws
after universal variable changes. We can eliminate it and handle these
more directly.
2019-05-04 20:58:35 -07:00
ridiculousfish
56fd6f696b
Improve thread safety in input.cpp
2019-05-04 20:58:35 -07:00
ridiculousfish
36998eee55
Make more miscellaneous globals thread safe
2019-05-04 20:58:35 -07:00
ridiculousfish
e2c66a8131
Make termsize thread safe
2019-05-04 20:58:35 -07:00
ridiculousfish
0de1611bf1
Migrate builtin_complete recursion_level into parser_t::libdata
2019-05-04 20:58:35 -07:00
ridiculousfish
2ce827343e
Universal variables to become a latch variable
2019-05-04 20:58:35 -07:00
ridiculousfish
b0a695e9fa
Migrate the global exec_count into the parser
2019-05-04 20:58:35 -07:00
ridiculousfish
fe68287cb0
Make miscellaneous variables thread-safe
2019-05-04 20:58:35 -07:00
ridiculousfish
6e143bf50f
Eliminate history_collection_t
...
This was a pretty useless type.
2019-05-04 20:58:35 -07:00
ridiculousfish
3d63a68dd0
Make builtin_random thread safe
2019-05-04 20:58:35 -07:00
ridiculousfish
f66e010949
Turn a lot of common.h variables into getter functions
...
Improves thread safety.
2019-05-04 20:58:35 -07:00
ridiculousfish
9dc1fd50c9
Introduce global_safety.h
...
This is a set of types that enable characterizing the proper way to access
global variables.
2019-05-04 20:53:32 -07:00
ridiculousfish
ec522e5978
Migrate s_main_thread_request_queue to owning_lock
2019-05-04 20:42:56 -07:00
ridiculousfish
18cecd3663
Beef up find_globals
...
Allow it to find the source declarations for globals, and ignore const ones.
2019-05-04 20:42:48 -07:00
ridiculousfish
1e57424011
Thread a parser into function_exists
...
Since this may autoload, it needs a parser with which to autoload.
2019-05-04 20:20:52 -07:00
ridiculousfish
bffacd2fbf
Thread a parser into expansion
...
Expansion may perform command substitution, which needs to know the parser
to use.
2019-05-04 19:30:00 -07:00
ridiculousfish
4ce485525e
Correct duplicate completion detection
...
Stop assuming that completions with the same hash are equal.
2019-05-04 18:35:22 -07:00
ridiculousfish
923a7ca0f0
Thread the parser into complete()
...
Eliminates uses of principal_parser
2019-05-04 18:17:18 -07:00