if (verbose) {
*ref << "value: ";
}
-
+
ref->write(val, len);
if (verbose || !opt.isset("file")) {
opt.add(def);
}
opt.add("flags", 'F', no_argument, "Display key flags, too.");
- opt.add("file", 'f', required_argument, "Output to file instead of standard output.");
+ opt.add("file", 'f', optional_argument, "Output to file instead of standard output."
+ "\n\t\t# NOTE: defaults to <key> if no argument was provided.");
char **argp = nullptr;
if (!opt.parse(argc, argv, &argp)) {
for (auto arg = argp; *arg; ++arg) {
auto key = *arg;
if (*key) {
+ char *file = opt.isset("file") ? (opt.argof("file") ?: key) : nullptr;
std::ofstream fstream{};
- std::ostream *ostream = check_ostream(opt, opt.argof("file"), fstream);
+ std::ostream *ostream = check_ostream(opt, file, fstream);
if (!check_return(opt, memc, key, memcat(opt, &memc, key, ostream))) {
exit_code = EXIT_FAILURE;