summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Steven Schubiger <stsc@refcnt.org>2019-09-01 15:51:59 +0200
committerGravatar Steven Schubiger <stsc@refcnt.org>2019-09-01 15:51:59 +0200
commitd04e14ae7bef2af9121bc4880e36128acd3dd8ed (patch)
tree1da288757376d2e1b894562342036e1755f5c76a
parent31de42f6348099f80017e1b35abb407db01e6559 (diff)
downloadcolorize-d04e14ae7bef2af9121bc4880e36128acd3dd8ed.tar.gz
colorize-d04e14ae7bef2af9121bc4880e36128acd3dd8ed.tar.bz2
Add config short option -c
-rw-r--r--colorize.14
-rw-r--r--colorize.c20
-rwxr-xr-xt/conf/param.t18
3 files changed, 27 insertions, 15 deletions
diff --git a/colorize.1 b/colorize.1
index 45a3ef0..02ffe2e 100644
--- a/colorize.1
+++ b/colorize.1
@@ -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
diff --git a/colorize.c b/colorize.c
index bf7e3d6..147e684 100644
--- a/colorize.c
+++ b/colorize.c
@@ -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;
}