From: Ray Andrews <rayandrews@eastlink.ca>
To: zsh-users@zsh.org
Subject: Re: symlink chain.
Date: Fri, 02 Jan 2015 21:53:07 -0800 [thread overview]
Message-ID: <54A783C3.3000006@eastlink.ca> (raw)
In-Reply-To: <150102210337.ZM22099@torch.brasslantern.com>
On 01/02/2015 09:03 PM, Bart Schaefer wrote:
> On Jan 2, 5:08pm, Ray Andrews wrote:
> } Subject: Re: symlink chain.
> }
> } Needless to say, I have no idea if this is sound, however:
> }
> } /* With -m option -- treat arguments as a glob patterns */
> } // if (OPT_ISSET(ops,'m')) {
> } if (OPT_ISSET(ops,'m') && **argv != '/' ) {
> }
> } ... seems to work.
>
> I wouldn't use the word "work" exactly. All that does is turn off the
> pattern matching entirely. You're probably next going to complain that
>
> % whence -m /\*/bin/zsh
I repeat that I have no idea if that is sound, I'm just fooling with
it. But I haven't broken it here (yet).
$ whence -mas "/usr/bin/zsh"
zsh-5.0.7-165-g2194da1
/usr/bin/zsh -> /usr/local/bin/zsh-5.0.7-165-g2194da1
$ whence -mas "*zsh*"
zsh-5.0.7-165-g2194da1
/usr/local/bin/zsh -> /usr/local/bin/zsh-5.0.7-165-g2194da1
/usr/bin/zsh -> /usr/local/bin/zsh-5.0.7-165-g2194da1
/bin/zsh -> /usr/local/bin/zsh-5.0.7-165-g2194da1
/usr/local/bin/zsh,3,bart-fix-TRAPDEBUG
/usr/local/bin/zsh-2014-11-14
/usr/local/bin/zsh-5.0.7-109-g2598010
/usr/local/bin/zsh-5.0.7-112-g49d6aac
/usr/local/bin/zsh-5.0.7-125-g167a15a
/usr/local/bin/zsh-5.0.7-136-g0a07ffd
/usr/local/bin/zsh-5.0.7-138-g247f754
/usr/local/bin/zsh-5.0.7-159-g89c692e
/usr/local/bin/zsh-5.0.7-161-g1cd8023
/usr/local/bin/zsh-5.0.7-165-g2194da1
/usr/local/bin/zsh-5.0.7-dev-0
/usr/local/bin/zsh-RayStyle1
/usr/local/bin/zsh.old
/bin/zsh4
/bin/zsh5
... so pattern matching is still working, so far.
>
> should return /usr/bin/zsh and /usr/local/bin/zsh, or somthing of the
> kind. This is just abusing the purpose of "whence", which is intended
> to tell you what a path search would find for a simple command name.
Well, what it 'should' be used for is subjective, and of course my views on
that are very junior. I want it to give me every command that matches the
pattern, and not to crap out if -m is given, just because a full path is
specified. Ditto with -a. And I'd like being able to use it to see
symlink chains.
I think all of that makes the command more intuitive and far more useful
even if it is a breach of tradition.
>
> If we *really* want this behavior -- which I submit that we don't, as
> we're wandering into silly territory like whence -m '*bin*' returning
> all commands in all directories named "bin",
Speaking for myself, that's not something I'd begin to want. I want it
to do what
it advertises itself to do, but with no gotchas. I'd not call that silly.
> so we should stop futzing
> around with "whence" -- then the correct thing is rewriting the hash
> table scan to look at both the keys and the values when doing the
> pattern matching.
>
> Which has ramifications beyond "whence" because it uses the same hash
> table scan routines as everything else. I confess I'm actually a bit
> surprised that PWS was willing to hack up something as deeply involved
> in the internals as xsymlinks() [in which we just finished fixing other
> obscure bugs] in order to implement whence -S.
Of course we leave final decisions to you guys as to what can be done
safely.
But once I lean how to preserve them, I'll be keeping both of those:
... && **argv != '/' ...
changes, cuz they sure look good to me. (And the symlink chain once I learn
how to import a patch.) That's presuming a better method isn't forthcoming.
> Shell functions exist so that if something like whence doesn't do what
> you want, you can write something else that does.
Yup. I had those link-chains displayed with 'namei' just fine, but I
still think
it is a natural addition to whence. You guys know best.
next prev parent reply other threads:[~2015-01-03 5:53 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-27 4:50 Ray Andrews
2014-12-27 23:38 ` Ray Andrews
2015-01-02 17:03 ` Peter Stephenson
2015-01-02 18:42 ` Ray Andrews
2015-01-02 20:27 ` Lawrence Velázquez
2015-01-02 21:19 ` Ray Andrews
2015-01-02 21:24 ` Peter Stephenson
2015-01-02 21:36 ` Ray Andrews
2015-01-02 21:53 ` Ray Andrews
2015-01-02 22:21 ` Peter Stephenson
2015-01-02 23:42 ` Ray Andrews
2015-01-03 1:08 ` Ray Andrews
2015-01-03 5:03 ` Bart Schaefer
2015-01-03 5:53 ` Ray Andrews [this message]
2015-01-03 7:17 ` Bart Schaefer
2015-01-03 17:14 ` Ray Andrews
2015-01-03 20:02 ` Bart Schaefer
2015-01-03 21:13 ` Ray Andrews
2015-01-03 21:42 ` Peter Stephenson
2015-01-03 22:42 ` Ray Andrews
2015-01-04 0:41 ` Bart Schaefer
2015-01-04 3:45 ` Ray Andrews
2015-01-04 0:40 ` Bart Schaefer
2015-01-04 3:35 ` Ray Andrews
2015-01-04 8:31 ` Bart Schaefer
2015-01-04 20:49 ` Ray Andrews
2015-01-05 1:34 ` Bart Schaefer
2015-01-05 2:28 ` Lawrence Velázquez
2015-01-05 4:24 ` Ray Andrews
2015-01-02 22:22 ` Bart Schaefer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54A783C3.3000006@eastlink.ca \
--to=rayandrews@eastlink.ca \
--cc=zsh-users@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).