* Fwd: [9front-commits] ori: hg/plan9front: upas: convert to tmdate, change timezone format
[not found] <hg.35c4d11d3692.1601144545.4892889753185008284@code.9front.org>
@ 2020-09-28 15:45 ` Stanley Lieber
0 siblings, 0 replies; only message in thread
From: Stanley Lieber @ 2020-09-28 15:45 UTC (permalink / raw)
To: 9front
don't forget to rebuild libc first.
sl
-------- Original Message --------
From: The Computer <commits@code.9front.org>
Sent: September 26, 2020 2:22:25 PM EDT
To: 9front-commits@9front.org
Subject: [9front-commits] ori: hg/plan9front: upas: convert to tmdate, change timezone format
details: http://code.9front.org/hg/plan9front/rev/35c4d11d3692
changeset: 7985:35c4d11d3692
user: Ori Bernstein <ori@eigenstate.org>
date: Sat Sep 26 11:20:42 2020 -0700
description: upas: convert to tmdate, change timezone format
Complete the conversion of upas to remove ctime,
use the new date library, and print time zones
in +hhmm format, instead of NNN format.
This may affect code that expects specific names
for timezones. Fix that code.
diffstat:
sys/src/cmd/upas/Mail/mail.c | 1 +
sys/src/cmd/upas/Mail/mesg.c | 13 +-
sys/src/cmd/upas/Mail/reply.c | 13 +-
sys/src/cmd/upas/common/common.h | 1 +
sys/src/cmd/upas/common/folder.c | 20 +-
sys/src/cmd/upas/common/libsys.c | 13 +-
sys/src/cmd/upas/common/sys.h | 2 +-
sys/src/cmd/upas/filterkit/deliver.c | 12 +-
sys/src/cmd/upas/filterkit/list.c | 1 +
sys/src/cmd/upas/filterkit/mbappend.c | 7 +-
sys/src/cmd/upas/filterkit/mbcreate.c | 1 +
sys/src/cmd/upas/filterkit/mbremove.c | 1 +
sys/src/cmd/upas/filterkit/token.c | 1 +
sys/src/cmd/upas/fs/extra/strtotmtst.c | 3 +-
sys/src/cmd/upas/fs/fs.c | 8 +-
sys/src/cmd/upas/fs/mbox.c | 6 +-
sys/src/cmd/upas/fs/plan9.c | 2 +-
sys/src/cmd/upas/imap4d/date.c | 257 ++------------------------------
sys/src/cmd/upas/imap4d/imap4d.c | 7 +-
sys/src/cmd/upas/imap4d/nlisttst.c | 2 -
sys/src/cmd/upas/imap4d/print.c | 37 +---
sys/src/cmd/upas/marshal/marshal.c | 28 +---
sys/src/cmd/upas/pop3/pop3.c | 2 +
sys/src/cmd/upas/scanmail/scanmail.c | 14 +-
sys/src/cmd/upas/send/main.c | 9 +-
sys/src/cmd/upas/send/message.c | 6 +-
sys/src/cmd/upas/smtp/smtp.c | 6 +-
sys/src/cmd/upas/smtp/smtpd.c | 11 +-
sys/src/cmd/upas/smtp/spam.c | 12 +-
sys/src/cmd/upas/vf/vf.c | 6 +-
30 files changed, 139 insertions(+), 363 deletions(-)
diffs (truncated from 1023 to 300 lines):
diff --git a/sys/src/cmd/upas/Mail/mail.c b/sys/src/cmd/upas/Mail/mail.c
--- a/sys/src/cmd/upas/Mail/mail.c
+++ b/sys/src/cmd/upas/Mail/mail.c
@@ -82,6 +82,7 @@ threadmain(int argc, char *argv[])
doquote = needsrcquote;
quotefmtinstall();
+ tmfmtinstall();
/* open these early so we won't miss notification of new mail messages while we read mbox */
plumbsendfd = plumbopen("send", OWRITE|OCEXEC);
diff --git a/sys/src/cmd/upas/Mail/mesg.c b/sys/src/cmd/upas/Mail/mesg.c
--- a/sys/src/cmd/upas/Mail/mesg.c
+++ b/sys/src/cmd/upas/Mail/mesg.c
@@ -224,14 +224,13 @@ mesgadd(Message *mbox, char *dir, Dir *d
int
thisyear(char *year)
{
- static char now[10];
- char *s;
+ Tzone *tz;
+ Tm tm;
- if(now[0] == '\0'){
- s = ctime(time(nil));
- strcpy(now, s+24);
- }
- return strncmp(year, now, 4) == 0;
+ /* ignore errors: screwed means utc */
+ tz = tzload("local");
+ tmnow(&tm, tz);
+ return atoi(year) == (tm.year + 1900);
}
char*
diff --git a/sys/src/cmd/upas/Mail/reply.c b/sys/src/cmd/upas/Mail/reply.c
--- a/sys/src/cmd/upas/Mail/reply.c
+++ b/sys/src/cmd/upas/Mail/reply.c
@@ -388,7 +388,9 @@ mesgsend(Message *m)
Channel *sync;
Message *r;
int first, nfld, delit, ofd;
- char *copy, *fld[100], *now;
+ char *copy, *fld[100];
+ Tzone *tz;
+ Tm now;
body = winreadbody(m->w, &n);
/* assemble to: list from first line, to: line, and cc: line */
@@ -467,11 +469,12 @@ mesgsend(Message *m)
ofd = open(outgoing, OWRITE|OCEXEC); /* no error check necessary */
if(ofd >= 0){
- /* From dhog Fri Aug 24 22:13:00 EDT 2001 */
- now = ctime(time(0));
- fprint(ofd, "From %s %s", user, now);
+ /* From dhog Fri Aug 24 22:13:00 +0500 2001 */
+ tz = tzload("local");
+ tmnow(&now, tz);
+ fprint(ofd, "From %s %τ", user, tmfmt(&now, "WW MMM _D hh:mm:ss Z YYYY"));
fprint(ofd, "From: %s\n", user);
- fprint(ofd, "Date: %s", now);
+ fprint(ofd, "Date: %τ", tmfmt(&now, "WW MMM _D hh:mm:ss Z YYYY"));
for(i=0; i<natt; i++)
if(included[i])
fprint(ofd, "Include: %s\n", attlist[i]);
diff --git a/sys/src/cmd/upas/common/common.h b/sys/src/cmd/upas/common/common.h
--- a/sys/src/cmd/upas/common/common.h
+++ b/sys/src/cmd/upas/common/common.h
@@ -20,6 +20,7 @@ enum{
Fstored = 1<<6, /* S */
Nflags = 7,
};
+#define Timefmt "WW MMM _D hh:mm:ss ?Z YYYY"
/*
* flag.c
diff --git a/sys/src/cmd/upas/common/folder.c b/sys/src/cmd/upas/common/folder.c
--- a/sys/src/cmd/upas/common/folder.c
+++ b/sys/src/cmd/upas/common/folder.c
@@ -1,7 +1,5 @@
#include "common.h"
-#define Ctimefmt "WW MMM _D hh:mm:ss ?Z YYYY"
-
enum{
Mbox = 1,
Mdir,
@@ -186,22 +184,24 @@ mboxesc(Biobuf *in, Biobuf *out, int typ
int
appendfolder(Biobuf *b, char *addr, int fd)
{
- char *s, *t;
- int r;
+ char *s;
+ int r, n;
Biobuf bin;
Folder *f;
+ Tzone *tz;
Tm tm;
f = getfolder(b);
Bseek(f->out, 0, 2);
Binit(&bin, fd, OREAD);
s = Brdstr(&bin, '\n', 0);
- if(s == nil || strncmp(s, "From ", 5) != 0)
- Bprint(f->out, "From %s %.28s\n", addr, ctime(f->t));
- else if(strncmp(s, "From ", 5) == 0
- && (t = strchr(s + 5, ' ')) != nil
- && tmparse(&tm, Ctimefmt, t + 1, nil, nil) != nil)
- f->t = tm2sec(&tm);
+ n = strlen(s);
+ if(!s || strncmp(s, "From ", 5) != 0){
+ tz = tzload("local");
+ tmtime(&tm, f->t, tz);
+ Bprint(f->out, "From %s %τ\n", addr, tmfmt(&tm, Timefmt));
+ }else if(n > 5 && tmparse(&tm, Timefmt, s + 5, nil, nil) != nil)
+ f->t = tmnorm(&tm);
if(s)
Bwrite(f->out, s, strlen(s));
free(s);
diff --git a/sys/src/cmd/upas/common/libsys.c b/sys/src/cmd/upas/common/libsys.c
--- a/sys/src/cmd/upas/common/libsys.c
+++ b/sys/src/cmd/upas/common/libsys.c
@@ -5,14 +5,15 @@
/*
* return the date
*/
-char*
-thedate(void)
+Tmfmt
+thedate(Tm *tm)
{
- static char now[64];
+ Tzone *tz;
- strcpy(now, ctime(time(0)));
- now[28] = 0;
- return now;
+ /* if the local time is screwed, just do gmt */
+ tz = tzload("local");
+ tmnow(tm, tz);
+ return tmfmt(tm, Timefmt);
}
/*
diff --git a/sys/src/cmd/upas/common/sys.h b/sys/src/cmd/upas/common/sys.h
--- a/sys/src/cmd/upas/common/sys.h
+++ b/sys/src/cmd/upas/common/sys.h
@@ -35,7 +35,7 @@ char *alt_sysname_read(void);
char *domainname_read(void);
char **sysnames_read(void);
char *getlog(void);
-char *thedate(void);
+Tmfmt thedate(Tm*);
Biobuf *sysopen(char*, char*, ulong);
int sysopentty(void);
int sysclose(Biobuf*);
diff --git a/sys/src/cmd/upas/filterkit/deliver.c b/sys/src/cmd/upas/filterkit/deliver.c
--- a/sys/src/cmd/upas/filterkit/deliver.c
+++ b/sys/src/cmd/upas/filterkit/deliver.c
@@ -14,13 +14,15 @@ usage(void)
void
main(int argc, char **argv)
{
- char *to, *s;
+ char *to;
+ Tmfmt tf;
+ Tm tm;
int r;
- long l;
Addr *a;
ARGBEGIN{
}ARGEND;
+ tmfmtinstall();
if(argc != 3)
usage();
if(to = strrchr(argv[0], '!'))
@@ -30,9 +32,9 @@ main(int argc, char **argv)
a = readaddrs(argv[1], nil);
if(a == nil)
sysfatal("missing from address");
- s = ctime(l = time(0));
+ tf = thedate(&tm);
werrstr("");
- r = fappendfolder(a->val, l, argv[2], 0);
- syslog(0, "mail", "delivered %s From %s %.28s (%s) %d %r", to, a->val, s, argv[0], r);
+ r = fappendfolder(a->val, tmnorm(&tm), argv[2], 0);
+ syslog(0, "mail", "delivered %s From %s %τ (%s) %d %r", to, a->val, tf, argv[0], r);
exits("");
}
diff --git a/sys/src/cmd/upas/filterkit/list.c b/sys/src/cmd/upas/filterkit/list.c
--- a/sys/src/cmd/upas/filterkit/list.c
+++ b/sys/src/cmd/upas/filterkit/list.c
@@ -306,6 +306,7 @@ main(int argc, char **argv)
} ARGEND;
quotefmtinstall();
+ tmfmtinstall();
if(argc < 3)
usage();
diff --git a/sys/src/cmd/upas/filterkit/mbappend.c b/sys/src/cmd/upas/filterkit/mbappend.c
--- a/sys/src/cmd/upas/filterkit/mbappend.c
+++ b/sys/src/cmd/upas/filterkit/mbappend.c
@@ -7,15 +7,15 @@
void
append(int fd, char *mb, char *from, long t)
{
- char *folder, *s;
+ char *folder;
+ Tm tm;
int r;
- s = ctime(t);
folder = foldername(from, getuser(), mb);
r = fappendfolder(0, t, folder, fd);
if(r == 0)
werrstr("");
- syslog(0, "mail", "mbappend %s %.28s (%s) %r", mb, s, folder);
+ syslog(0, "mail", "mbappend %s %τ (%s) %r", mb, thedate(&tm), folder);
if(r)
exits("fail");
}
@@ -36,6 +36,7 @@ main(int argc, char **argv)
from = nil;
t = time(0);
+ tmfmtinstall();
ARGBEGIN{
case 't':
t = strtoul(EARGF(usage()), 0, 0);
diff --git a/sys/src/cmd/upas/filterkit/mbcreate.c b/sys/src/cmd/upas/filterkit/mbcreate.c
--- a/sys/src/cmd/upas/filterkit/mbcreate.c
+++ b/sys/src/cmd/upas/filterkit/mbcreate.c
@@ -24,6 +24,7 @@ main(int argc, char **argv)
}ARGEND
r = 0;
+ tmfmtinstall();
for(; *argv; argv++)
r |= f(getuser(), *argv);
if(r)
diff --git a/sys/src/cmd/upas/filterkit/mbremove.c b/sys/src/cmd/upas/filterkit/mbremove.c
--- a/sys/src/cmd/upas/filterkit/mbremove.c
+++ b/sys/src/cmd/upas/filterkit/mbremove.c
@@ -235,6 +235,7 @@ main(int argc, char **argv)
}ARGEND
r = 0;
+ tmfmtinstall();
for(; *argv; argv++)
r |= f(getuser(), *argv);
if(r)
diff --git a/sys/src/cmd/upas/filterkit/token.c b/sys/src/cmd/upas/filterkit/token.c
--- a/sys/src/cmd/upas/filterkit/token.c
+++ b/sys/src/cmd/upas/filterkit/token.c
@@ -62,6 +62,7 @@ main(int argc, char **argv)
ARGBEGIN {
} ARGEND;
+ tmfmtinstall();
switch(argc){
case 2:
exits(check_token(argv[0], argv[1]));
diff --git a/sys/src/cmd/upas/fs/extra/strtotmtst.c b/sys/src/cmd/upas/fs/extra/strtotmtst.c
--- a/sys/src/cmd/upas/fs/extra/strtotmtst.c
+++ b/sys/src/cmd/upas/fs/extra/strtotmtst.c
@@ -8,9 +8,10 @@ main(int argc, char **argv)
ARGBEGIN{
}ARGEND
+ tmfmtinstall();
for(; *argv; argv++)
if(strtotm(*argv, &tm) >= 0)
- print("%s", asctime(&tm));
+ print("%τ\n", tmfmt(&tm, nil));
else
print("bad\n");
exits("");
diff --git a/sys/src/cmd/upas/fs/fs.c b/sys/src/cmd/upas/fs/fs.c
--- a/sys/src/cmd/upas/fs/fs.c
+++ b/sys/src/cmd/upas/fs/fs.c
@@ -174,16 +174,15 @@ Afmt(Fmt *f)
static int
Δfmt(Fmt *f)
{
- char buf[32];
uvlong v;
+ Tm tm;
v = va_arg(f->args, uvlong);
if(f->flags & FmtSharp)
if((v>>8) == 0)
return fmtstrcpy(f, "");
- strcpy(buf, ctime(v>>8));
- buf[28] = 0;
- return fmtstrcpy(f, buf);
+ tmtime(&tm, v>>8, tzload("local"));
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-09-28 15:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <hg.35c4d11d3692.1601144545.4892889753185008284@code.9front.org>
2020-09-28 15:45 ` Fwd: [9front-commits] ori: hg/plan9front: upas: convert to tmdate, change timezone format Stanley Lieber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).