[Bug 221039] uptime/w always show number of users in plural

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Jul 27 00:45:01 UTC 2017


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

            Bug ID: 221039
           Summary: uptime/w always show number of users in plural
           Product: Base System
           Version: 11.0-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: timur at FreeBSD.org

I've noticed that even when there is only one logged in user in the sustem the
output of uptime/w shows:

 2:35AM  up 22 days,  9:09, 1 users, load averages: 0.26, 0.24, 0.24

For the FreeBSD 10-STABLE and before it used to be:

12:37AM  up 63 days, 12:20, 1 user, load averages: 0.21, 0.14, 0.09

A short dive into the code exposed, that now this output is generated by libxo,
which is nice, but has more cumbersome syntax:

        /* Print number of users logged in to system */
        xo_emit(" {:users/%d} {N:user%s}", nusers, nusers == 1 ? "" : "s");

Apparenty, for the labels ({N:}) sprintf-like expressions don't work and % sign
is just removed from the label, making label to be always "users".

The proper way to express plurals with-in libxo should be:

    xo_emit(" {:users/%d} {Ngp:user,users}", nusers);

according to the
http://juniper.github.io/libxo/libxo-manual.html#plural-modifier

That handles nusers properly:

 0 users
 1 user
 2 users
 101 users


In addition, libxo'thication could help with
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219113 as well.

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


More information about the freebsd-bugs mailing list