diff --git a/overzoom.cpp b/overzoom.cpp index b6fa1b56..cdc29a5d 100644 --- a/overzoom.cpp +++ b/overzoom.cpp @@ -60,6 +60,7 @@ int main(int argc, char **argv) { {"output", required_argument, 0, 'o'}, {"filter-points-multiplier", no_argument, 0, 'm'}, {"feature-filter", required_argument, 0, 'j'}, + {"feature-filter-file", required_argument, 0, 'J'}, {"preserve-input-order", no_argument, 0, 'o' & 0x1F}, {"accumulate-attribute", required_argument, 0, 'E'}, {"unidecode-data", required_argument, 0, 'u' & 0x1F}, @@ -122,6 +123,25 @@ int main(int argc, char **argv) { filter = optarg; break; + case 'J': { + filter = ""; + + FILE *f = fopen(optarg, "r"); + if (f == NULL) { + perror(optarg); + exit(EXIT_OPEN); + } + + char buf[2000]; + size_t nread; + while ((nread = fread(buf, sizeof(char), 2000, f)) != 0) { + filter += std::string(buf, nread); + } + + fclose(f); + break; + } + case 'o' & 0x1F: preserve_input_order = true; break;