* compctl -g not working
@ 2001-10-03 2:53 Sweth Chandramouli
2001-10-03 3:16 ` Philippe Troin
0 siblings, 1 reply; 13+ messages in thread
From: Sweth Chandramouli @ 2001-10-03 2:53 UTC (permalink / raw)
To: ZSH Users
[-- Attachment #1: Type: text/plain, Size: 540 bytes --]
Any suggestions as to what I'm missing here? I've had
this in my config for a while, but haven't used it in quite a while,
and now it isn't working; I have no idea what I might have changed
to break this:
$ echo $ZSH_VERSION
3.1.9
$ echo RCS/*(:t:s/\,v//)
logwatchd m2s
$ compctl -g 'RCS/*(:t:s/\,v//)' co
$ compctl -L | grep co\$
compctl -g 'RCS/*(:t:s/\,v//)' co
$ co <TAB>
returns nothing.
-- Sweth.
--
Sweth Chandramouli ; <svc@sweth.net>
President, Idiopathic Systems Consulting
[-- Attachment #2: Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 2:53 compctl -g not working Sweth Chandramouli
@ 2001-10-03 3:16 ` Philippe Troin
2001-10-03 3:18 ` Sweth Chandramouli
0 siblings, 1 reply; 13+ messages in thread
From: Philippe Troin @ 2001-10-03 3:16 UTC (permalink / raw)
To: Sweth Chandramouli; +Cc: ZSH Users
Sweth Chandramouli <svc@sweth.net> writes:
> Any suggestions as to what I'm missing here? I've had
> this in my config for a while, but haven't used it in quite a while,
> and now it isn't working; I have no idea what I might have changed
> to break this:
>
> $ echo $ZSH_VERSION
> 3.1.9
> $ echo RCS/*(:t:s/\,v//)
> logwatchd m2s
> $ compctl -g 'RCS/*(:t:s/\,v//)' co
> $ compctl -L | grep co\$
> compctl -g 'RCS/*(:t:s/\,v//)' co
^-- remove this backslash
> $ co <TAB>
Phil.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 3:16 ` Philippe Troin
@ 2001-10-03 3:18 ` Sweth Chandramouli
2001-10-03 4:04 ` Bart Schaefer
0 siblings, 1 reply; 13+ messages in thread
From: Sweth Chandramouli @ 2001-10-03 3:18 UTC (permalink / raw)
To: ZSH Users
[-- Attachment #1: Type: text/plain, Size: 548 bytes --]
On Tue, Oct 02, 2001 at 08:16:05PM -0700, Philippe Troin wrote:
> Sweth Chandramouli <svc@sweth.net> writes:
> > compctl -g 'RCS/*(:t:s/\,v//)' co
> ^-- remove this backslash
Doesn't help. Checking a little more, I see that none
of my -g completions work, but if I change them all to use -s (which is
a superset of -g), they all work fine. Is there some way I might have
inadvertently disabled glob completion?
-- Sweth.
--
Sweth Chandramouli ; <svc@sweth.net>
President, Idiopathic Systems Consulting
[-- Attachment #2: Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 3:18 ` Sweth Chandramouli
@ 2001-10-03 4:04 ` Bart Schaefer
2001-10-03 4:12 ` Sweth Chandramouli
0 siblings, 1 reply; 13+ messages in thread
From: Bart Schaefer @ 2001-10-03 4:04 UTC (permalink / raw)
To: Sweth Chandramouli, ZSH Users
On Oct 2, 11:18pm, Sweth Chandramouli wrote:
} Subject: Re: compctl -g not working
}
}
} On Tue, Oct 02, 2001 at 08:16:05PM -0700, Philippe Troin wrote:
} > Sweth Chandramouli <svc@sweth.net> writes:
} > > compctl -g 'RCS/*(:t:s/\,v//)' co
} > ^-- remove this backslash
} Doesn't help. Checking a little more, I see that none
} of my -g completions work, but if I change them all to use -s (which is
} a superset of -g), they all work fine. Is there some way I might have
} inadvertently disabled glob completion?
Glob completion shouldn't have anything to do with it.
This is with `zsh -f':
zagzig% echo $ZSH_VERSION
4.0.1
zagzig% mkdir RCS; touch RCS/{foo,bar},v
zagzig% compctl -g 'RCS/*(:t:s/\,v//)' co
zagzig% co <TAB>
bar,v foo,v
zagzig% compctl -g 'RCS/*(:t:s/,v//)' co
zagzig% co <TAB>
bar foo
zagzig% compctl -s 'RCS/*(:t:s/\,v//)' co
zagzig% co <TAB>
bar foo
So you're going to have to give us some more clues.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 4:04 ` Bart Schaefer
@ 2001-10-03 4:12 ` Sweth Chandramouli
2001-10-03 6:04 ` Bart Schaefer
0 siblings, 1 reply; 13+ messages in thread
From: Sweth Chandramouli @ 2001-10-03 4:12 UTC (permalink / raw)
To: ZSH Users
[-- Attachment #1: Type: text/plain, Size: 438 bytes --]
On Wed, Oct 03, 2001 at 04:04:49AM +0000, Bart Schaefer wrote:
> Glob completion shouldn't have anything to do with it.
??? Why not, given that that's what I'm having problems
with?
> So you're going to have to give us some more clues.
I don't suppose you could give me any clues as to where
I should look for more clues? :)
-- Sweth.
--
Sweth Chandramouli ; <svc@sweth.net>
President, Idiopathic Systems Consulting
[-- Attachment #2: Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 4:12 ` Sweth Chandramouli
@ 2001-10-03 6:04 ` Bart Schaefer
2001-10-03 6:15 ` Sweth Chandramouli
0 siblings, 1 reply; 13+ messages in thread
From: Bart Schaefer @ 2001-10-03 6:04 UTC (permalink / raw)
To: Sweth Chandramouli; +Cc: zsh-users
On Oct 3, 12:12am, Sweth Chandramouli wrote:
}
} On Wed, Oct 03, 2001 at 04:04:49AM +0000, Bart Schaefer wrote:
} > Glob completion shouldn't have anything to do with it.
} ??? Why not, given that that's what I'm having problems
} with?
Because `compctl -g' forces a glob to happen. Glob completion (as in the
glob_complete option) only determines how completion proceeds when there
is a partial match.
} > So you're going to have to give us some more clues.
} I don't suppose you could give me any clues as to where
} I should look for more clues? :)
Well, for one thing, you ought to try running a newer version than
3.1.9.
But what I meant was, for example, tell us what your setopts actually
are rather than ask us what they might not be, tell us in which version
of zsh these same compctls last worked if they ever did, what happens
if you run `zsh -f' and then add the suspicious compctls one at a time,
anything else that might have changed recently (are you using both the
compctl and the new systems?) etc.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 6:04 ` Bart Schaefer
@ 2001-10-03 6:15 ` Sweth Chandramouli
2001-10-03 16:24 ` Bart Schaefer
0 siblings, 1 reply; 13+ messages in thread
From: Sweth Chandramouli @ 2001-10-03 6:15 UTC (permalink / raw)
To: zsh-users
[-- Attachment #1: Type: text/plain, Size: 5545 bytes --]
On Wed, Oct 03, 2001 at 06:04:41AM +0000, Bart Schaefer wrote:
> On Oct 3, 12:12am, Sweth Chandramouli wrote:
> }
> } On Wed, Oct 03, 2001 at 04:04:49AM +0000, Bart Schaefer wrote:
> } > Glob completion shouldn't have anything to do with it.
> } ??? Why not, given that that's what I'm having problems
> } with?
>
> Because `compctl -g' forces a glob to happen. Glob completion (as in the
> glob_complete option) only determines how completion proceeds when there
> is a partial match.
Ah. I meant glob completion as in "compctl using
globs", rather than "completion using glob_complete", especially since
glob_complete doesn't actually use globbing (according to the man page).
> } > So you're going to have to give us some more clues.
> } I don't suppose you could give me any clues as to where
> } I should look for more clues? :)
>
> Well, for one thing, you ought to try running a newer version than
> 3.1.9.
That wouldn't help me figure out what was broken,
however. I'm stubborn enough to want to waste my time trying to
figure out what changed, rather than just changing other things until
it works. Upgrading to 4.x is on my todo list, however.
> But what I meant was, for example, tell us what your setopts actually
> are rather than ask us what they might not be,
OK; I was trying to not waste space with the full list if
others could give me tips as to where to focus my search. Here's the
full list:
(astaroth)~: allopt
allexport off
alwayslastprompt on
alwaystoend off
appendhistory on
autocd off
autolist on
automenu on
autonamedirs off
autoparamkeys off
autoparamslash on
autopushd on
autoremoveslash on
autoresume off
badpattern on
banghist on
bareglobqual on
bashautolist off
beep off
bgnice on
braceccl on
bsdecho off
cdablevars off
chasedots off
chaselinks off
checkjobs on
clobber off
completealiases on
completeinword on
correct on
correctall off
cshjunkiehistory on
cshjunkieloops off
cshjunkiequotes off
cshnullcmd off
cshnullglob off
dvorak off
equals on
errexit off
exec on
extendedglob on
extendedhistory on
flowcontrol off
functionargzero off
glob on
globalexport on
globalrcs on
globassign off
globcomplete off
globdots on
globsubst on
hashcmds on
hashdirs on
hashlistall off
histallowclobber off
histbeep off
histexpiredupsfirst on
histfindnodups off
histignorealldups on
histignoredups on
histignorespace off
histnofunctions off
histnostore on
histreduceblanks on
histsavenodups on
histverify off
hup on
ignorebraces off
ignoreeof off
incappendhistory on
interactive on
interactivecomments on
ksharrays off
kshautoload off
kshglob on
kshoptionprint on
listambiguous on
listbeep on
listpacked off
listrowsfirst off
listtypes on
localoptions on
localtraps off
login off
longlistjobs on
magicequalsubst off
mailwarning off
markdirs on
menucomplete off
monitor off
multios on
nomatch on
notify on
nullglob off
numericglobsort off
octalzeroes off
overstrike off
pathdirs off
posixbuiltins on
printeightbit on
printexitvalue off
privileged off
promptbang on
promptcr on
promptpercent on
promptsubst on
pushdignoredups off
pushdminus off
pushdsilent off
pushdtohome on
rcexpandparam on
rcquotes off
rcs on
recexact on
restricted off
rmstarsilent off
rmstarwait off
sharehistory on
shfileexpansion off
shglob on
shinstdin on
shnullcmd off
shoptionletters off
shortloops on
shwordsplit off
singlecommand off
singlelinezle off
sunkeyboardhack off
unset on
verbose off
xtrace off
zle off
> tell us in which version
> of zsh these same compctls last worked if they ever did,
3.1.9; I've been using it for at least a year, and at some
point the completion worked. I made some changes many months ago,
but hadn't used any of the commands whose compctls used -g in at least
the last six months.
> what happens
> if you run `zsh -f' and then add the suspicious compctls one at a time,
They work fine under zsh -f; sorry for not mentioning that
in my original post.
-- Sweth.
--
Sweth Chandramouli ; <svc@sweth.net>
President, Idiopathic Systems Consulting
[-- Attachment #2: Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 6:15 ` Sweth Chandramouli
@ 2001-10-03 16:24 ` Bart Schaefer
2001-10-03 18:23 ` Sweth Chandramouli
0 siblings, 1 reply; 13+ messages in thread
From: Bart Schaefer @ 2001-10-03 16:24 UTC (permalink / raw)
To: Sweth Chandramouli, zsh-users
On Oct 3, 2:15am, Sweth Chandramouli wrote:
}
} That wouldn't help me figure out what was broken,
} however. I'm stubborn enough to want to waste my time trying to
} figure out what changed, rather than just changing other things until
} it works.
}
} kshglob on
That's it right there. `*(stuff)' means something different with kshglob.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 16:24 ` Bart Schaefer
@ 2001-10-03 18:23 ` Sweth Chandramouli
2001-10-04 4:23 ` Bart Schaefer
0 siblings, 1 reply; 13+ messages in thread
From: Sweth Chandramouli @ 2001-10-03 18:23 UTC (permalink / raw)
To: zsh-users
[-- Attachment #1: Type: text/plain, Size: 780 bytes --]
On Wed, Oct 03, 2001 at 04:24:22PM +0000, Bart Schaefer wrote:
> On Oct 3, 2:15am, Sweth Chandramouli wrote:
> } kshglob on
>
> That's it right there. `*(stuff)' means something different with kshglob.
True, and I hadn't thought of that; now I'm even more
confused, however, because the exact same syntax works fine from the
command-line in an explicit glob:
$ echo RCS/*(:t:s/\,v//)
logwatchd m2s
. Unsetting kshglob doesn't change the behaviour, either.
So now, in addition to my original question, I'm also wondering why
I've been able to use the *(:qualifiers) syntax for so long given that
I've had kshglob set.
-- Sweth, increasingly perplexed.
--
Sweth Chandramouli ; <svc@sweth.net>
President, Idiopathic Systems Consulting
[-- Attachment #2: Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-03 18:23 ` Sweth Chandramouli
@ 2001-10-04 4:23 ` Bart Schaefer
2001-10-04 4:43 ` Sweth Chandramouli
0 siblings, 1 reply; 13+ messages in thread
From: Bart Schaefer @ 2001-10-04 4:23 UTC (permalink / raw)
To: Sweth Chandramouli, zsh-users
On Oct 3, 2:23pm, Sweth Chandramouli wrote:
} Subject: Re: compctl -g not working
}
}
} On Wed, Oct 03, 2001 at 04:24:22PM +0000, Bart Schaefer wrote:
} > On Oct 3, 2:15am, Sweth Chandramouli wrote:
} > } kshglob on
} >
} > That's it right there. `*(stuff)' means something different with kshglob.
}
} . Unsetting kshglob doesn't change the behaviour, either.
I apologize; it's not kshglob that's the problem, it's shglob.
SH_GLOB <K> <S>
Disables the special meaning of `(', `|', `)' and '<' for globbing
the result of parameter and command substitutions, and in some
other places where the shell accepts patterns. This option is
set by default if zsh is invoked as sh or ksh.
One of the "some other places" is in compctl expressions.
} So now, in addition to my original question, I'm also wondering why
} I've been able to use the *(:qualifiers) syntax for so long given that
} I've had kshglob set.
Because you also have bare_glob_qual set, which I missed. That takes
precedence over kshglob, so that *(stuff) at the -end- of a pattern is
still treated as a * followed by qualifiers.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-04 4:23 ` Bart Schaefer
@ 2001-10-04 4:43 ` Sweth Chandramouli
2001-10-05 16:13 ` Bart Schaefer
0 siblings, 1 reply; 13+ messages in thread
From: Sweth Chandramouli @ 2001-10-04 4:43 UTC (permalink / raw)
To: zsh-users
[-- Attachment #1: Type: text/plain, Size: 1135 bytes --]
On Thu, Oct 04, 2001 at 04:23:05AM +0000, Bart Schaefer wrote:
> I apologize; it's not kshglob that's the problem, it's shglob.
>
> SH_GLOB <K> <S>
> Disables the special meaning of `(', `|', `)' and '<' for globbing
> the result of parameter and command substitutions, and in some
> other places where the shell accepts patterns. This option is
> set by default if zsh is invoked as sh or ksh.
>
> One of the "some other places" is in compctl expressions.
Aha! That's it; I now remember that, some months ago, I
ran into a problem where the result of a command substitution was
getting globbed inappropriately (or at least in a way that I found very
non-intuitive), so I turned on SH_GLOB. Since I still prefer that
behaviour, and compctl can use -s to acheive the same result, I'll
just switch to -s instead. (What are the odds of the manpage getting
updated to note that "some other places" includes compctl -g, but not
compctl -s, and the fact that BARE_GLOB_QUAL overrides KSH_GLOB?)
-- Sweth.
--
Sweth Chandramouli ; <svc@sweth.net>
President, Idiopathic Systems Consulting
[-- Attachment #2: Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-04 4:43 ` Sweth Chandramouli
@ 2001-10-05 16:13 ` Bart Schaefer
2001-10-05 16:23 ` Zefram
0 siblings, 1 reply; 13+ messages in thread
From: Bart Schaefer @ 2001-10-05 16:13 UTC (permalink / raw)
To: zsh-users
On Oct 4, 12:43am, Sweth Chandramouli wrote:
}
} > SH_GLOB <K> <S>
} > Disables the special meaning of `(', `|', `)' and '<' for globbing
} > the result of parameter and command substitutions, and in some
} > other places where the shell accepts patterns. This option is
} > set by default if zsh is invoked as sh or ksh.
} >
} > One of the "some other places" is in compctl expressions.
}
} (What are the odds of the manpage getting updated to note that "some
} other places" includes compctl -g, but not compctl -s, and the fact
} that BARE_GLOB_QUAL overrides KSH_GLOB?)
I don't think it'd be appropriate to mention compctl specifically in the
doc for SH_GLOB, but see below.
BARE_GLOB_QUAL overrides everything else having to do with paren tokens
when they appear at the end of words -- it actually works by parsing the
pattern "backwards" when the final character is a close-paren token --
and is (sometimes) defeated by SH_GLOB only because that prevents the
parens from ever being tokenized in the first place.
Which is how we get into the "some other places" situation. The lexer
knows whether or not it is in parameter or command substitution and so
does not apply SH_GLOB to "ordinary" glob patterns. However, strings
that are originally parsed as quoted and then later converted into a
glob pattern are (usually) not passed through the lexer again -- they
go through a different tokenizer that always applies SH_GLOB.
The reason that "some other places" does not include `compctl -s' is
because -s actually *does* pass the string through the lexer again,
whereas -g passes it only through the tokenizer.
So the questions (hey, zsh-workers) are:
Should we fix `compctl -g' so that it behaves like "ordinary" globbing?
(I have a suggested implementation that I won't go into here.)
Should we make BARE_GLOB_QUAL a bit smarter so that it knows about
KSH_GLOB and looks back one more character to see if what precedes the
open-paren token is one of the ksh-glob-chars? (It already treats a
`|' inside the parens as indicative of a glob alternation rather than
a list of qualifiers.)
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: compctl -g not working
2001-10-05 16:13 ` Bart Schaefer
@ 2001-10-05 16:23 ` Zefram
0 siblings, 0 replies; 13+ messages in thread
From: Zefram @ 2001-10-05 16:23 UTC (permalink / raw)
To: Bart Schaefer; +Cc: zsh-users
Bart Schaefer wrote:
>Should we make BARE_GLOB_QUAL a bit smarter so that it knows about
>KSH_GLOB and looks back one more character to see if what precedes the
>open-paren token is one of the ksh-glob-chars?
Is "*(.)" a pattern "*" followed by glob qualifiers, or a ksh-style
pattern? With the current system it's easy to predict when part
of a pattern will be interpreted as glob qualifiers, so you know to
disambiguate it if you didn't intend it to be taken as qualifiers.
With your proposed change, you'd have to think about the opposite
ambiguity too -- a set of glob qualifiers might be interpreted as part of
a pattern, and you'd sometimes need extra effort to force interpretation
as glob qualifiers. I recommend sticking with the current, simpler, rule.
This is why we made the BARE_GLOB_QUAL option -- we wanted an unambiguous
syntax for glob qualifiers, that wouldn't get in the way of globbing
syntax at all. Unfortunately no one's yet come up with a really good
suggestion.
-zefram
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2001-10-05 16:24 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-03 2:53 compctl -g not working Sweth Chandramouli
2001-10-03 3:16 ` Philippe Troin
2001-10-03 3:18 ` Sweth Chandramouli
2001-10-03 4:04 ` Bart Schaefer
2001-10-03 4:12 ` Sweth Chandramouli
2001-10-03 6:04 ` Bart Schaefer
2001-10-03 6:15 ` Sweth Chandramouli
2001-10-03 16:24 ` Bart Schaefer
2001-10-03 18:23 ` Sweth Chandramouli
2001-10-04 4:23 ` Bart Schaefer
2001-10-04 4:43 ` Sweth Chandramouli
2001-10-05 16:13 ` Bart Schaefer
2001-10-05 16:23 ` Zefram
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).