Fabian Homborg
38a7c77e4b
Re-double-super-fix tilde completion crash
...
Yeah, I was too clever with the operators here.
Fixes #5929 .
2019-06-10 18:50:40 +02:00
Fabian Homborg
5e78d6dcc9
CHANGELOG math "x"
...
[ci skip]
2019-06-10 18:46:06 +02:00
Fabian Homborg
d1ca392393
math: Allow "x" for multiplication
...
It's always a bit annoying that `*` requires quoting.
So we allow "x" as an alternative, only it needs to be followed by
whitespace to distinguish it from "0x" hexadecimal notation.
2019-06-10 18:45:10 +02:00
ridiculousfish
42138f00c6
Remove wchdir()
...
It's unused, and will soon be dangerous as the process-wide cwd will
lose meaning.
2019-06-10 09:37:08 -07:00
ridiculousfish
6637ccd3a2
Keep an fd for the cwd in the parser
...
To support distinct parsers having different working directories, we need
to keep the working directory alive, and also retain a non-path reference
to it.
2019-06-10 09:27:51 -07:00
ridiculousfish
6ce85aebc6
Switch file_io_t to store a wcstring
...
We no longer use file_io_t after fork(). We don't need to use a malloc'd
string any more. Use a wcstring.
2019-06-09 17:43:25 -07:00
ridiculousfish
0f9f00b54b
Add a test that verifies cd handling in pipes
2019-06-09 16:08:00 -07:00
ridiculousfish
1baa479bbf
Eliminate the global list of scoped transient commandlines
...
Store this in a parser's libdata instead.
2019-06-09 14:11:25 -07:00
ridiculousfish
421cf92380
Use a generation count for uvars exports
...
Because an exported universal variable must be exported in all variable
stacks, explicit invalidation is infeasible. Switch the universal variables
to a generation count.
2019-06-09 13:48:07 -07:00
ridiculousfish
7dffaf1a02
Reimplement exported variable change detection
...
Prior to this fix, fish would invalidate the exported variable list
whenever an exported variable changes. However we soon will not have a
single "exported variable list." If a global variable changes, it is
infeasible to find all exported variable lists and invalidate them.
Switch to a new model where we store a list of generation counts. Every
time an exported variable changes, the node gets a new generation. If the
current generation list does not match the cached one, then we know that
our exported variable list is stale.
2019-06-09 13:25:30 -07:00
ridiculousfish
79ee59adc0
Convert the create_export_array message to flog
2019-06-09 13:22:18 -07:00
Per Bothner
e05a0716e5
Make sure initial indentation is done using cursor move, not spaces.
...
The goal to allow a terminal to reliably distinguish user input
from indentation and prompts, in the context of shell integration.
2019-06-09 11:36:47 -07:00
Per Bothner
7448e7825f
Avoid code duplication relating to screen clearning in s_update.
2019-06-09 11:32:26 -07:00
Mahmoud Al-Qudsi
c9a77bb474
Optimize history search reset checking
...
`history_search.active()` is an atomic read, whereas
`command_ends_history_search(..)` is a little bit heavier.
2019-06-08 21:07:32 -05:00
ridiculousfish
be97499106
Revert "Revert "Add a test for autoload_t""
...
This reverts commit 2507162f80
.
Put back the autoload test.
2019-06-07 12:12:43 -07:00
Per Bothner
18cf2b8509
Rename incorrect is_single_byte_escape_seq to is_three_byte_escape_seq.
2019-06-07 08:31:52 +02:00
Per Bothner
060a068a3c
Fix comment for is_single_byte_escape_seq.
2019-06-07 08:31:52 +02:00
Fabian Homborg
a3bdc6a233
docs/tutorial: Fix list link
...
[ci skip]
2019-06-06 22:52:14 +02:00
Fabian Homborg
13ed29aca8
docs/tutorial: Fix gitter link
...
Urgh.
[ci skip]
2019-06-06 22:50:43 +02:00
Fabian Homborg
a12c377f0c
docs/tutorial: Mention gitter channel
...
We also might want to remove the mailing list and/or IRC channel as I
think most devs aren't on them anymore, but let's just add the channel
that I prefer first.
[ci skip]
2019-06-06 20:01:26 +02:00
Fabian Homborg
6d05d93275
docs/tutorial: Expand
...
[ci skip]
2019-06-06 20:00:11 +02:00
Fabian Homborg
3641410a06
docs/tutorial: Misc
...
[ci skip]
2019-06-06 19:38:41 +02:00
Fabian Homborg
8eb0769996
docs/tutorial: Rewrite exit status section
...
We've kinda forgotten the "tutorial" part of this.
[ci skip]
2019-06-06 19:38:19 +02:00
Fabian Homborg
a154384ff4
docs/tutorial: Remove some empty lines
...
[ci skip]
2019-06-06 19:30:35 +02:00
Fabian Homborg
de3f862731
docs/tutorial: Rewrite exports section
...
See #5920 .
[ci skip]
2019-06-06 19:28:14 +02:00
Fabian Homborg
223b515ba1
docs/tutorial: Mention VAR=VAL syntax
...
That's the thing we're replacing, so we should mention it.
[ci skip]
2019-06-06 19:17:49 +02:00
Fabian Homborg
d338f74e6d
docs/tutorial: Put exit status with combiners and conditionals
...
It was awkwardly sandwhiched inbetween variables and exports.
[ci skip]
2019-06-06 19:17:09 +02:00
Fabian Homborg
53216940c4
docs: Clarify when exporting is necessary
...
See #5920 .
[ci skip]
2019-06-06 19:14:11 +02:00
Fabian Homborg
23671f696e
docs: Simplify variable scope/exporting a bit
...
[ci skip]
2019-06-06 19:14:11 +02:00
Fabian Homborg
b6eddc75bc
docs: Remove -#
formatting
...
That was supposed to be displayed like a list item, but it's displayed
verbatim in the html output at least, so it looks weird.
[ci skip]
2019-06-06 19:14:11 +02:00
Fabian Homborg
c89883b6ab
docs/faq: Fix header formatting
...
[ci skip]
2019-06-06 19:14:11 +02:00
Fabian Homborg
d1d5716ae1
CHANGELOG read history
...
[ci skip]
2019-06-06 19:14:11 +02:00
David Adam
84171e0c25
travis: turn on errors for some serious compiler warnings
...
See
2e38cf2a4b (commitcomment-20563617)
2019-06-06 21:13:00 +08:00
Fabian Homborg
ae59fdeda5
src/builtin_read: Remove more references to fish_history
2019-06-06 15:07:46 +02:00
Fabian Homborg
c0ca4d3236
functions/history: Read the search term if none is given
...
Fixes #5791 .
2019-06-06 15:07:46 +02:00
Fabian Homborg
51fcb79d96
Remove read history
...
This was undocumented, not all that useful and potentially unwanted.
In particular it means that things like
mysql -p(read)
will still keep the password in history.
Also it allows us to simply implement asking for the history deletion
term.
See #5791 .
2019-06-06 15:07:46 +02:00
ridiculousfish
fc99d6c7af
clang-format all files
2019-06-03 20:30:48 -07:00
ridiculousfish
d1fc8d5f71
Improve the iothread port structure
...
Mark both fds in the ioport as non-blocking, and allow bulk reads.
2019-06-03 16:42:51 -07:00
ridiculousfish
b478f877ee
Clean up g_fork_count
...
Make it static and atomic
2019-06-03 12:58:59 -07:00
ridiculousfish
bc103c2ea6
Make the list of event handlers thread safe
2019-06-03 12:33:10 -07:00
ridiculousfish
ead16958b2
Make set_signal_observed thread-safe
2019-06-03 12:32:48 -07:00
Shun Sakai
c566756f3b
Fix long option name of zypper
2019-06-03 16:36:03 +02:00
ridiculousfish
ad301ab3a0
Remove an incorrect shadowing use of principal_parser
2019-06-03 02:55:36 -07:00
ridiculousfish
ff55249447
Make events per-parser
...
This makes the following changes:
1. Events in background threads are executed in those threads, instead of
being silently dropped
2. Blocked events are now per-parser instead of global
3. Events are posted in builtin_set instead of within the environment stack
The last one means that we no longer support event handlers for implicit
sets like (example) argv. Instead only the `set` builtin (and also `cd`)
post variable-change events.
Events from universal variable changes are still not fully rationalized.
2019-06-03 02:48:35 -07:00
ridiculousfish
890c1188ab
Instantize and rationalize locking around the input mapping set
...
Hypothetically a background thread could invoke builtin_bind, etc.
Protect the set of input bindings with a lock.
2019-06-02 22:54:01 -07:00
ridiculousfish
2ef4d982df
Clean up some dependencies in input.h
2019-06-02 17:49:52 -07:00
ridiculousfish
ad35fb7457
Make the bind mode per-parser
...
Eliminates a use of principal_parser
2019-06-02 16:57:52 -07:00
ridiculousfish
671df14178
Thread a parser into inputter_t
2019-06-02 16:41:13 -07:00
ridiculousfish
a48dbf23b8
Instantize the character event queue
...
Wrap this stuff up in structs so it's no longer global.
2019-06-02 16:37:05 -07:00
Fabian Homborg
6c1d29e14d
fixup! Fix build
...
I deleted the lines that defined "narrow_path" and
"explicit_vars_path", but didn't see the two remaining uses.
Sorry!
2019-06-01 10:32:30 +02:00