Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/jls/jls.c
Show First 20 Lines • Show All 499 Lines • ▼ Show 20 Lines | #endif | ||||
return (jid); | return (jid); | ||||
} | } | ||||
static void | static void | ||||
quoted_print(int pflags, char *name, char *value) | quoted_print(int pflags, char *name, char *value) | ||||
{ | { | ||||
int qc; | int qc; | ||||
char *p = value; | char *p = value; | ||||
char *param_name_value; | |||||
/* An empty string needs quoting. */ | /* An empty string needs quoting. */ | ||||
if (!*p) { | if (!*p) { | ||||
asprintf(¶m_name_value, "{k:%s}{d:%s/\"\"}", name, name); | xo_emit("{ea:/%s}{da:/\"\"}", name, value, name); | ||||
xo_emit(param_name_value); | |||||
free(param_name_value); | |||||
return; | return; | ||||
} | } | ||||
asprintf(¶m_name_value, "{:%s/%%s}", name); | |||||
/* | /* | ||||
* The value will be surrounded by quotes if it contains spaces | * The value will be surrounded by quotes if it contains spaces | ||||
* or quotes. | * or quotes. | ||||
*/ | */ | ||||
qc = strchr(p, '\'') ? '"' | qc = strchr(p, '\'') ? '"' | ||||
: strchr(p, '"') ? '\'' | : strchr(p, '"') ? '\'' | ||||
: strchr(p, ' ') || strchr(p, '\t') ? '"' | : strchr(p, ' ') || strchr(p, '\t') ? '"' | ||||
: 0; | : 0; | ||||
if (qc && pflags & PRINT_QUOTED) | if (qc && pflags & PRINT_QUOTED) | ||||
xo_emit("{P:/%c}", qc); | xo_emit("{P:/%c}", qc); | ||||
xo_emit(param_name_value, value); | xo_emit("{a:/%s}", name, value); | ||||
free(param_name_value); | |||||
if (qc && pflags & PRINT_QUOTED) | if (qc && pflags & PRINT_QUOTED) | ||||
xo_emit("{P:/%c}", qc); | xo_emit("{P:/%c}", qc); | ||||
} | } | ||||
static int | static int | ||||
special_print(int pflags, struct jailparam *param) | special_print(int pflags, struct jailparam *param) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 63 Lines • Show Last 20 Lines |