FNM_PATHNAME
if (*string == '/' && (flags & FNM_PATHNAME))
((flags & FNM_PATHNAME) && *(string - 1) == '/')))
((flags & FNM_PATHNAME) && *(string - 1) == '/')))
if (flags & FNM_PATHNAME)
} else if (c == '/' && flags & FNM_PATHNAME) {
if (test == '/' && flags & FNM_PATHNAME)
if (*string == '/' && flags & FNM_PATHNAME)
ATF_CHECK(fnmatch("???x", "xxx/x", FNM_PATHNAME) != 0);
ATF_CHECK(fnmatch("***x", "xxx/x", FNM_PATHNAME) != 0);
ATF_CHECK(fnmatch("???x", "xxxx", FNM_PATHNAME) == 0);
ATF_CHECK(fnmatch("*/xxx", "/xxx", FNM_PATHNAME) == 0);
ATF_CHECK(fnmatch("x/*.y", "x/z.y", FNM_PATHNAME) == 0);
ATF_CHECK(fnmatch("x?y", "x.y", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch("x*y", "x.y", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch("*.c", "x.c", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch("*/?", "x/y", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch("*/*", "x/y", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch(".*/?", ".x/y", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch("*/.?", "x/.y", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch("x[.]y", "x.y", FNM_PATHNAME | FNM_PERIOD) == 0);
ATF_CHECK(fnmatch("?x/y", ".x/y", FNM_PATHNAME | FNM_PERIOD) != 0);
ATF_CHECK(fnmatch("*x/y", ".x/y", FNM_PATHNAME | FNM_PERIOD) != 0);
ATF_CHECK(fnmatch("x/?y", "x/.y", FNM_PATHNAME | FNM_PERIOD) != 0);
ATF_CHECK(fnmatch("x/*y", "x/.y", FNM_PATHNAME | FNM_PERIOD) != 0);
if (fnmatch(excl->pattern, dp->d_name, FNM_PATHNAME) == 0)
#define MATCH(g, n) (fnmatch((g), (n), FNM_PATHNAME) == 0)
!fnmatch(ep->name, p->fts_name, FNM_PATHNAME)) ||