Kurtis Rader
728a4634a1
replace var_entry_t
with env_var_t
...
This is a step to storing fish vars as actual vectors rather than flat
strings.
2017-08-14 18:18:09 -07:00
Fabian Homborg
745a88f2f6
Revert "Fix clearing abandoned line with VTE ( #4243 )"
...
Unfortunately, this breaks the expect tests.
So, until I can figure out how to unbreak them:
This reverts commit 09cb31a172
.
2017-08-14 18:17:34 -07:00
Fabian Homborg
cf00162340
Fix clearing abandoned line with VTE ( #4243 )
...
* Fix clearing abandoned line with VTE
With VTE-based terminals, resizing currently causes multi-line prompts
to go weird.
This changes the sequence we use to clear the line to one suggested by
a VTE
developer (https://bugzilla.gnome.org/show_bug.cgi?id=763390#c4 ).
It changes nothing in konsole 17.04.3 and urxvt 9.22, but they already
work.
Note that this does not fix the case where output did not end in a
newline, but that doesn't seem to be up to us. Also, it only affects
those lines.
Fixes #2320 .
* Use terminfo definition instead of hardcoding
Thanks to @ixjlyons.
2017-08-14 18:17:34 -07:00
Kurtis Rader
a40d5d4ea6
fix botched merge
2017-08-09 12:30:33 -07:00
Kurtis Rader
29f933adfc
Merge branch 'master' into major
2017-08-09 12:26:24 -07:00
Kurtis Rader
11f5bbf83d
remove completions for .
and source
...
These completions never actually worked and always fell back to the
builtin path completion. But a recent fix means that these now keep the
fallback from happening resulting in no completions for these commands.
2017-08-09 11:15:20 -07:00
David Adam
5e4d046492
docs: tidy language in set
notes
2017-08-09 23:25:00 +08:00
David Adam
5d2a806ac6
set: update language of warning message
2017-08-09 14:23:00 +08:00
Kurtis Rader
3a506543b6
Merge branch 'master' into major
2017-08-07 18:52:00 -07:00
Radek SPRTA
74cac0f86f
completions for snap
command
2017-08-07 18:47:37 -07:00
Kurtis Rader
55bef3cd2e
remove deprecated .
(dot) command
...
Fixes #4294
2017-08-07 18:31:20 -07:00
Mahmoud Al-Qudsi
0ebff8c516
Addresses #4292 by removing custom completions for source builtin
...
The source builtin should use the default path completion and isn't
restricted to *.fish files by wrapping ..fish
2017-08-07 17:49:28 -07:00
Kurtis Rader
1e67baf00e
Merge branch 'master' into major
2017-08-07 17:49:02 -07:00
Alexey Alekhin
326f2affa4
Fixed functions -D/--details completion
2017-08-07 17:43:05 -07:00
Kurtis Rader
9d5a6c57a8
Merge branch 'master' into major
2017-08-06 20:53:51 -07:00
Elliott Beach
9fa0edcbc9
document bind behavior when mixing command types
...
Fixes 3683
2017-08-06 20:49:30 -07:00
Kurtis Rader
fb7645659f
Merge branch 'master' into major
2017-08-06 20:22:31 -07:00
Kurtis Rader
4f5bd08b20
improve set -U
warning
...
Doing `set -U var` when a global named `var` exists can result in
confusing behavior. Try to limit the confusion by improving the warning
we write. Also, only write the warning if interactive.
Fixes #4267
2017-08-06 19:57:25 -07:00
Kurtis Rader
975a5bfbde
make style-all time again
...
Recent changes have introduced some style deviations so clean them up.
2017-08-06 16:05:51 -07:00
Kurtis Rader
acdb81bbca
lint and style cleanups
2017-08-06 15:47:01 -07:00
Kurtis Rader
083224d1c0
fixes to job control changes
...
The job control changes need a couple of fixes for compatibility with
changes I merged while @mqudsi was workin on his change.
2017-08-06 15:25:42 -07:00
Kurtis Rader
52d739c746
Revert "Revert "finish cleanup of signal blocking code""
...
This reverts commit 35ee28ff24
.
Reapply the signal blocking cleanup change on top of the job control
changes made by @mqudsi.
2017-08-06 14:46:12 -07:00
Mahmoud Al-Qudsi
0594735714
Deduplication between INTERNAL_FUNCTION and INTERNAL_BLOCK_NODE
2017-08-06 14:41:27 -07:00
Mahmoud Al-Qudsi
4dfb334db8
Corrected job_type for external command in debug log
2017-08-06 14:41:27 -07:00
Mahmoud Al-Qudsi
384879704a
Unified all child/parent forking code in exec_job
2017-08-06 14:41:27 -07:00
Mahmoud Al-Qudsi
4a1de248bc
Split internal_exec to its own function
2017-08-06 14:41:27 -07:00
Mahmoud Al-Qudsi
711c81b8c8
Raised debug level for "Retrying setpgid" message
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
87db424e45
Removed unused <mutex> header include
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
7e23965250
Cleaned up terminal_give_to_job() code flow and comments
...
No longer using a lambda for pgroupTerminated, using a boolean flag
instead. The new code structure should be much more self-documenting.
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
dabe718c52
Removed unused job_t * parameter from setup_child_process
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
628db65504
OS X EINVAL compatibility for waitpid
...
The return value on OS X is more along the lines of the documented
waitpid behavior; EINVAL is returned if the group no longer exists.
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
8e63386203
Removed old/unneeded variants of block_child
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
16d2f4faff
Added important comment about blocked_pid
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
15da6f0203
Minor refactoring
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
a0efae5f08
Logging updates
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
5db8065f15
unblock_previous on exec_job finish
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
c3d756b5df
blocking only if pipes_to_next_command breaks things like read.expect test
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
b27217e106
terminal_give_to_job() was bypassing the cont
branch
...
If tcgetpgrp for STDIN was already a match, the `cont` branch was
skipped. This wais making the history.expect test fail.
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
f7b051905e
Split child_set_group from setup_child_process
...
setup_child_process blocks in the case of IO_FILE, meaning it can't
be called before child processes SIGSTOP.
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
8537cc982e
Fixed no-op loop hang
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
d6c4e66484
Retry setpgid in setup_child_process on EPERM
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
1ae0272c4e
Improved comments
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
30aa8b3663
No need to unblock last process since it will no longer be SIGSTOP'd
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
abf6874a2d
Be more judicious about when SIGSTOP is performed
2017-08-06 14:40:18 -07:00
Mahmoud Al-Qudsi
99c6f65fee
Better set_child_group logic for multi-process jobs
2017-08-06 14:40:17 -07:00
Mahmoud Al-Qudsi
8f2ef082be
Clarified job_continue logging
2017-08-06 14:40:17 -07:00
Mahmoud Al-Qudsi
bdcd451030
Handling EPERM in terminal_give_to_job()
2017-08-06 14:40:17 -07:00
Mahmoud Al-Qudsi
8b8a21dcad
Fixed exec failure regression
...
The process_t pointer sent to setup_child_process can actually be 0
without it being failure, as that is what fish sends when `exec` is run
(in the case of INTERNAL_EXEC).
This was causing exec to fail.
2017-08-06 14:40:17 -07:00
Mahmoud Al-Qudsi
9f2addcf27
Set child process group in case of posix_spawn
2017-08-06 14:40:17 -07:00
Mahmoud Al-Qudsi
25afc9b377
Changed how process groups are assigned to child processes
...
There is no more race condition between parent and child with
regards to setting the process groups. Each child sets it for themselves
and then blocks indefinitely until the parent does what it needs to for
them (having waited for them to set their process groups). They are not
SIGCONT'd until the next process in the chain (if any) starts so that
that process can join their process group and open the pipes.
2017-08-06 14:40:17 -07:00