#define isxdigit_string(_s) isxdigit_strend(_s, NULL)
-extern int parse_switch(const char *arg, const char *errmesg, ...);
+extern int parse_switch(const char *arg, ...);
#ifndef HAVE_MEMPCPY
extern void *mempcpy(void *restrict dest, const void *restrict src, size_t n);
}
/*
- * parse_switch(argv[i], "on", "off", "yes", "no", NULL);
+ * For example: parse_switch(argv[i], "on", "off", "yes", "no", NULL);
*/
-int parse_switch(const char *arg, const char *errmesg, ...)
+int parse_switch(const char *arg, ...)
{
const char *a, *b;
va_list ap;
- va_start(ap, errmesg);
+ va_start(ap, *arg);
do {
a = va_arg(ap, char *);
if (!a)
} while (1);
va_end(ap);
- errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, arg);
+ errx(STRTOXX_EXIT_CODE, _("unsupported argument: %s"), arg);
}
#ifndef HAVE_MEMPCPY
switch (c) {
case 'a':
ctl->a_option = 1;
- ctl->a_arg = parse_switch(optarg, _("argument error"),
- "on", "off", "1", "0", NULL);
+ ctl->a_arg = parse_switch(optarg, "on", "off", "1", "0", NULL);
break;
case 'c':
ctl->c_option = 1;
break;
case 'i':
ctl->i_option = 1;
- ctl->i_arg = parse_switch(optarg, _("argument error"),
- "on", "off", "1", "0", NULL);
+ ctl->i_arg = parse_switch(optarg, "on", "off", "1", "0", NULL);
break;
case 'm':
ctl->m_option = 1;
ctl->cpustat_mode = IRQTOP_CPUSTAT_AUTO;
else
ctl->cpustat_mode = IRQTOP_CPUSTAT_DISABLE - parse_switch(optarg,
- _("unsupported argument"), "yes", "no",
"always", "never", "enable", "disable",
- "on", "off", "1", "0", NULL);
+ "on", "off", "yes", "no", "1", "0", NULL);
break;
case 'C':
{
case OPT_DIO:
use_dio = set_dio = 1;
if (optarg)
- use_dio = parse_switch(optarg, _("argument error"), "on", "off", NULL);
+ use_dio = parse_switch(optarg, "on", "off", NULL);
if (use_dio)
lo_flags |= LO_FLAGS_DIRECT_IO;
break;
break;
case 'a':
cmds->op = LPABORT;
- cmds->val = parse_switch(optarg, _("argument error"), "on", "off", NULL);
+ cmds->val = parse_switch(optarg, "on", "off", NULL);
cmds->next = xmalloc(sizeof(struct command));
cmds = cmds->next;
cmds->next = NULL;
break;
case 'q':
- show_irq = parse_switch(optarg, _("argument error"), "on", "off", NULL);
+ show_irq = parse_switch(optarg, "on", "off", NULL);
break;
case 'o':
cmds->op = LPABORTOPEN;
- cmds->val = parse_switch(optarg, _("argument error"), "on", "off", NULL);
+ cmds->val = parse_switch(optarg, "on", "off", NULL);
cmds->next = xmalloc(sizeof(struct command));
cmds = cmds->next;
cmds->next = NULL;
break;
case 'C':
cmds->op = LPCAREFUL;
- cmds->val = parse_switch(optarg, _("argument error"), "on", "off", NULL);
+ cmds->val = parse_switch(optarg, "on", "off", NULL);
cmds->next = xmalloc(sizeof(struct command));
cmds = cmds->next;
cmds->next = NULL;
break;
case OPT_CURSOR:
ctl->opt_cursor = set_opt_flag(ctl->opt_cursor);
- ctl->opt_cu_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_cu_on = parse_switch(optarg,"on", "off", NULL);
break;
case OPT_REPEAT:
ctl->opt_repeat = set_opt_flag(ctl->opt_repeat);
- ctl->opt_rep_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_rep_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_APPCURSORKEYS:
ctl->opt_appcursorkeys = set_opt_flag(ctl->opt_appcursorkeys);
- ctl->opt_appck_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_appck_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_LINEWRAP:
ctl->opt_linewrap = set_opt_flag(ctl->opt_linewrap);
- ctl->opt_li_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_li_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_DEFAULT:
ctl->opt_default = set_opt_flag(ctl->opt_default);
break;
case OPT_INVERSESCREEN:
ctl->opt_inversescreen = set_opt_flag(ctl->opt_inversescreen);
- ctl->opt_invsc_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_invsc_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_BOLD:
ctl->opt_bold = set_opt_flag(ctl->opt_bold);
- ctl->opt_bo_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_bo_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_HALF_BRIGHT:
ctl->opt_halfbright = set_opt_flag(ctl->opt_halfbright);
- ctl->opt_hb_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_hb_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_BLINK:
ctl->opt_blink = set_opt_flag(ctl->opt_blink);
- ctl->opt_bl_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_bl_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_REVERSE:
ctl->opt_reverse = set_opt_flag(ctl->opt_reverse);
- ctl->opt_re_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_re_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_UNDERLINE:
ctl->opt_underline = set_opt_flag(ctl->opt_underline);
- ctl->opt_un_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_un_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_STORE:
ctl->opt_store = set_opt_flag(ctl->opt_store);
case OPT_CLEAR:
ctl->opt_clear = set_opt_flag(ctl->opt_clear);
if (optarg)
- ctl->opt_cl_all = parse_switch(optarg, _("argument error"),
- "all", "rest", NULL);
+ ctl->opt_cl_all = parse_switch(optarg, "all", "rest", NULL);
else
ctl->opt_cl_all = 1;
break;
break;
case OPT_MSG:
ctl->opt_msg = set_opt_flag(ctl->opt_msg);
- ctl->opt_msg_on = parse_switch(optarg, _("argument error"),
- "on", "off", NULL);
+ ctl->opt_msg_on = parse_switch(optarg, "on", "off", NULL);
break;
case OPT_MSGLEVEL:
ctl->opt_msglevel = set_opt_flag(ctl->opt_msglevel);