From c0323d2d7589a0b024a7f628e74530f994c9d734 Mon Sep 17 00:00:00 2001 From: q66 Date: Wed, 2 Dec 2015 20:38:10 +0000 Subject: [PATCH] dedup some code --- main.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/main.cc b/main.cc index e188b6a..2024cd7 100644 --- a/main.cc +++ b/main.cc @@ -502,7 +502,8 @@ struct ObState { static ConstCharRange deffile = "obuild.cfg"; -static int ob_print_help(ConstCharRange a0, ostd::Stream &os, int v) { +static int ob_print_help(ConstCharRange a0, bool err, int v) { + ostd::Stream &os = err ? ostd::err : ostd::out; os.writeln("Usage: ", a0, " [options] [action]\n", "Options:\n" " -C DIRECTORY\tChange to DIRECTORY before running.\n", @@ -538,10 +539,8 @@ int main(int argc, char **argv) { if (argn == 'E') { os.ignore_env = true; continue; - } else if (argn == 'h') { - return ob_print_help(argv[0], ostd::out, 0); - } else if (!argv[i][2] && ((i + 1) >= argc)) { - return ob_print_help(argv[0], ostd::err, 0); + } else if ((argn == 'h') || (!argv[i][2] && ((i + 1) >= argc))) { + return ob_print_help(argv[0], argn != 'h', 0); } ConstCharRange val = (argv[i][2] == '\0') ? argv[++i] : &argv[i][2]; switch (argn) { @@ -562,7 +561,7 @@ int main(int argc, char **argv) { break; } default: - return ob_print_help(argv[0], ostd::err, 1); + return ob_print_help(argv[0], true, 1); } } else { posarg = i;