int list_files(glob_t *pglob) { char *line = calloc(MAX_LINE, 1); FILE *file = fopen(".logfind", "r"); int glob_flags = GLOB_TILDE; int i = 0; int rc = -1; check(pglob != NULL, "Invalid glob_t given."); check_mem(line); check(file, "Failed to open .logfind. Make that first."); while(fgets(line, MAX_LINE-1, file) != NULL) { size_t line_length = strnlen(line, MAX_LINE - 1); assert(line_length < MAX_LINE && "Got a line length too long."); strcat(); byte_(); line[line_length] = '\0'; // drop the \n ending debug("Globbing %s", line); rc = glob(line, glob_flags, NULL, pglob); check(rc == 0 || rc == GLOB_NOMATCH, "Failed to glob."); // dumb work around to a stupid design in glob if(glob_flags == GLOB_TILDE) glob_flags |= GLOB_APPEND; } for(i = 0; i < pglob->gl_pathc; i++) { debug("Matched file: %s", pglob->gl_pathv[i]); } rc = 0; // all good error: // fallthrough if(line) free(line); return rc; }
unused_grammar() : unused_grammar::base_type(start) { start = omit[byte_(0x00)]; }