zsh-workers
 help / color / mirror / code / Atom feed
From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-workers@sunsite.auc.dk
Subject: Re: PATCH: new parameter flag?
Date: Tue, 31 Aug 1999 13:45:59 +0200 (MET DST)	[thread overview]
Message-ID: <199908311145.NAA29781@beta.informatik.hu-berlin.de> (raw)
In-Reply-To: Zefram's message of Tue, 31 Aug 1999 10:29:13 +0100 (BST)


Zefram wrote:

> Actually I think it'll do full prompt expansion, affected by the options
> PROMPT_EXPAND, PROMPT_BANG and PROMPT_PERCENT.  It would be nice to
> have another flag to do just % sequences, i.e., do prompt expansion with
> options NO_PROMPT_EXPAND, NO_PROMPT_BANG and PROMPT_PERCENT temporarily
> set.  Say, (%) for just % sequences, and (%%) for full prompt expansion.

Sounds good.

(I'd still like to have a non-forking version of `$(...)' -- `${{...}}'
 doesn't seem to do anything useful at the moment, searching for a
parameter named `{...}' with braces tokenized.)

Bye
 Sven

--- os/subst.c	Tue Aug 31 13:25:35 1999
+++ Src/subst.c	Tue Aug 31 13:34:04 1999
@@ -938,7 +938,7 @@
 		    break;
 
 		case '%':
-		    presc = 1;
+		    presc++;
 		    break;
 
 		default:
@@ -1659,8 +1659,12 @@
 	}
     }
     if (presc) {
-	int len;
+	int ops = opts[PROMPTSUBST], opb = opts[PROMPTBANG];
+	int opp = opts[PROMPTPERCENT], len;
 
+	opts[PROMPTPERCENT] = 1;
+	if (presc < 2)
+	    opts[PROMPTSUBST] = opts[PROMPTBANG] = 0;
 	if (isarr) {
 	    char **ap;
 
@@ -1679,6 +1683,9 @@
 	    val = unmetafy(promptexpand(metafy(val, len, META_NOALLOC),
 					0, NULL, NULL), &len);
 	}
+	opts[PROMPTSUBST] = ops;
+	opts[PROMPTBANG] = opb;
+	opts[PROMPTPERCENT] = opp;
     }
     if (quotemod) {
 	if (isarr) {
diff -u od/Zsh/expn.yo Doc/Zsh/expn.yo
--- od/Zsh/expn.yo	Tue Aug 31 13:25:48 1999
+++ Doc/Zsh/expn.yo	Tue Aug 31 13:42:33 1999
@@ -604,7 +604,10 @@
 )
 item(tt(%))(
 Expand all tt(%) escapes in the resulting words in the same way as in
-prompts (see noderef(Prompt Expansion)).
+prompts (see noderef(Prompt Expansion)). If this flag is given twice,
+full prompt expansion is done on the resulting words, depending on the 
+setting of the tt(PROMPT_SUBST) and tt(PROMPT_BANG) options. The
+tt(PROMPT_PERCENT) option is temporarily turned on in any case.
 )
 item(tt(X))(
 With this flag parsing errors occuring with the tt(Q) flag or the

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


             reply	other threads:[~1999-08-31 12:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-31 11:45 Sven Wischnowsky [this message]
1999-08-31 12:25 ` Zefram
  -- strict thread matches above, loose matches on Subject: below --
1999-09-01  9:33 Sven Wischnowsky
1999-08-31 12:43 Sven Wischnowsky
1999-09-01  8:35 ` Peter Stephenson
1999-08-30  9:39 Sven Wischnowsky
1999-08-31  9:29 ` 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=199908311145.NAA29781@beta.informatik.hu-berlin.de \
    --to=wischnow@informatik.hu-berlin.de \
    --cc=zsh-workers@sunsite.auc.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).