diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Completion/Unix/Command/_perforce | 15 |
2 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index a9cdfa506..e467d7fd6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2014-09-23 Peter Stephenson <p.stephenson@samsung.com> + * 33221 (including 33173 from Anthony Heading): + Completion/Unix/Command/_perforce: complete directories + when handling unmaintained files and rationalise code that does + this. + * unposted: Completion/Unix/Command/_dvi: add dvipdf to list of commands. 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 |