7 static int GLOB_ERROR = 0;
12 croak("%s not implemented on this architecture", s);
18 constant(char *name, int arg)
21 if (strlen(name) <= 5)
25 if (strEQ(name, "GLOB_ABEND"))
31 if (strEQ(name, "GLOB_ALTDIRFUNC"))
32 #ifdef GLOB_ALTDIRFUNC
33 return GLOB_ALTDIRFUNC;
39 if (strEQ(name, "GLOB_BRACE"))
51 if (strEQ(name, "GLOB_ERR"))
57 if (strEQ(name, "GLOB_ERROR"))
75 if (strEQ(name, "GLOB_MARK"))
83 if (strEQ(name, "GLOB_NOCHECK"))
89 if (strEQ(name, "GLOB_NOMAGIC"))
95 if (strEQ(name, "GLOB_NOSORT"))
101 if (strEQ(name, "GLOB_NOSPACE"))
113 if (strEQ(name, "GLOB_QUOTE"))
125 if (strEQ(name, "GLOB_TILDE"))
157 errfunc(const char *foo, int bar) {
158 return !(bar == ENOENT || bar == ENOTDIR);
162 MODULE = File::Glob PACKAGE = File::Glob
176 /* allow for optional flags argument */
178 flags = (int) SvIV(ST(1));
182 retval = bsd_glob(pattern, flags, errfunc, &pglob);
185 /* return any matches found */
186 EXTEND(sp, pglob.gl_pathc);
187 for (i = 0; i < pglob.gl_pathc; i++) {
188 /* printf("# bsd_glob: %s\n", pglob.gl_pathv[i]); */
189 tmp = sv_2mortal(newSVpvn(pglob.gl_pathv[i],
190 strlen(pglob.gl_pathv[i])));
196 bsd_globfree(&pglob);