From b3517a6ab08155e5b3b8ca23155971744d6f3033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= Date: Sun, 20 Feb 2022 10:01:23 +0100 Subject: [PATCH] Build hash table in place --- app/exiv2.cpp | 67 +++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/app/exiv2.cpp b/app/exiv2.cpp index a19f9298..da4b1119 100644 --- a/app/exiv2.cpp +++ b/app/exiv2.cpp @@ -1035,45 +1035,44 @@ void Params::getStdin(Exiv2::DataBuf& buf) } // Params::getStdin() -using long_t = std::map; - int Params::getopt(int argc, char* const Argv[]) { std::vector argv(argc+1); argv[argc] = nullptr; - long_t longs; - longs["--adjust" ] = "-a"; - longs["--binary" ] = "-b"; - longs["--comment" ] = "-c"; - longs["--delete" ] = "-d"; - longs["--days" ] = "-D"; - longs["--extract" ] = "-e"; - longs["--force" ] = "-f"; - longs["--Force" ] = "-F"; - longs["--grep" ] = "-g"; - longs["--help" ] = "-h"; - longs["--insert" ] = "-i"; - longs["--keep" ] = "-k"; - longs["--key" ] = "-K"; - longs["--location" ] = "-l"; - longs["--modify" ] = "-m"; - longs["--Modify" ] = "-M"; - longs["--encode" ] = "-n"; - longs["--months" ] = "-O"; - longs["--print" ] = "-p"; - longs["--Print" ] = "-P"; - longs["--quiet" ] = "-q"; - longs["--log" ] = "-Q"; - longs["--rename" ] = "-r"; - longs["--suffix" ] = "-S"; - longs["--timestamp"] = "-t"; - longs["--Timestamp"] = "-T"; - longs["--unknown" ] = "-u"; - longs["--verbose" ] = "-v"; - longs["--Version" ] = "-V"; - longs["--version" ] = "-V"; - longs["--years" ] = "-Y"; + std::unordered_map longs { + {"--adjust" , "-a"}, + {"--binary" , "-b"}, + {"--comment" , "-c"}, + {"--delete" , "-d"}, + {"--days" , "-D"}, + {"--extract" , "-e"}, + {"--force" , "-f"}, + {"--Force" , "-F"}, + {"--grep" , "-g"}, + {"--help" , "-h"}, + {"--insert" , "-i"}, + {"--keep" , "-k"}, + {"--key" , "-K"}, + {"--location" , "-l"}, + {"--modify" , "-m"}, + {"--Modify" , "-M"}, + {"--encode" , "-n"}, + {"--months" , "-O"}, + {"--print" , "-p"}, + {"--Print" , "-P"}, + {"--quiet" , "-q"}, + {"--log" , "-Q"}, + {"--rename" , "-r"}, + {"--suffix" , "-S"}, + {"--timestamp", "-t"}, + {"--Timestamp", "-T"}, + {"--unknown" , "-u"}, + {"--verbose" , "-v"}, + {"--Version" , "-V"}, + {"--version" , "-V"}, + {"--years" , "-Y"}, + }; for ( int i = 0 ; i < argc ; i++ ) { std::string arg(Argv[i]);