7 /* XXX: need some thread awareness */
8 static int GLOB_ERROR = 0;
10 #include "constants.c"
16 errfunc(const char *foo, int bar) {
17 return !(bar == ENOENT || bar == ENOTDIR);
21 MODULE = File::Glob PACKAGE = File::Glob
35 /* allow for optional flags argument */
37 flags = (int) SvIV(ST(1));
41 retval = bsd_glob(pattern, flags, errfunc, &pglob);
44 /* return any matches found */
45 EXTEND(sp, pglob.gl_pathc);
46 for (i = 0; i < pglob.gl_pathc; i++) {
47 /* printf("# bsd_glob: %s\n", pglob.gl_pathv[i]); */
48 tmp = sv_2mortal(newSVpvn(pglob.gl_pathv[i],
49 strlen(pglob.gl_pathv[i])));