Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: perforce completion patch
On Tue, 16 Sep 2014 20:35:25 +0100
Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx> wrote:
> On Mon, 15 Sep 2014 15:56:27 -0400
> Anthony Heading <anthony@xxxxxxxx> wrote:
> > I've had the following small patch for perforce completion sitting
> > around for a while, it
> > tried to fix e.g. the completion of "foo" when doing "p4 add
> > foo/bar.cpp". That said,
> > it runs against the goal of the surrounding comments which aim to skip
> > directories; I
> > couldn't work out though why that would ever be desirable.
>
> ... it might simply be a case (as well as changing the glob) of removing
> the spurious "&& -z $dodirs" (which is true because of the way the
> caller works but confusing) and modifying the following comment to say
> we always complete directories and hence ignore the -td flag in that
> branch.
This gives us the following, which shouldn't materially change the
behaviour of the original patch.
diff --git a/Completion/Unix/Command/_perforce b/Completion/Unix/Command/_perforce
index 8398702..db91e11 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
pws
Messages sorted by:
Reverse Date,
Date,
Thread,
Author