From 682a272f919da8654acd9f69d7705ffd6999bf3b Mon Sep 17 00:00:00 2001 From: Shan-Chun Kuo Date: Fri, 7 Apr 2017 16:24:29 +0100 Subject: [PATCH] Add condition to prevent options -o and -e being used together --- main.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/main.cpp b/main.cpp index b4566f8..9525aad 100644 --- a/main.cpp +++ b/main.cpp @@ -1863,6 +1863,15 @@ static bool has_name(struct option *long_options, int *pl) { return false; } +static bool findFlag(int argc, char **argv, std::string str) { + char **ptr = std::find(argv, argv + argc, str); + + if (ptr != argv + argc) + return true; + else + return false; +} + int main(int argc, char **argv) { #ifdef MTRACE mtrace(); @@ -2256,6 +2265,11 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } + if ((findFlag(argc, argv, "-o") && findFlag(argc, argv, "-e")) || (findFlag(argc, argv, "--output") && findFlag(argc, argv, "--output-to-directory"))) { + fprintf(stderr, "%s: Options -o and -e cannot be used together\n", argv[0]); + exit(EXIT_FAILURE); + } + if (force) { unlink(outdir); }