> +Image *ffopen(char *filename) > { > - FILE *f; > - unsigned char buf[8]; > + unsigned char hdr[16]; > + char *bin; > + regex_t regex; > Image *img; > + size_t i; > + int tmpfd, fd; > + > + for (bin = NULL, i = 0; i < LEN(filters); i++) { > + if (regcomp(®ex, filters[i].regex, > + REG_NOSUB | REG_EXTENDED | REG_ICASE)) > + continue; > + if (!regexec(®ex, filename, 0, NULL, 0)) { > + bin = filters[i].bin; > + break; > + } > + }
I forgot an if (!bin) return NULL sort of thing here.