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

Re: mb_metacharlenconv vs. tokens



Andrey Borzenkov wrote:
> Then this is very basic bug, because as simple as running function from V01 
> test results in:
> 
> Breakpoint 2, mb_metacharlenconv (
>     
> s=0xb7c41951 "\215\210M\211\205\215\210f\211\231\212\210zmodload -d\211\231\2
> 16:
> \204\207:\207 \205m\210 \207\214\211\216", wcp=0xbfd4ef88)
> 
> which corresponds to the line in zmodunload:
> 
> if [[ -z ${(M)${(f)"$(zmodload -d)"}:#*:* $m( *|)} ]]

> > It should have been 
> > untokenized at some point in the sequence leading to the call, 
> 
> #2  0x080bd2a4 in paramsubst (l=0xbfd4f7ac, n=0xbfd4f7a0, str=0xbfd4f388,
>     qt=0, ssub=4) at /home/bor/src/zsh/Src/subst.c:1499

The problem is probably here (or around here... there's been some
recursive jiggery pokery).  We should untokenize a nested
substitution before trying to do anything with it, and only tokenize it
later if the effect of GLOB_SUBST is present.  This is roughly where I
saw the problem before.

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


To access the latest news from CSR copy this link into a web browser:  http://www.csr.com/email_sig.php



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