From aa7467b0bfcf1e28fd2b2b91a88040946c680e59 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 14 May 2013 14:25:14 +0100 Subject: Improve Perforce jobs completion to limit potentially huge output using jobview by default; fix quoting of arguments passed on to eval within _call_program. --- ChangeLog | 7 +++++++ Completion/Unix/Command/_perforce | 10 ++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d6337da9..6cdb25ae9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2013-05-14 Peter Stephenson + + * unposted: Completion/Unix/Command/_perforce: Improve + Perforce jobs completion to limit potentially huge output + using jobview by default; fix quoting of arguments passed on + to eval within _call_program. + 2013-05-10 Peter Stephenson * Richard Hartmann : 31389: diff --git a/Completion/Unix/Command/_perforce b/Completion/Unix/Command/_perforce index d2943472c..bcfe5229a 100644 --- a/Completion/Unix/Command/_perforce +++ b/Completion/Unix/Command/_perforce @@ -1401,16 +1401,18 @@ _perforce_jobs() { if [[ $argv[-2] = -e ]]; then ajobview=(-e "${(q)argv[-1]}") argv=("${(@)argv[1,-3]}") - else - zstyle -s ":completion:${curcontext}:jobs" jobview jobview && - ajobview=(-e $jobview) + elif zstyle -s ":completion:${curcontext}:jobs" jobview jobview; then + ajobview=(-e "'$jobview'") + elif [[ -n $PREFIX ]]; then + # Extra quotes for the benefit of _call_program which does an "eval". + ajobview=(-e "'job=$PREFIX\\*$SUFFIX'") fi if [[ ${NUMERIC:-0} -lt 0 && -z $compstate[insert] ]]; then # Not inserting (i.e. just listing) and given a negative # prefix argument. Instead of listing possible completions, # show the full description for the job which is on the line at # the moment. - _message -r "$(_perforce_call_p4 jobs jobs -e \"Job=\$PREFIX\$SUFFIX\" -l 2>/dev/null)" + _message -r "$(_perforce_call_p4 jobs jobs -e \"'Job=\$PREFIX\$SUFFIX'\" -l 2>/dev/null)" return 0 elif [[ ${NUMERIC:-0} -gt 0 ]]; then max=$NUMERIC -- cgit 1.4.1