diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Completion/Unix/Command/_perforce | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 53fdbaa5a..5267b1893 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-09-27 Peter Stephenson <pws@csr.com> + + * unposted: Completion/Unix/Command/_perforce: when adding + files, ignore files already open for whatever reason, + including those already being added. + 2004-09-24 Wayne Davison <wayned@users.sourceforge.net> * 20409: Completion/Unix/Command/_darcs: Completion for the darcs 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=() |