From db7e23754d3bdf97ea8a3792ae071b47406ea027 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 27 Sep 2004 11:17:43 +0000 Subject: unposted: improve p4 add to ignore files being added already --- Completion/Unix/Command/_perforce | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'Completion') diff --git a/Completion/Unix/Command/_perforce b/Completion/Unix/Command/_perforce index 13c247183..4fdd4bacf 100644 --- a/Completion/Unix/Command/_perforce +++ b/Completion/Unix/Command/_perforce @@ -378,7 +378,9 @@ _perforce() { # # Front end to _call_program to add in the global arguments -# passed to p4. +# passed to p4. The first argument is the tag, the remaining +# arguments are passed to p4. Typically the tag is the same +# as the first p4 argument. (( $+functions[_perforce_call_p4] )) || _perforce_call_p4() { local cp_tag=$1 @@ -987,8 +989,12 @@ _perforce_files() { : ${PREFIX:#(#b)(*/)(*)} pfx="$match[1]" pfx=${(e)~pfx} + # Exclude both files already known to perforce, plus + # those opened. There will be some overlap but we need + # to exclude files that are already opened for add. omitpats=( ${${${${(f)"$(_perforce_call_p4 files files \"\$pfx\*\$\{\(Q\)SUFFIX\}\" 2>/dev/null)"}%\#*}##*/}//(#m)[][*?()<|^~#\\]/\\$MATCH} + ${${${${(f)"$(_perforce_call_p4 opened opened \"\$pfx\*\$\{\(Q\)SUFFIX\}\" 2>/dev/null)"}%\#*}##*/}//(#m)[][*?()<|^~#\\]/\\$MATCH} ) [[ $#omitpats -eq 1 && $omitpats[1] = '' ]] && omitpats=() -- cgit 1.4.1