diff options
author | Steven Schubiger <stsc@refcnt.org> | 2019-09-01 15:51:59 +0200 |
---|---|---|
committer | Steven Schubiger <stsc@refcnt.org> | 2019-09-01 15:51:59 +0200 |
commit | d04e14ae7bef2af9121bc4880e36128acd3dd8ed (patch) | |
tree | 1da288757376d2e1b894562342036e1755f5c76a | |
parent | 31de42f6348099f80017e1b35abb407db01e6559 (diff) | |
download | colorize-d04e14ae7bef2af9121bc4880e36128acd3dd8ed.tar.gz colorize-d04e14ae7bef2af9121bc4880e36128acd3dd8ed.tar.bz2 |
Add config short option -c
-rw-r--r-- | colorize.1 | 4 | ||||
-rw-r--r-- | colorize.c | 20 | ||||
-rwxr-xr-x | t/conf/param.t | 18 |
3 files changed, 27 insertions, 15 deletions
@@ -1,4 +1,4 @@ -.TH COLORIZE 1 "2019-08-27" "colorize v0.64" "User Commands" +.TH COLORIZE 1 "2019-09-01" "colorize v0.64" "User Commands" .SH NAME colorize \- colorize text on terminal with ANSI escape sequences .SH SYNOPSIS @@ -40,7 +40,7 @@ clean text from color escape sequences emitted by colorize .BR \-\-clean\-all clean text from all valid color escape sequences .TP -.BR \-\-config=\fIPATH\fR +.BR \-c ", " \-\-config=\fIPATH\fR alternate configuration file location .TP .BR \-\-exclude\-random=\fICOLOR\fR @@ -488,6 +488,10 @@ print_tstamp (FILE *log) } #endif +#define DUP_CONFIG() \ + *conf_file = xstrdup (optarg); \ + break; + #define PRINT_HELP_EXIT() \ print_help (); \ exit (EXIT_SUCCESS); @@ -502,7 +506,7 @@ static void process_opts (int argc, char **argv, char **conf_file) { int opt; - while ((opt = getopt_long (argc, argv, "hV", long_opts, NULL)) != -1) + while ((opt = getopt_long (argc, argv, "c:hV", long_opts, NULL)) != -1) { switch (opt) { @@ -520,8 +524,7 @@ process_opts (int argc, char **argv, char **conf_file) clean_all = true; break; case OPT_CONFIG: - *conf_file = xstrdup (optarg); - break; + DUP_CONFIG (); case OPT_EXCLUDE_RANDOM: opts_set |= OPT_EXCLUDE_RANDOM_SET; opts_arg.exclude_random = xstrdup (optarg); @@ -537,6 +540,8 @@ process_opts (int argc, char **argv, char **conf_file) ABORT_TRACE (); } break; + case 'c': + DUP_CONFIG (); case 'h': PRINT_HELP_EXIT (); case 'V': @@ -799,7 +804,7 @@ print_help (void) }; const struct opt_data opts_data[] = { { "attr", NULL, "=ATTR1,ATTR2,..." }, - { "config", NULL, "=PATH" }, + { "config", "c", "=PATH" }, { "exclude-random", NULL, "=COLOR" }, { "help", "h", NULL }, { "version", "V", NULL }, @@ -839,9 +844,12 @@ print_help (void) if (opt_data) { if (opt_data->short_opt) - printf ("\t\t-%s, --%s\n", opt_data->short_opt, opt->name); + printf ("\t\t-%s, --%s", opt_data->short_opt, opt->name); else - printf ("\t\t --%s%s\n", opt->name, opt_data->arg); + printf ("\t\t --%s", opt->name); + if (opt_data->arg) + printf ("%s", opt_data->arg); + printf ("\n"); } else printf ("\t\t --%s\n", opt->name); diff --git a/t/conf/param.t b/t/conf/param.t index 3fe5436..520df2b 100755 --- a/t/conf/param.t +++ b/t/conf/param.t @@ -8,7 +8,7 @@ use Colorize::Common qw(:defaults $write_to_tmpfile); use File::Temp qw(tmpnam); use Test::More; -my $tests = 1; +my $tests = 2; my $conf = <<'EOT'; attr=bold @@ -16,6 +16,14 @@ color=blue omit-color-empty=yes EOT +my $expected = <<"EOT"; +\e[1;34mfoo\e[0m + +\e[1;34mbar\e[0m + +\e[1;34mbaz\e[0m +EOT + plan tests => $tests; SKIP: { @@ -35,13 +43,9 @@ EOT print {$fh} $conf; close($fh); - is(qx($program --config=$conf_file $infile), <<"EOT", 'config param'); -\e[1;34mfoo\e[0m - -\e[1;34mbar\e[0m + is(qx($program -c $conf_file $infile), $expected, 'short option'); + is(qx($program --config=$conf_file $infile), $expected, 'long option'); -\e[1;34mbaz\e[0m -EOT unlink $program; unlink $conf_file; } |