Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: fix a few problems of "_pids -m pattern"
- X-seq: zsh-workers 36243
- From: "Jun T." <takimoto-j@xxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: PATCH: fix a few problems of "_pids -m pattern"
- Date: Wed, 19 Aug 2015 22:39:08 +0900
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
I noticed that, on Mac OS X,
% gdb /path/to/zsh <TAB>
completes only core files, not PIDs of currently running zsh.
The following patch takes account of
(1) the numeric PID may be at the beginning of the line
without any preceding white spaces,
(2) the command name may be preceded by a '-' if it is
a login shell (i.e., '-zsh').
(3) The patch also replaces the '${2}*' by '${2}([[:blank:]]*|)'
so that, for example,
% gdb /path/to/ex <TAB>
does not completes the PIDs of running 'expect' (or 'expand').
If a user really need all the PIDs of ex, expect, expand, ...
then he/she can use '_pids -m "ex*"' instead of '_pids -m ex'.
Is this OK?
diff --git a/Completion/Unix/Type/_pids b/Completion/Unix/Type/_pids
index dd8ef44..8edb335 100644
--- a/Completion/Unix/Type/_pids
+++ b/Completion/Unix/Type/_pids
@@ -9,7 +9,7 @@ _tags processes || return 1
if [[ "$1" = -m ]]; then
all=()
- match="*[[:blank:]]${PREFIX}[0-9]#${SUFFIX}[[:blank:]]*[/[:blank:]]${2}*"
+ match="(*[[:blank:]]|)${PREFIX}[0-9]#${SUFFIX}[[:blank:]]*(/|[[:blank:]]-(#c,1))${2}([[:blank:]]*|)"
shift 2
elif [[ "$PREFIX$SUFFIX" = ([%-]*|[0-9]#) ]]; then
all=()
Messages sorted by:
Reverse Date,
Date,
Thread,
Author