From: Sami Kerola Date: Sun, 22 Feb 2015 14:41:37 +0000 (+0000) Subject: lib/strutils: move parse_switch() from setterm(1) to library X-Git-Tag: v2.27-rc1~432 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5cf14765502931f7a89c95feee712e27f9003cc;p=thirdparty%2Futil-linux.git lib/strutils: move parse_switch() from setterm(1) to library To allow sharing the code with other utilities. Signed-off-by: Sami Kerola Signed-off-by: Karel Zak --- diff --git a/include/strutils.h b/include/strutils.h index 4d8463a6d7..ee8c7cbdad 100644 --- a/include/strutils.h +++ b/include/strutils.h @@ -36,6 +36,8 @@ extern void strtotimeval_or_err(const char *str, struct timeval *tv, extern int isdigit_string(const char *str); +extern int parse_switch(const char *arg, const char *a, const char *b); + #ifndef HAVE_MEMPCPY extern void *mempcpy(void *restrict dest, const void *restrict src, size_t n); #endif diff --git a/lib/strutils.c b/lib/strutils.c index c4f9600b05..f6154aaa49 100644 --- a/lib/strutils.c +++ b/lib/strutils.c @@ -181,6 +181,14 @@ int isdigit_string(const char *str) return p && p > str && !*p; } +int parse_switch(const char *arg, const char *a, const char *b) +{ + if (strcmp(arg, a) == 0) + return 1; + else if (strcmp(arg, b) == 0) + return 0; + errx(STRTOXX_EXIT_CODE, _("argument error: %s"), arg); +} #ifndef HAVE_MEMPCPY void *mempcpy(void *restrict dest, const void *restrict src, size_t n) diff --git a/term-utils/setterm.c b/term-utils/setterm.c index 76fedbae4f..fed25307cd 100644 --- a/term-utils/setterm.c +++ b/term-utils/setterm.c @@ -178,20 +178,6 @@ struct setterm_control { opt_powerdown:1, opt_blength:1, opt_bfreq:1; }; -/* Command line parsing routines. - * - * Note that it is an error for a given option to be invoked more than once. - */ - -static int parse_switch(const char *arg, const char *t, const char *f) -{ - if (strcmp(arg, t) == 0) - return 1; - else if (strcmp(arg, f) == 0) - return 0; - errx(EXIT_FAILURE, _("argument error: %s"), arg); -} - static int parse_febg_color(const char *arg) { int color; @@ -687,8 +673,6 @@ static void parse_option(struct setterm_control *ctl, int argc, char **argv) } } -/* End of command line parsing routines. */ - /* Return the specified terminfo string, or an empty string if no such * terminfo capability exists. */ static char *ti_entry(const char *name)