Import completion updates from tmux.git, the revision used was
c67abcf8182b, and the updates were generated by Util/check-tmux-state.
check-tmux-state: changes to output parsing + variable declaration
parsing of `tmux show-options` is slightly more idiomatic (thanks to
@phy1729 for the syntax), and it now also ignores user-specified options
(which are prefixed with an @ symbol).
the lines defining and declaring supported_server_options were also
swapped to the correct order - `typeset` was being called after
supported_server_options was populated, contrary to all the other
supported_*/available_* arrays used in the same area of the file.
Backs out part of 188c5cd5 (workers/50874). With this change, after a
new subshell is forked upon suspend of the right side of a pipeline, the
previous foreground subjob is resumed first and the new subshell remains
stopped until that job finishes.
Reverts 15bf8ace (workers/50134). Thanks to Jun T. for debugging assistance.
Issues came down to two things:
1. update_job() may be called on a process group leader even when a
signal was NOT sent to any process in that process group. This
caused jobs to be resumed or backgrounded incorrectly or in the
wrong order.
2. When there is a current-shell complex command (in braces) on the
right side of a pipeline, external processes within it have their
own process groups, but a tty signal sent to such a process should
be treated as if received by the whole complex command.
This fixes:
* Suspend/resume of a foreground pipeline within a shell function
* Interrupt or suspend/resume of processes in a pipeline ending in { ... }
* Interrupt of such a pipeline after exit of the last process in { ... }
These affected interactive shells only (MONITOR set plus tty signals).
inittyptab() must be called when returning from a function with
"setopt localoptions MULTIBYTE|BANGHIST|SHSTDIN", and also in
function dosetopt() when setting these options (via $options, for
example). We intentionally did not take account of the options
EMACS/VI because these options are obsolete and their use is
not recommended.
The StGit project ships its own zsh completion script which is more
complete and up-to-date than those shipped with zsh.
https://github.com/stacked-git/stgit/blob/master/completion/stgit.zsh
Also, the _stgit completions that ship with zsh, which dynamically parse
StGit's help output, will be broken by the upcoming StGit 2.0 release
due to changes in the help output.
Signed-off-by: Peter Grayson <pete@jpgrayson.net>
be in the 1st argument.
This probably shouldn't complete ranges but all other code is in common,
so leaving it to someone more familiar with _git to clean up.
Use 'make -nqp' to ensure nothing is actually built by completion.
Also include some performance improvements, but it can be still
rather slow in a large project's source tree.
- remove the preliminary "wait" for all the process
- remove "nomonitor" (because it was only needed for that "wait")
- explicitly adds traps to exit for tty-generated signals plus TERM
- capture the signal trap context and restore it in background jobs
- wrap in an "always" block to clean up local helper functions
- update comments to note another buglet and drop support for zsh 4.x.