[Bug 229453] ps (process status) charset problem

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Jul 1 15:34:22 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229453

            Bug ID: 229453
           Summary: ps (process status) charset problem
           Product: Base System
           Version: 11.1-RELEASE
          Hardware: i386
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: bugs at FreeBSD.org
          Reporter: vegaio at yandex.ru

If current LOCALE not UTF-8, national encoding in "ps" output broken.

For example, mplayer with cyrillic args (filename in KOI8-R) not present in
"COMMAND" column.

Bug in bin/ps/ps.c:

# diff -u bin/ps/ps.c.orig bin/ps/ps.c 
--- bin/ps/ps.c.orig    2017-07-21 06:43:20.000000000 +0700
+++ bin/ps/ps.c 2018-07-01 22:05:52.817718000 +0700
@@ -668,7 +668,7 @@
                        fwidthmin = (xo_get_style(NULL) != XO_STYLE_TEXT ||
                            (STAILQ_NEXT(vent, next_ve) == NULL &&
                            (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->name,
                            (vent->var->flag & LJUST) ? "-" : "",
                            fwidthmin, fwidthmax);


Function xo_emit requires an argument %s in UTF-8 only encoding. But acceptably
replace %s with %hs, in which case pass argument in $LANG encoding.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list