From 58580d31f593021e2ed4bfad8362e3b01bf396f3 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Sun, 11 May 2008 19:55:21 +0000 Subject: 24996: improve xtrace output for patterns --- Src/glob.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'Src/glob.c') diff --git a/Src/glob.c b/Src/glob.c index cc1db0937..96bce0ed2 100644 --- a/Src/glob.c +++ b/Src/glob.c @@ -2987,7 +2987,7 @@ igetmatch(char **sp, Patprog p, int fl, int n, char *replstr, mod_export void tokenize(char *s) { - zshtokenize(s, 0, 0); + zshtokenize(s, 0); } /* @@ -3004,12 +3004,15 @@ tokenize(char *s) mod_export void shtokenize(char *s) { - zshtokenize(s, 1, isset(SHGLOB)); + int flags = ZSHTOK_SUBST; + if (isset(SHGLOB)) + flags |= ZSHTOK_SHGLOB; + zshtokenize(s, flags); } /**/ static void -zshtokenize(char *s, int glbsbst, int shglob) +zshtokenize(char *s, int flags) { char *t; int bslash = 0; @@ -3021,16 +3024,16 @@ zshtokenize(char *s, int glbsbst, int shglob) case Bnullkeep: case '\\': if (bslash) { - s[-1] = glbsbst ? Bnullkeep : Bnull; + s[-1] = (flags & ZSHTOK_SUBST) ? Bnullkeep : Bnull; break; } bslash = 1; continue; case '<': - if (shglob) + if (flags & ZSHTOK_SHGLOB) break; if (bslash) { - s[-1] = glbsbst ? Bnullkeep : Bnull; + s[-1] = (flags & ZSHTOK_SUBST) ? Bnullkeep : Bnull; break; } t = s; @@ -3046,7 +3049,7 @@ zshtokenize(char *s, int glbsbst, int shglob) case '(': case '|': case ')': - if (shglob) + if (flags & ZSHTOK_SHGLOB) break; case '>': case '^': @@ -3060,7 +3063,7 @@ zshtokenize(char *s, int glbsbst, int shglob) for (t = ztokens; *t; t++) if (*t == *s) { if (bslash) - s[-1] = glbsbst ? Bnullkeep : Bnull; + s[-1] = (flags & ZSHTOK_SUBST) ? Bnullkeep : Bnull; else *s = (t - ztokens) + Pound; break; -- cgit 1.4.1