X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fbin%2Fmemerror.cc;h=3948ff3e79d074db5d7c35941b13c2506a7f73a4;hb=20690cd266ff724e3ea1c543ea6a5fe47fec27e7;hp=208e013dd6a0d3b915865fcbea8af7abc25b1f04;hpb=2e9eb0803f1fc81bfe6c3e2dda0ed2cbe1aa6a76;p=awesomized%2Flibmemcached diff --git a/src/bin/memerror.cc b/src/bin/memerror.cc index 208e013d..3948ff3e 100644 --- a/src/bin/memerror.cc +++ b/src/bin/memerror.cc @@ -20,6 +20,7 @@ #define PROGRAM_VERSION "1.1" #include "common/options.hpp" +#include "common/checks.hpp" int main(int argc, char *argv[]) { client_options opt{PROGRAM_NAME, PROGRAM_VERSION, PROGRAM_DESCRIPTION, "code [code ...]"}; @@ -30,6 +31,7 @@ int main(int argc, char *argv[]) { case 'V': // --version case 'v': // --verbose case 'd': // --debug + case 'q': // --quiet opt.add(def); break; default: @@ -42,24 +44,30 @@ int main(int argc, char *argv[]) { exit(EXIT_FAILURE); } - opt.apply(nullptr); + if (!opt.apply(nullptr)) { + exit(EXIT_FAILURE); + } - if (!*argp) { - std::cerr << "No error codes provided.\n"; + if (!check_argp(opt, argp, "No error code(s) provided.")) { exit(EXIT_FAILURE); } + auto exit_code = EXIT_SUCCESS; for (auto arg = argp; *arg; ++arg) { auto code = std::stoul(*arg); auto rc = static_cast(code); if (opt.isset("verbose")) { std::cout << "code: " << code << "\n"; - std::cout << "name: " << memcached_strerror(nullptr, rc) << "\n"; + std::cout << "name: "; + } + if (rc >= MEMCACHED_MAXIMUM_RETURN) { + exit_code = EXIT_FAILURE; + std::cerr << memcached_strerror(nullptr, rc) << std::endl; } else { - std::cout << memcached_strerror(nullptr, rc) << "\n"; + std::cout << memcached_strerror(nullptr, rc) << std::endl; } } - exit(EXIT_SUCCESS); + exit(exit_code); }