ps: use %hs instead of %s format specifiers
Use %hs (locale-based encoding) instead of %s (UTF-8) format for strings that are expected to be in current locale encoding (date/time, process names/argument list). PR: 241491 Reviewed by: phil Differential Revision: https://reviews.freebsd.org/D22160
This commit is contained in:
+1
-1
@@ -254,7 +254,7 @@ showkey(void)
|
|||||||
i = len;
|
i = len;
|
||||||
sep = "\n";
|
sep = "\n";
|
||||||
}
|
}
|
||||||
xo_emit("{P:/%s}{l:key/%s}", sep, p);
|
xo_emit("{P:/%hs}{l:key/%hs}", sep, p);
|
||||||
sep = " ";
|
sep = " ";
|
||||||
}
|
}
|
||||||
xo_emit("\n");
|
xo_emit("\n");
|
||||||
|
|||||||
+3
-3
@@ -89,11 +89,11 @@ printheader(void)
|
|||||||
v = vent->var;
|
v = vent->var;
|
||||||
if (v->flag & LJUST) {
|
if (v->flag & LJUST) {
|
||||||
if (STAILQ_NEXT(vent, next_ve) == NULL) /* last one */
|
if (STAILQ_NEXT(vent, next_ve) == NULL) /* last one */
|
||||||
xo_emit("{T:/%s}", vent->header);
|
xo_emit("{T:/%hs}", vent->header);
|
||||||
else
|
else
|
||||||
xo_emit("{T:/%-*s}", v->width, vent->header);
|
xo_emit("{T:/%-*hs}", v->width, vent->header);
|
||||||
} else
|
} else
|
||||||
xo_emit("{T:/%*s}", v->width, vent->header);
|
xo_emit("{T:/%*hs}", v->width, vent->header);
|
||||||
if (STAILQ_NEXT(vent, next_ve) != NULL)
|
if (STAILQ_NEXT(vent, next_ve) != NULL)
|
||||||
xo_emit("{P: }");
|
xo_emit("{P: }");
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -192,6 +192,7 @@ main(int argc, char *argv[])
|
|||||||
char fmtbuf[_POSIX2_LINE_MAX];
|
char fmtbuf[_POSIX2_LINE_MAX];
|
||||||
|
|
||||||
(void) setlocale(LC_ALL, "");
|
(void) setlocale(LC_ALL, "");
|
||||||
|
xo_no_setlocale();
|
||||||
time(&now); /* Used by routines in print.c. */
|
time(&now); /* Used by routines in print.c. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -696,7 +697,7 @@ main(int argc, char *argv[])
|
|||||||
fwidthmin = (xo_get_style(NULL) != XO_STYLE_TEXT ||
|
fwidthmin = (xo_get_style(NULL) != XO_STYLE_TEXT ||
|
||||||
(STAILQ_NEXT(vent, next_ve) == NULL &&
|
(STAILQ_NEXT(vent, next_ve) == NULL &&
|
||||||
(vent->var->flag & LJUST))) ? 0 : vent->var->width;
|
(vent->var->flag & LJUST))) ? 0 : vent->var->width;
|
||||||
snprintf(fmtbuf, sizeof(fmtbuf), "{:%s/%%%s%d..%ds}",
|
snprintf(fmtbuf, sizeof(fmtbuf), "{:%s/%%%s%d..%dhs}",
|
||||||
vent->var->field ? vent->var->field : vent->var->name,
|
vent->var->field ? vent->var->field : vent->var->name,
|
||||||
(vent->var->flag & LJUST) ? "-" : "",
|
(vent->var->flag & LJUST) ? "-" : "",
|
||||||
fwidthmin, fwidthmax);
|
fwidthmin, fwidthmax);
|
||||||
|
|||||||
Reference in New Issue
Block a user