Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH Re: squeeze-slashes false not working?

On May 14,  8:45pm, Mikael Magnusson wrote:
} Subject: Re: PATCH Re: squeeze-slashes false not working?
} Okay, lucky for me it was the third zstyle from the top,
} zstyle ':completion:*' accept-exact-dirs 'yes'
} I do still want this set, but maybe it can be made not to consider the
} empty string an exact dir?
} This seems to do it, but I've no idea if it's sane. Sane is a strange
} word to use in _path_files though.

This change doesn't fix it for me.  If I apply your patch and then set
accept-exact-dirs yes, then //// completes things in the root between
the first and second slashes, but I'm back to /home/// being treated
as /home/.  There must be something else going on.

As an additional observation, even without your patch if I do this:

% mkdir /tmp/ff /tmp/ffzz
% ls //ff/<TAB>

I get silent failure.  It completes /tmp if either I leave off the
trailing slash, or if there is at least one file in one of the
directories.  I can't tell if this is the expected behavior or not.

I suspect that we're also going to run into madness with filesystems
where "//" designates a network root or similar.

Incidentally with the squeeze-slashes false + path-completion true
default behavior repaired, something like this:

% ls //////////<TAB>

Goes off on a merry lark finding all nine-element paths reachable from
the root and checking to see if they contain at least one file.  This
may go wandering happily through networked filesystems and other roads
less traveled by, leaving the shell preoccupied and unresponsive for
long stretches.

We might want to consider changing squeeze-slashes to default to true,
given that the shell has been inadvertently behaving that way for quite
some time now.

Messages sorted by: Reverse Date, Date, Thread, Author