struct sudo_defs_types *cur;
struct list_member *item;
struct def_values *def;
+ char *desc;
for (cur = sudo_defs_table; cur->name; cur++) {
if (cur->desc) {
+ desc = _(cur->desc);
switch (cur->type & T_MASK) {
case T_FLAG:
if (cur->sd_un.flag)
- sudo_printf(SUDO_CONV_INFO_MSG, "%s\n", cur->desc);
+ sudo_printf(SUDO_CONV_INFO_MSG, "%s\n", desc);
break;
case T_STR:
if (cur->sd_un.str) {
- sudo_printf(SUDO_CONV_INFO_MSG,
- cur->desc, cur->sd_un.str);
+ sudo_printf(SUDO_CONV_INFO_MSG, desc, cur->sd_un.str);
sudo_printf(SUDO_CONV_INFO_MSG, "\n");
}
break;
case T_LOGFAC:
if (cur->sd_un.ival) {
- sudo_printf(SUDO_CONV_INFO_MSG,
- cur->desc, logfac2str(cur->sd_un.ival));
+ sudo_printf(SUDO_CONV_INFO_MSG, desc,
+ logfac2str(cur->sd_un.ival));
sudo_printf(SUDO_CONV_INFO_MSG, "\n");
}
break;
case T_LOGPRI:
if (cur->sd_un.ival) {
- sudo_printf(SUDO_CONV_INFO_MSG,
- cur->desc, logpri2str(cur->sd_un.ival));
+ sudo_printf(SUDO_CONV_INFO_MSG, desc,
+ logpri2str(cur->sd_un.ival));
sudo_printf(SUDO_CONV_INFO_MSG, "\n");
}
break;
case T_UINT:
case T_INT:
- sudo_printf(SUDO_CONV_INFO_MSG, cur->desc, cur->sd_un.ival);
+ sudo_printf(SUDO_CONV_INFO_MSG, desc, cur->sd_un.ival);
sudo_printf(SUDO_CONV_INFO_MSG, "\n");
break;
case T_FLOAT:
- sudo_printf(SUDO_CONV_INFO_MSG, cur->desc, cur->sd_un.fval);
+ sudo_printf(SUDO_CONV_INFO_MSG, desc, cur->sd_un.fval);
sudo_printf(SUDO_CONV_INFO_MSG, "\n");
break;
case T_MODE:
- sudo_printf(SUDO_CONV_INFO_MSG, cur->desc, cur->sd_un.mode);
+ sudo_printf(SUDO_CONV_INFO_MSG, desc, cur->sd_un.mode);
sudo_printf(SUDO_CONV_INFO_MSG, "\n");
break;
case T_LIST:
if (cur->sd_un.list) {
- sudo_printf(SUDO_CONV_INFO_MSG, "%s\n", cur->desc);
+ sudo_printf(SUDO_CONV_INFO_MSG, "%s\n", desc);
for (item = cur->sd_un.list; item; item = item->next) {
sudo_printf(SUDO_CONV_INFO_MSG,
"\t%s\n", item->value);
case T_TUPLE:
for (def = cur->values; def->sval; def++) {
if (cur->sd_un.ival == def->ival) {
- sudo_printf(SUDO_CONV_INFO_MSG,
- cur->desc, def->sval);
+ sudo_printf(SUDO_CONV_INFO_MSG, desc, def->sval);
break;
}
}
list_options(void)
{
struct sudo_defs_types *cur;
- char *p;
+ char *p, *desc;
sudo_printf(SUDO_CONV_INFO_MSG,
- "Available options in a sudoers ``Defaults'' line:\n\n");
+ _("Available options in a sudoers ``Defaults'' line:\n\n"));
for (cur = sudo_defs_table; cur->name; cur++) {
- if (cur->name && cur->desc) {
+ if (cur->desc) {
+ desc = _(cur->desc);
switch (cur->type & T_MASK) {
case T_FLAG:
sudo_printf(SUDO_CONV_INFO_MSG,
- "%s: %s\n", cur->name, cur->desc);
+ _("%s: %s\n"), cur->name, desc);
break;
default:
- p = strrchr(cur->desc, ':');
+ p = strrchr(desc, ':');
if (p) {
- sudo_printf(SUDO_CONV_INFO_MSG, "%s: %.*s\n",
- cur->name, (int) (p - cur->desc), cur->desc);
+ while (p > desc && isspace((unsigned char)p[-1]))
+ p--;
+ sudo_printf(SUDO_CONV_INFO_MSG, _("%s: %.*s\n"),
+ cur->name, (int) (p - desc), desc);
} else {
sudo_printf(SUDO_CONV_INFO_MSG,
- "%s: %s\n", cur->name, cur->desc);
+ _("%s: %s\n"), cur->name, desc);
}
break;
}
break;
}
if (!cur->name) {
- warningx("unknown defaults entry `%s'", var);
+ warningx(_("unknown defaults entry `%s'"), var);
return FALSE;
}
case T_LOGFAC:
if (!store_syslogfac(val, cur, op)) {
if (val)
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"),
+ val, var);
else
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
break;
case T_LOGPRI:
if (!store_syslogpri(val, cur, op)) {
if (val)
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"),
+ val, var);
else
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
break;
if (!val) {
/* Check for bogus boolean usage or lack of a value. */
if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
}
if (ISSET(cur->type, T_PATH) && val && *val != '/') {
- warningx("values for `%s' must start with a '/'", var);
+ warningx(_("values for `%s' must start with a '/'"), var);
return FALSE;
}
if (!store_str(val, cur, op)) {
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"), val, var);
return FALSE;
}
break;
if (!val) {
/* Check for bogus boolean usage or lack of a value. */
if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
}
if (!store_int(val, cur, op)) {
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"), val, var);
return FALSE;
}
break;
if (!val) {
/* Check for bogus boolean usage or lack of a value. */
if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
}
if (!store_uint(val, cur, op)) {
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"), val, var);
return FALSE;
}
break;
if (!val) {
/* Check for bogus boolean usage or lack of a value. */
if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
}
if (!store_float(val, cur, op)) {
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"), val, var);
return FALSE;
}
break;
if (!val) {
/* Check for bogus boolean usage or lack of a value. */
if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
}
if (!store_mode(val, cur, op)) {
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"), val, var);
return FALSE;
}
break;
case T_FLAG:
if (val) {
- warningx("option `%s' does not take a value", var);
+ warningx(_("option `%s' does not take a value"), var);
return FALSE;
}
cur->sd_un.flag = op;
if (!val) {
/* Check for bogus boolean usage or lack of a value. */
if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
}
if (!store_list(val, cur, op)) {
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"), val, var);
return FALSE;
}
break;
case T_TUPLE:
if (!val && !ISSET(cur->type, T_BOOL)) {
- warningx("no value specified for `%s'", var);
+ warningx(_("no value specified for `%s'"), var);
return FALSE;
}
if (!store_tuple(val, cur, op)) {
- warningx("value `%s' is invalid for option `%s'", val, var);
+ warningx(_("value `%s' is invalid for option `%s'"), val, var);
return FALSE;
}
break;
/* Now do the strings */
def_mailto = estrdup(MAILTO);
- def_mailsub = estrdup(MAILSUBJECT);
- def_badpass_message = estrdup(INCORRECT_PASSWORD);
+ def_mailsub = estrdup(_(MAILSUBJECT));
+ def_badpass_message = estrdup(_(INCORRECT_PASSWORD));
def_timestampdir = estrdup(_PATH_SUDO_TIMEDIR);
- def_passprompt = estrdup(PASSPROMPT);
+ def_passprompt = estrdup(_(PASSPROMPT));
def_runas_default = estrdup(RUNAS_DEFAULT);
#ifdef _PATH_SUDO_SENDMAIL
def_mailerpath = estrdup(_PATH_SUDO_SENDMAIL);