static int glob_index_is_readonly_helper(lua_State* L, struct _fileglob* glob) { lua_pushboolean(L, fileglob_IsReadOnly(glob)); return 1; }
int main (int argc, char **argv) { int i, argn; int verbose = 0; if (argc == 1) Usage(); for (argn = 1; argn < argc; ++argn) { char* arg = argv[argn]; if (arg[0] != '-') break; // Filenames from here on. if (strcmp(arg, "-?") == 0) { Usage(); } if (strcmp(arg, "-v") == 0) { verbose = 1; } if (strcmp(arg, "-vv") == 0) { verbose = 2; } } for (; argn < argc; ++argn) { fileglob* glob; char path[1000]; char* startPath = path; strcpy(path, argv[argn]); if (*startPath == '\'' && startPath[strlen(startPath) - 1] == '\'') { startPath++; startPath[strlen(startPath) - 1] = 0; } glob = fileglob_Create(startPath); for (i = 1; i < argn; ++i) { char* arg = argv[i]; if (strcmp(arg, "-e") == 0) { ++i; fileglob_AddExclusivePattern(glob, argv[i]); } else if (strcmp(arg, "-i") == 0) { i++; fileglob_AddIgnorePattern(glob, argv[i]); } } while (fileglob_Next(glob)) { const char* filename = fileglob_FileName(glob); if (verbose) { fileglob_uint64 creationTime = fileglob_CreationTime(glob); fileglob_uint64 accessTime = fileglob_AccessTime(glob); fileglob_uint64 writeTime = fileglob_WriteTime(glob); fileglob_uint64 creationFILETIME = fileglob_CreationFILETIME(glob); fileglob_uint64 accessFILETIME = fileglob_AccessFILETIME(glob); fileglob_uint64 writeFILETIME = fileglob_WriteFILETIME(glob); fileglob_uint64 fileSize = fileglob_FileSize(glob); int isDirectory = fileglob_IsDirectory(glob); int isLink = fileglob_IsLink(glob); int isReadOnly = fileglob_IsReadOnly(glob); const char* permissions = fileglob_Permissions(glob); if (verbose == 1) { printf("%s - creationTime=%llu, accessTime=%llu, writeTime=%llu, creationFILETIME=%llu, accessFILETIME=%llu, writeFILETIME=%llu, fileSize=%llu, isDirectory=%s, isLink=%s, isReadOnly=%s, permissions=%s\n", filename, creationTime, accessTime, writeTime, creationFILETIME, accessFILETIME, writeFILETIME, fileSize, isDirectory ? "true" : "false", isLink ? "true" : "false", isReadOnly ? "true" : "false", permissions); } else { fileglob_uint64 numberOfLinks = fileglob_NumberOfLinks(glob); printf("%s - creationTime=%lld, accessTime=%lld, writeTime=%lld, creationFILETIME=%lld, accessFILETIME=%lld, writeFILETIME=%lld, fileSize=%lld, isDirectory=%s, isLink=%s, isReadOnly=%s, permissions=%s, numberOfLinks=%lld\n", filename, creationTime, accessTime, writeTime, creationFILETIME, accessFILETIME, writeFILETIME, fileSize, isDirectory ? "true" : "false", isLink ? "true" : "false", isReadOnly ? "true" : "false", permissions, numberOfLinks); } } else { printf("%s\n", filename); } } fileglob_Destroy(glob); } return EXIT_SUCCESS; }