NetBSD Problem Report #31436

From www@netbsd.org  Sat Oct  1 07:08:54 2005
Return-Path: <www@netbsd.org>
Received: by narn.netbsd.org (Postfix, from userid 31301)
	id 06A6763B850; Sat,  1 Oct 2005 07:08:54 +0000 (UTC)
Message-Id: <20051001070854.06A6763B850@narn.netbsd.org>
Date: Sat,  1 Oct 2005 07:08:54 +0000 (UTC)
From: zafer@gmx.org
Reply-To: zafer@gmx.org
To: gnats-bugs@netbsd.org
Subject: w in 24h format
X-Send-Pr-Version: www-1.0

>Number:         31436
>Category:       bin
>Synopsis:       w in 24h format
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kleink
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 01 07:09:00 +0000 2005
>Last-Modified:  Sat Oct 01 20:03:42 +0000 2005
>Originator:     Zafer Aydogan
>Release:        3.99.9
>Organization:
>Environment:
i386
>Description:
This is a feature request:

I'd like to have the possibility to see the time in 24h Format, when using the command "w". I'm living in a country where AM and PM is not used.
It would be great to have an Option to set these.

$ w
10:36PM  up 181 days, 10:54, 1 user, load averages: 0.07, 0.10, 0.08
USER    TTY FROM                           LOGIN@  IDLE WHAT
zafer    p0 wh30221.techfak.uni-kiel.de 10:22PM     0 w
zafer@mia:~ $

I'd prefer to see the Login time 10:22PM as 22:22.

Z.
>How-To-Repeat:
w
>Fix:
I've written a patch that provides 24h format, when invoked with 
option -H.
The current time in the header line (uptime), aswell as the the login time is in 24h format when invoked with -H

$ w -H

09:00:42  up 181 days, 21:18, 1 user, load averages: 0.13, 0.12, 0.08
USER     TTY     FROM                           LOGIN@  IDLE WHAT
zafer    ttyp2   p649d9d2b.dip0.t-ipconnect.de  08:23     0 screen

I think the Option is fine, aslong a solution using localization is found.

>Release-Note:

>Audit-Trail:
From: "Zafer Aydogan" <zafer@gmx.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: bin/31436
Date: Sat, 1 Oct 2005 09:13:06 +0200 (MEST)

 A Patch for 24h format in "w".

 --- w.c.old2005-10-01 08:33:22.000000000 +0200
 +++ w.c2005-10-01 08:32:53.000000000 +0200
 @@ -98,6 +98,7 @@
  intnflag;/* true if -n flag: don't convert addrs */
  intwflag;/* true if -w flag: wide printout */
  intsortidle;/* sort bu idle time */
 +inttimeformat;/* true if -H flag: print time in 24h format */
  char       *sel_user;/* login of particular user selected */
  chardomain[MAXHOSTNAMELEN + 1];
  int maxname = 8, maxline = 3, maxhost = 16;
 @@ -159,12 +160,15 @@
  p = "";
  } else {
  wcmd = 1;
 -p = "hiM:N:nw";
 +p = "hiM:N:nHw";
  }

  memf = nlistf = NULL;
  while ((ch = getopt(argc, argv, p)) != -1)
  switch (ch) {
 +case 'H':
 +timeformat = 1;
 +break;
  case 'h':
  header = 0;
  break;
 @@ -438,7 +442,7 @@
      maxname, usrnp, ep->line,
      maxhost, maxhost, *p ? p : "-");
  then = (time_t)ep->tv.tv_sec;
 -pr_attime(&then, &now);
 +pr_attime(&then, &now, &timeformat);
  pr_idle(ep->idle);
  pr_args(kp);
  (void)printf("\n");
 @@ -492,9 +496,16 @@
   * SCCS forces the string manipulation below, as it replaces
   * %, M, and % in a character string with the file name.
   */
 -(void)strftime(buf, sizeof(buf), "%l:%" "M%p", localtime(nowp));
 -buf[sizeof(buf) - 1] = '\0';
 -(void)printf("%s ", buf);
 +if (timeformat == 1) {
 +(void)strftime(buf, sizeof(buf), "%H:%" "M:%S", localtime(nowp));
 +buf[sizeof(buf) - 1] = '\0';
 +(void)printf("%s ", buf);
 +} 
 +else {
 +(void)strftime(buf, sizeof(buf), "%l:%" "M%p", localtime(nowp));
 +buf[sizeof(buf) - 1] = '\0';
 +(void)printf("%s ", buf);
 +}

  /*
   * Print how long system has been up.






 --- pr_time.c.old2005-10-01 08:33:22.000000000 +0200
 +++ pr_time.c2005-10-01 08:58:27.000000000 +0200
 @@ -56,7 +56,7 @@
   *%I% get replaced in the source code.
   */
  void
 -pr_attime(time_t *started, time_t *now)
 +pr_attime(time_t *started, time_t *now, int *timeformat)
  {
  static char buf[256];
  int tnow_yday;
 @@ -72,14 +72,22 @@
  if (diff > SECSPERDAY * DAYSPERWEEK)
  fmt = "%d%b%y";

 +/* If not today, use day-hour. */
 +else if (tp->tm_yday != tnow_yday && *timeformat ==1)
 +                fmt = " %a%" "%H";
 +
  /* If not today, use day-hour-am/pm. */
 -else if (tp->tm_yday != tnow_yday)
 -fmt = "%a%" "I%p";
 +        else if (tp->tm_yday != tnow_yday)
 +                fmt = "%a%" "%I%p";
 +
 +/* Default is HH:mm when flag -H set */
 +else if (*timeformat ==1)
 +                fmt = " %H:%" "M";

  /* Default is hh:mm{am,pm}. */
  else
  fmt = "%l:%" "M%p";
 -
 +
  (void)strftime(buf, sizeof(buf), fmt, tp);
  buf[sizeof(buf) - 1] = '\0';
  (void)fputs(buf, stdout);





 --- extern.h.old2005-10-01 08:33:22.000000000 +0200
 +++ extern.h2005-10-01 08:32:45.000000000 +0200
 @@ -34,6 +34,6 @@
  struct kinfo_proc2;
  voidfmt_puts(char *, int *);
  voidfmt_putc(int, int *);
 -voidpr_attime(time_t *, time_t *);
 +voidpr_attime(time_t *, time_t *, int *);
  voidpr_idle(time_t);
  intproc_compare(struct kinfo_proc2 *, struct kinfo_proc2 *);


From: "Zafer Aydogan" <zafer@gmx.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: bin/31436
Date: Sat, 1 Oct 2005 09:21:03 +0200 (MEST)

 This is a MIME encapsulated multipart message -
 please use a MIME-compliant e-mail program to open it.

 Dies ist eine mehrteilige Nachricht im MIME-Format -
 bitte verwenden Sie zum Lesen ein MIME-konformes Mailprogramm.

 --========GMXBoundary15201128151263
 Content-Type: text/plain; charset="us-ascii"
 Content-Transfer-Encoding: 7bit

 Bah. the Browser stripped out the whitespace from the Patches. :/
 I'll try to upload the diffs as an Attachment.

 You can also download them here:
 http://mia.aydogan.net/netbsd/w/
 --========GMXBoundary15201128151263
 Content-Type: application/octet-stream; name="w.c.diff"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="w.c.diff"

 LS0tIHcuYy5vbGQJMjAwNS0xMC0wMSAwODozMzoyMi4wMDAwMDAwMDAgKzAyMDAKKysrIHcuYwky
 MDA1LTEwLTAxIDA4OjUyOjIwLjAwMDAwMDAwMCArMDIwMApAQCAtOTgsNiArOTgsNyBAQAogaW50
 CQluZmxhZzsJCS8qIHRydWUgaWYgLW4gZmxhZzogZG9uJ3QgY29udmVydCBhZGRycyAqLwogaW50
 CQl3ZmxhZzsJCS8qIHRydWUgaWYgLXcgZmxhZzogd2lkZSBwcmludG91dCAqLwogaW50CQlzb3J0
 aWRsZTsJLyogc29ydCBidSBpZGxlIHRpbWUgKi8KK2ludAkJdGltZWZvcm1hdDsJLyogdHJ1ZSBp
 ZiAtSCBmbGFnOiBwcmludCB0aW1lIGluIDI0aCBmb3JtYXQgKi8KIGNoYXIJICAgICAgICpzZWxf
 dXNlcjsJLyogbG9naW4gb2YgcGFydGljdWxhciB1c2VyIHNlbGVjdGVkICovCiBjaGFyCQlkb21h
 aW5bTUFYSE9TVE5BTUVMRU4gKyAxXTsKIGludCBtYXhuYW1lID0gOCwgbWF4bGluZSA9IDMsIG1h
 eGhvc3QgPSAxNjsKQEAgLTE1OSwxMiArMTYwLDE1IEBACiAJCXAgPSAiIjsKIAl9IGVsc2Ugewog
 CQl3Y21kID0gMTsKLQkJcCA9ICJoaU06TjpudyI7CisJCXAgPSAiaGlNOk46bkh3IjsKIAl9CiAK
 IAltZW1mID0gbmxpc3RmID0gTlVMTDsKIAl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3Ys
 IHApKSAhPSAtMSkKIAkJc3dpdGNoIChjaCkgeworCQljYXNlICdIJzoKKwkJCXRpbWVmb3JtYXQg
 PSAxOworCQkJYnJlYWs7CiAJCWNhc2UgJ2gnOgogCQkJaGVhZGVyID0gMDsKIAkJCWJyZWFrOwpA
 QCAtNDM4LDcgKzQ0Miw3IEBACiAJCSAgICBtYXhuYW1lLCB1c3JucCwgZXAtPmxpbmUsCiAJCSAg
 ICBtYXhob3N0LCBtYXhob3N0LCAqcCA/IHAgOiAiLSIpOwogCQl0aGVuID0gKHRpbWVfdCllcC0+
 dHYudHZfc2VjOwotCQlwcl9hdHRpbWUoJnRoZW4sICZub3cpOworCQlwcl9hdHRpbWUoJnRoZW4s
 ICZub3csICZ0aW1lZm9ybWF0KTsKIAkJcHJfaWRsZShlcC0+aWRsZSk7CiAJCXByX2FyZ3Moa3Ap
 OwogCQkodm9pZClwcmludGYoIlxuIik7CkBAIC00OTIsOSArNDk2LDE2IEBACiAJICogU0NDUyBm
 b3JjZXMgdGhlIHN0cmluZyBtYW5pcHVsYXRpb24gYmVsb3csIGFzIGl0IHJlcGxhY2VzCiAJICog
 JSwgTSwgYW5kICUgaW4gYSBjaGFyYWN0ZXIgc3RyaW5nIHdpdGggdGhlIGZpbGUgbmFtZS4KIAkg
 Ki8KLQkodm9pZClzdHJmdGltZShidWYsIHNpemVvZihidWYpLCAiJWw6JSIgIk0lcCIsIGxvY2Fs
 dGltZShub3dwKSk7Ci0JYnVmW3NpemVvZihidWYpIC0gMV0gPSAnXDAnOwotCSh2b2lkKXByaW50
 ZigiJXMgIiwgYnVmKTsKKwlpZiAodGltZWZvcm1hdCA9PSAxKSB7CisJCSh2b2lkKXN0cmZ0aW1l
 KGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlSDolIiAiTTolUyIsIGxvY2FsdGltZShub3dwKSk7CisJCWJ1
 ZltzaXplb2YoYnVmKSAtIDFdID0gJ1wwJzsKKwkJKHZvaWQpcHJpbnRmKCIlcyAiLCBidWYpOwor
 CX0gCisJZWxzZSB7CisJCSh2b2lkKXN0cmZ0aW1lKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbDolIiAi
 TSVwIiwgbG9jYWx0aW1lKG5vd3ApKTsKKwkJYnVmW3NpemVvZihidWYpIC0gMV0gPSAnXDAnOwor
 CQkodm9pZClwcmludGYoIiVzICIsIGJ1Zik7CisJfQogCiAJLyoKIAkgKiBQcmludCBob3cgbG9u
 ZyBzeXN0ZW0gaGFzIGJlZW4gdXAuCkBAIC02MjUsNyArNjM2LDcgQEAKIAogCWlmICh3Y21kKQog
 CQkodm9pZClmcHJpbnRmKHN0ZGVyciwKLQkJICAgICJVc2FnZTogJXMgWy1oaW53XSBbLU0gY29y
 ZV0gWy1OIHN5c3RlbV0gW3VzZXJdXG4iLAorCQkgICAgIlVzYWdlOiAlcyBbLWhIaW53XSBbLU0g
 Y29yZV0gWy1OIHN5c3RlbV0gW3VzZXJdXG4iLAogCQkgICAgZ2V0cHJvZ25hbWUoKSk7CiAJZWxz
 ZQogCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlc1xuIiwgZ2V0cHJvZ25hbWUoKSk7
 Cg==

 --========GMXBoundary15201128151263
 Content-Type: application/octet-stream; name="pr_time.c.diff"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="pr_time.c.diff"

 LS0tIHByX3RpbWUuYy5vbGQJMjAwNS0xMC0wMSAwODozMzoyMi4wMDAwMDAwMDAgKzAyMDAKKysr
 IHByX3RpbWUuYwkyMDA1LTEwLTAxIDA4OjU4OjI3LjAwMDAwMDAwMCArMDIwMApAQCAtNTYsNyAr
 NTYsNyBAQAogICoJJUklIGdldCByZXBsYWNlZCBpbiB0aGUgc291cmNlIGNvZGUuCiAgKi8KIHZv
 aWQKLXByX2F0dGltZSh0aW1lX3QgKnN0YXJ0ZWQsIHRpbWVfdCAqbm93KQorcHJfYXR0aW1lKHRp
 bWVfdCAqc3RhcnRlZCwgdGltZV90ICpub3csIGludCAqdGltZWZvcm1hdCkKIHsKIAlzdGF0aWMg
 Y2hhciBidWZbMjU2XTsKIAlpbnQgdG5vd195ZGF5OwpAQCAtNzIsMTQgKzcyLDIyIEBACiAJaWYg
 KGRpZmYgPiBTRUNTUEVSREFZICogREFZU1BFUldFRUspCiAJCWZtdCA9ICIlZCViJXkiOwogCisJ
 LyogSWYgbm90IHRvZGF5LCB1c2UgZGF5LWhvdXIuICovCisJZWxzZSBpZiAodHAtPnRtX3lkYXkg
 IT0gdG5vd195ZGF5ICYmICp0aW1lZm9ybWF0ID09MSkKKwkgICAgICAgICAgICAgICAgZm10ID0g
 IiAlYSUiICIlSCI7CisJCiAJLyogSWYgbm90IHRvZGF5LCB1c2UgZGF5LWhvdXItYW0vcG0uICov
 Ci0JZWxzZSBpZiAodHAtPnRtX3lkYXkgIT0gdG5vd195ZGF5KQotCQlmbXQgPSAiJWElIiAiSSVw
 IjsKKyAgICAgICAgZWxzZSBpZiAodHAtPnRtX3lkYXkgIT0gdG5vd195ZGF5KQorICAgICAgICAg
 ICAgICAgIGZtdCA9ICIlYSUiICIlSSVwIjsKKwkKKwkvKiBEZWZhdWx0IGlzIEhIOm1tIHdoZW4g
 ZmxhZyAtSCBzZXQgKi8KKwllbHNlIGlmICgqdGltZWZvcm1hdCA9PTEpCisJICAgICAgICAgICAg
 ICAgIGZtdCA9ICIgJUg6JSIgIk0iOwogCiAJLyogRGVmYXVsdCBpcyBoaDptbXthbSxwbX0uICov
 CiAJZWxzZQogCQlmbXQgPSAiJWw6JSIgIk0lcCI7Ci0KKwkJCiAJKHZvaWQpc3RyZnRpbWUoYnVm
 LCBzaXplb2YoYnVmKSwgZm10LCB0cCk7CiAJYnVmW3NpemVvZihidWYpIC0gMV0gPSAnXDAnOwog
 CSh2b2lkKWZwdXRzKGJ1Ziwgc3Rkb3V0KTsK

 --========GMXBoundary15201128151263
 Content-Type: application/octet-stream; name="extern.h.diff"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="extern.h.diff"

 LS0tIGV4dGVybi5oLm9sZAkyMDA1LTEwLTAxIDA4OjMzOjIyLjAwMDAwMDAwMCArMDIwMAorKysg
 ZXh0ZXJuLmgJMjAwNS0xMC0wMSAwODozMjo0NS4wMDAwMDAwMDAgKzAyMDAKQEAgLTM0LDYgKzM0
 LDYgQEAKIHN0cnVjdCBraW5mb19wcm9jMjsKIHZvaWQJZm10X3B1dHMoY2hhciAqLCBpbnQgKik7
 CiB2b2lkCWZtdF9wdXRjKGludCwgaW50ICopOwotdm9pZAlwcl9hdHRpbWUodGltZV90ICosIHRp
 bWVfdCAqKTsKK3ZvaWQJcHJfYXR0aW1lKHRpbWVfdCAqLCB0aW1lX3QgKiwgaW50ICopOwogdm9p
 ZAlwcl9pZGxlKHRpbWVfdCk7CiBpbnQJcHJvY19jb21wYXJlKHN0cnVjdCBraW5mb19wcm9jMiAq
 LCBzdHJ1Y3Qga2luZm9fcHJvYzIgKik7Cg==

 --========GMXBoundary15201128151263--

From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: bin/31436: w in 24h format
Date: Sat, 1 Oct 2005 14:11:17 +0200

 This is not the right fix. We need to expand libc (strftime etc.) locale
 support to format times according to the user selected locale instead.

 Martin

From: "Zafer Aydogan" <zafer@gmx.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: bin/31436
Date: Sat, 1 Oct 2005 19:43:26 +0200 (MEST)

 the Patch is also available here:
 http://mia.aydogan.net/netbsd/w/

 This is a neat workaround. NetBSD doesn't seem to support fully localization
 (LC_TIME) currently, afaik. I'd glad to see this in the tree.



From: christos@zoulas.com (Christos Zoulas)
To: gnats-bugs@netbsd.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org
Cc: 
Subject: Re: bin/31436
Date: Sat, 1 Oct 2005 14:07:21 -0400

 On Oct 1,  5:44pm, zafer@gmx.org ("Zafer Aydogan") wrote:
 -- Subject: Re: bin/31436

 | The following reply was made to PR bin/31436; it has been noted by GNATS.
 | 
 | From: "Zafer Aydogan" <zafer@gmx.org>
 | To: gnats-bugs@netbsd.org
 | Cc: 
 | Subject: Re: bin/31436
 | Date: Sat, 1 Oct 2005 19:43:26 +0200 (MEST)
 | 
 |  the Patch is also available here:
 |  http://mia.aydogan.net/netbsd/w/
 |  
 |  This is a neat workaround. NetBSD doesn't seem to support fully localization
 |  (LC_TIME) currently, afaik. I'd glad to see this in the tree.

 Well, it is easy to add it. FreeBSD has it already so you can get the code
 from there.

 christos

Responsible-Changed-From-To: bin-bug-people->kleink
Responsible-Changed-By: kleink@netbsd.org
Responsible-Changed-When: Sat, 01 Oct 2005 20:03:42 +0000
Responsible-Changed-Why:
I'll handle this.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.