X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fbin%2Fmemerror.cc;h=fc4b6c9de4f4b62790feda6727088d2d5766784b;hb=cd16d0444b3a81536463bfb86de513c682adde63;hp=208e013dd6a0d3b915865fcbea8af7abc25b1f04;hpb=2e9eb0803f1fc81bfe6c3e2dda0ed2cbe1aa6a76;p=awesomized%2Flibmemcached diff --git a/src/bin/memerror.cc b/src/bin/memerror.cc index 208e013d..fc4b6c9d 100644 --- a/src/bin/memerror.cc +++ b/src/bin/memerror.cc @@ -1,6 +1,6 @@ /* +--------------------------------------------------------------------+ - | libmemcached - C/C++ Client Library for memcached | + | libmemcached-awesome - C/C++ Client Library for memcached | +--------------------------------------------------------------------+ | Redistribution and use in source and binary forms, with or without | | modification, are permitted under the terms of the BSD license. | @@ -9,7 +9,7 @@ | the terms online at: https://opensource.org/licenses/BSD-3-Clause | +--------------------------------------------------------------------+ | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ | - | Copyright (c) 2020 Michael Wallner | + | Copyright (c) 2020-2021 Michael Wallner https://awesome.co/ | +--------------------------------------------------------------------+ */ @@ -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); }