diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2008-05-11 19:55:21 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2008-05-11 19:55:21 +0000 |
commit | 58580d31f593021e2ed4bfad8362e3b01bf396f3 (patch) | |
tree | 580a8b44393b087cba28e4a740641f32d3537fd3 /Src/glob.c | |
parent | bab70abe6bcdd28b829adbe582069dc08d9d1c02 (diff) | |
download | zsh-58580d31f593021e2ed4bfad8362e3b01bf396f3.tar.gz zsh-58580d31f593021e2ed4bfad8362e3b01bf396f3.tar.xz zsh-58580d31f593021e2ed4bfad8362e3b01bf396f3.zip |
24996: improve xtrace output for patterns
Diffstat (limited to 'Src/glob.c')
-rw-r--r-- | Src/glob.c | 19 |
1 files changed, 11 insertions, 8 deletions
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; |