Bug 221039 - uptime/w always show number of users in plural
Summary: uptime/w always show number of users in plural
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 11.0-STABLE
Hardware: Any Any
: --- Affects Many People
Assignee: Alexander Motin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-27 00:45 UTC by Timur I. Bakeyev
Modified: 2017-08-03 07:18 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Timur I. Bakeyev freebsd_committer freebsd_triage 2017-07-27 00:45:01 UTC
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.
Comment 1 commit-hook freebsd_committer freebsd_triage 2017-07-27 14:35:25 UTC
A commit references this bug:

Author: mav
Date: Thu Jul 27 14:34:58 UTC 2017
New revision: 321620
URL: https://svnweb.freebsd.org/changeset/base/321620

Log:
  Fix singular/plural "users" output.

  It was broken during libxo'fication.

  PR:		221039
  Submitted by:	timur@
  MFC after:	1 week

Changes:
  head/usr.bin/w/w.c
Comment 2 Alexander Motin freebsd_committer freebsd_triage 2017-07-27 14:35:42 UTC
Committed to head.
Comment 3 commit-hook freebsd_committer freebsd_triage 2017-08-03 07:18:19 UTC
A commit references this bug:

Author: mav
Date: Thu Aug  3 07:17:42 UTC 2017
New revision: 321975
URL: https://svnweb.freebsd.org/changeset/base/321975

Log:
  MFC r321620: Fix singular/plural "users" output.

  It was broken during libxo'fication.

  PR:		221039
  Submitted by:	timur@

Changes:
_U  stable/11/
  stable/11/usr.bin/w/w.c