1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-11 13:01:28 +02:00

18263: fix saving of glob state so that globs can be used from (e) glob qual

This commit is contained in:
Oliver Kiddle 2003-02-20 08:17:38 +00:00
parent cd220acea0
commit 945f54b001
2 changed files with 8 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2003-02-20 Oliver Kiddle <opk@zsh.org>
* 18263: Src/glob.c: fix saving of glob state so that globs can
be used from the (e) glob qualifier
2003-02-19 Oliver Kiddle <opk@zsh.org> 2003-02-19 Oliver Kiddle <opk@zsh.org>
* 18262: Completion/Base/Utility/_multi_parts: fix bug where only * 18262: Completion/Base/Utility/_multi_parts: fix bug where only

View file

@ -181,9 +181,9 @@ static struct globdata curglobdata;
(N).gd_pathpos = pathpos; \ (N).gd_pathpos = pathpos; \
(N).gd_pathbuf = pathbuf; \ (N).gd_pathbuf = pathbuf; \
(N).gd_pathbufsz = 0; \ (N).gd_pathbufsz = 0; \
(N).gd_pathbuf = NULL; \
(N).gd_glob_pre = glob_pre; \ (N).gd_glob_pre = glob_pre; \
(N).gd_glob_suf = glob_suf; \ (N).gd_glob_suf = glob_suf; \
pathbuf = NULL; \
} while (0) } while (0)
#define restore_globstate(N) \ #define restore_globstate(N) \
@ -234,7 +234,7 @@ addpath(char *s)
} }
/* stat the filename s appended to pathbuf. l should be true for lstat, * /* stat the filename s appended to pathbuf. l should be true for lstat, *
* false for stat. If st is NULL, the file is only chechked for existance. * * false for stat. If st is NULL, the file is only checked for existance. *
* s == "" is treated as s == ".". This is necessary since on most systems * * s == "" is treated as s == ".". This is necessary since on most systems *
* foo/ can be used to reference a non-directory foo. Returns nonzero if * * foo/ can be used to reference a non-directory foo. Returns nonzero if *
* the file does not exists. */ * the file does not exists. */
@ -1580,6 +1580,7 @@ zglob(LinkList list, LinkNode np, int nountok)
} else if (isset(NOMATCH)) { } else if (isset(NOMATCH)) {
zerr("no matches found: %s", ostr, 0); zerr("no matches found: %s", ostr, 0);
free(matchbuf); free(matchbuf);
restore_globstate(saved);
return; return;
} else { } else {
/* treat as an ordinary string */ /* treat as an ordinary string */