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:
(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.