zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: zsh-users@sunsite.dk
Subject: Re: compctl -g not working
Date: Fri, 5 Oct 2001 16:13:35 +0000	[thread overview]
Message-ID: <1011005161336.ZM32521@candle.brasslantern.com> (raw)
In-Reply-To: <20011004004307.C18930@astaroth.sweth.net>

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   


  reply	other threads:[~2001-10-05 16:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-03  2:53 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 [this message]
2001-10-05 16:23                       ` Zefram

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=1011005161336.ZM32521@candle.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --cc=zsh-users@sunsite.dk \
    /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).