Deleted Added
full compact
31c31
< __FBSDID("$FreeBSD: head/usr.bin/grep/util.c 210479 2010-07-25 18:57:48Z gabor $");
---
> __FBSDID("$FreeBSD: head/usr.bin/grep/util.c 210578 2010-07-29 00:11:14Z gabor $");
41a42
> #include <stdbool.h>
53a55,93
> bool
> file_matching(const char *fname)
> {
> bool ret;
>
> ret = finclude ? false : true;
>
> for (unsigned int i = 0; i < fpatterns; ++i) {
> if (fnmatch(fpattern[i].pat,
> fname, 0) == 0 || fnmatch(fpattern[i].pat,
> basename(fname), 0) == 0) {
> if (fpattern[i].mode == EXCL_PAT)
> return (false);
> else
> ret = true;
> }
> }
> return (ret);
> }
>
> bool
> dir_matching(const char *dname)
> {
> bool ret;
>
> ret = dinclude ? false : true;
>
> for (unsigned int i = 0; i < dpatterns; ++i) {
> if (dname != NULL &&
> fnmatch(dname, dpattern[i].pat, 0) == 0) {
> if (dpattern[i].mode == EXCL_PAT)
> return (false);
> else
> ret = true;
> }
> }
> return (ret);
> }
>
64d103
< unsigned int i;
105c144
< if (exclflag) {
---
> if (dexclude || dinclude) {
112,125c151
< for (i = 0; i < epatterns; ++i) {
< switch(epattern[i].type) {
< case FILE_PAT:
< if (fnmatch(epattern[i].pat,
< basename(p->fts_path), 0) == 0)
< ok = epattern[i].mode != EXCL_PAT;
< break;
< case DIR_PAT:
< if (dir != NULL && strstr(dir,
< epattern[i].pat) != NULL)
< ok = epattern[i].mode != EXCL_PAT;
< break;
< }
< }
---
> ok = dir_matching(dir);
128a155,156
> if (fexclude || finclude)
> ok &= file_matching(p->fts_path);
411a440,452
> * Safe strdup() for internal use.
> */
> char *
> grep_strdup(const char *str)
> {
> char *ret;
>
> if ((ret = strdup(str)) == NULL)
> err(2, "strdup");
> return (ret);
> }
>
> /*