about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2014-09-23 12:38:46 +0100
committerPeter Stephenson <pws@zsh.org>2014-09-23 12:38:46 +0100
commit5378f6ad775098210cf8046a8aceeaecbcc58b51 (patch)
treea2e6b87dacb464bf7605cb9dfb133c9811cc4c76 /Completion
parent8e83bdd288c973046bc245150f2df24a5f6986e0 (diff)
downloadzsh-5378f6ad775098210cf8046a8aceeaecbcc58b51.tar.gz
zsh-5378f6ad775098210cf8046a8aceeaecbcc58b51.tar.xz
zsh-5378f6ad775098210cf8046a8aceeaecbcc58b51.zip
33221 (including 33173 from Anthony Heading): _perforce tweak.
Complete directories when handling unmaintained files for add.
Rationalise code and comments around this.
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/_perforce15
1 files changed, 10 insertions, 5 deletions
diff --git a/Completion/Unix/Command/_perforce b/Completion/Unix/Command/_perforce
index 839870211..db91e11af 100644
--- a/Completion/Unix/Command/_perforce
+++ b/Completion/Unix/Command/_perforce
@@ -1231,10 +1231,15 @@ _perforce_files() {
 #      "subdirs:subdirectory search:_perforce_subdirs"
     )
     _alternative $altfiles
-  elif [[ -n $unmaintained && -z $dodirs ]]; then
-    # a la _cvs_nonentried_files: directories are never maintained,
-    # so skip 'em.  Unmaintained files can't be integrated, opened
-    # or resolved, so treat as exclusive (just as well, since
+  elif [[ -n $unmaintained ]]; then
+    # As directories are always umaintained, but may contain files
+    # we want to add, we'll always complete directories here.  That's
+    # neater than the alternative of excluding them here and requesting
+    # them separately in the caller.  The only client for this
+    # branch is currently 'p4 add'.
+    #
+    # Unmaintained files can't be integrated, opened
+    # or resolved, so treat as exclusive to other options (just as well, since
     # this bit's messy).
     local MATCH MBEGIN MEND
     local -a omitpats
@@ -1253,7 +1258,7 @@ _perforce_files() {
 
     [[ $#omitpats -eq 1 && $omitpats[1] = '' ]] && omitpats=()
     if (( ${#omitpats} )); then
-      _path_files -g "*~(*/|)(${(j:|:)~omitpats})(D.)"
+      _path_files -g "*~(*/|)(${(j:|:)~omitpats})(D)"
     else
       _path_files
     fi