From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from 104.59.85.219 ([104.59.85.219]) by ewsd; Mon Sep 28 11:57:41 -0400 2020 Date: Mon, 28 Sep 2020 11:45:48 -0400 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Fwd: [9front-commits] ori: hg/plan9front: upas: convert to tmdate, change timezone format To: 9front@9front.org From: Stanley Lieber Message-ID: List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: WEB2.0 table database table self-signing database don't forget to rebuild libc first=2E sl -------- Original Message -------- From: The Computer Sent: September 26, 2020 2:22:25 PM EDT To: 9front-commits@9front=2Eorg Subject: [9front-commits] ori: hg/plan9front: upas: convert to tmdate, cha= nge timezone format details: http://code=2E9front=2Eorg/hg/plan9front/rev/35c4d11d3692 changeset: 7985:35c4d11d3692 user: Ori Bernstein 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=2E This may affect code that expects specific names for timezones=2E Fix that code=2E diffstat: sys/src/cmd/upas/Mail/mail=2Ec | 1 + sys/src/cmd/upas/Mail/mesg=2Ec | 13 +- sys/src/cmd/upas/Mail/reply=2Ec | 13 +- sys/src/cmd/upas/common/common=2Eh | 1 + sys/src/cmd/upas/common/folder=2Ec | 20 +- sys/src/cmd/upas/common/libsys=2Ec | 13 +- sys/src/cmd/upas/common/sys=2Eh | 2 +- sys/src/cmd/upas/filterkit/deliver=2Ec | 12 +- sys/src/cmd/upas/filterkit/list=2Ec | 1 + sys/src/cmd/upas/filterkit/mbappend=2Ec | 7 +- sys/src/cmd/upas/filterkit/mbcreate=2Ec | 1 + sys/src/cmd/upas/filterkit/mbremove=2Ec | 1 + sys/src/cmd/upas/filterkit/token=2Ec | 1 + sys/src/cmd/upas/fs/extra/strtotmtst=2Ec | 3 +- sys/src/cmd/upas/fs/fs=2Ec | 8 +- sys/src/cmd/upas/fs/mbox=2Ec | 6 +- sys/src/cmd/upas/fs/plan9=2Ec | 2 +- sys/src/cmd/upas/imap4d/date=2Ec | 257 ++-----------------------= ------- sys/src/cmd/upas/imap4d/imap4d=2Ec | 7 +- sys/src/cmd/upas/imap4d/nlisttst=2Ec | 2 - sys/src/cmd/upas/imap4d/print=2Ec | 37 +--- sys/src/cmd/upas/marshal/marshal=2Ec | 28 +--- sys/src/cmd/upas/pop3/pop3=2Ec | 2 + sys/src/cmd/upas/scanmail/scanmail=2Ec | 14 +- sys/src/cmd/upas/send/main=2Ec | 9 +- sys/src/cmd/upas/send/message=2Ec | 6 +- sys/src/cmd/upas/smtp/smtp=2Ec | 6 +- sys/src/cmd/upas/smtp/smtpd=2Ec | 11 +- sys/src/cmd/upas/smtp/spam=2Ec | 12 +- sys/src/cmd/upas/vf/vf=2Ec | 6 +- 30 files changed, 139 insertions(+), 363 deletions(-) diffs (truncated from 1023 to 300 lines): diff --git a/sys/src/cmd/upas/Mail/mail=2Ec b/sys/src/cmd/upas/Mail/mail= =2Ec --- a/sys/src/cmd/upas/Mail/mail=2Ec +++ b/sys/src/cmd/upas/Mail/mail=2Ec @@ -82,6 +82,7 @@ threadmain(int argc, char *argv[]) =20 doquote =3D needsrcquote; quotefmtinstall(); + tmfmtinstall(); =20 /* open these early so we won't miss notification of new mail messages w= hile we read mbox */ plumbsendfd =3D plumbopen("send", OWRITE|OCEXEC); diff --git a/sys/src/cmd/upas/Mail/mesg=2Ec b/sys/src/cmd/upas/Mail/mesg= =2Ec --- a/sys/src/cmd/upas/Mail/mesg=2Ec +++ b/sys/src/cmd/upas/Mail/mesg=2Ec @@ -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; =20 - if(now[0] =3D=3D '\0'){ - s =3D ctime(time(nil)); - strcpy(now, s+24); - } - return strncmp(year, now, 4) =3D=3D 0; + /* ignore errors: screwed means utc */ + tz =3D tzload("local"); + tmnow(&tm, tz); + return atoi(year) =3D=3D (tm=2Eyear + 1900); } =20 char* diff --git a/sys/src/cmd/upas/Mail/reply=2Ec b/sys/src/cmd/upas/Mail/reply= =2Ec --- a/sys/src/cmd/upas/Mail/reply=2Ec +++ b/sys/src/cmd/upas/Mail/reply=2Ec @@ -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; =20 body =3D winreadbody(m->w, &n); /* assemble to: list from first line, to: line, and cc: line */ @@ -467,11 +469,12 @@ mesgsend(Message *m) =20 ofd =3D open(outgoing, OWRITE|OCEXEC); /* no error check necessary */ if(ofd >=3D 0){ - /* From dhog Fri Aug 24 22:13:00 EDT 2001 */ - now =3D ctime(time(0)); - fprint(ofd, "From %s %s", user, now); + /* From dhog Fri Aug 24 22:13:00 +0500 2001 */ + tz =3D tzload("local"); + tmnow(&now, tz); + fprint(ofd, "From %s %=CF=84", 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: %=CF=84", tmfmt(&now, "WW MMM _D hh:mm:ss Z YYYY")); for(i=3D0; iout, 0, 2); Binit(&bin, fd, OREAD); s =3D Brdstr(&bin, '\n', 0); - if(s =3D=3D nil || strncmp(s, "From ", 5) !=3D 0) - Bprint(f->out, "From %s %=2E28s\n", addr, ctime(f->t)); - else if(strncmp(s, "From ", 5) =3D=3D 0=20 - && (t =3D strchr(s + 5, ' ')) !=3D nil - && tmparse(&tm, Ctimefmt, t + 1, nil, nil) !=3D nil) - f->t =3D tm2sec(&tm); + n =3D strlen(s); + if(!s || strncmp(s, "From ", 5) !=3D 0){ + tz =3D tzload("local"); + tmtime(&tm, f->t, tz); + Bprint(f->out, "From %s %=CF=84\n", addr, tmfmt(&tm, Timefmt)); + }else if(n > 5 && tmparse(&tm, Timefmt, s + 5, nil, nil) !=3D nil) + f->t =3D tmnorm(&tm); if(s) Bwrite(f->out, s, strlen(s)); free(s); diff --git a/sys/src/cmd/upas/common/libsys=2Ec b/sys/src/cmd/upas/common/= libsys=2Ec --- a/sys/src/cmd/upas/common/libsys=2Ec +++ b/sys/src/cmd/upas/common/libsys=2Ec @@ -5,14 +5,15 @@ /* * return the date */ -char* -thedate(void) +Tmfmt +thedate(Tm *tm) { - static char now[64]; + Tzone *tz; =20 - strcpy(now, ctime(time(0))); - now[28] =3D 0; - return now; + /* if the local time is screwed, just do gmt */ + tz =3D tzload("local"); + tmnow(tm, tz); + return tmfmt(tm, Timefmt); } =20 /* diff --git a/sys/src/cmd/upas/common/sys=2Eh b/sys/src/cmd/upas/common/sys= =2Eh --- a/sys/src/cmd/upas/common/sys=2Eh +++ b/sys/src/cmd/upas/common/sys=2Eh @@ -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=2Ec b/sys/src/cmd/upas/fil= terkit/deliver=2Ec --- a/sys/src/cmd/upas/filterkit/deliver=2Ec +++ b/sys/src/cmd/upas/filterkit/deliver=2Ec @@ -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; =20 ARGBEGIN{ }ARGEND; + tmfmtinstall(); if(argc !=3D 3) usage(); if(to =3D strrchr(argv[0], '!')) @@ -30,9 +32,9 @@ main(int argc, char **argv) a =3D readaddrs(argv[1], nil); if(a =3D=3D nil) sysfatal("missing from address"); - s =3D ctime(l =3D time(0)); + tf =3D thedate(&tm); werrstr(""); - r =3D fappendfolder(a->val, l, argv[2], 0); - syslog(0, "mail", "delivered %s From %s %=2E28s (%s) %d %r", to, a->val,= s, argv[0], r); + r =3D fappendfolder(a->val, tmnorm(&tm), argv[2], 0); + syslog(0, "mail", "delivered %s From %s %=CF=84 (%s) %d %r", to, a->val,= tf, argv[0], r); exits(""); } diff --git a/sys/src/cmd/upas/filterkit/list=2Ec b/sys/src/cmd/upas/filter= kit/list=2Ec --- a/sys/src/cmd/upas/filterkit/list=2Ec +++ b/sys/src/cmd/upas/filterkit/list=2Ec @@ -306,6 +306,7 @@ main(int argc, char **argv) } ARGEND; =20 quotefmtinstall(); + tmfmtinstall(); =20 if(argc < 3) usage(); diff --git a/sys/src/cmd/upas/filterkit/mbappend=2Ec b/sys/src/cmd/upas/fi= lterkit/mbappend=2Ec --- a/sys/src/cmd/upas/filterkit/mbappend=2Ec +++ b/sys/src/cmd/upas/filterkit/mbappend=2Ec @@ -7,15 +7,15 @@ void append(int fd, char *mb, char *from, long t) { - char *folder, *s; + char *folder; + Tm tm; int r; =20 - s =3D ctime(t); folder =3D foldername(from, getuser(), mb); r =3D fappendfolder(0, t, folder, fd); if(r =3D=3D 0) werrstr(""); - syslog(0, "mail", "mbappend %s %=2E28s (%s) %r", mb, s, folder); + syslog(0, "mail", "mbappend %s %=CF=84 (%s) %r", mb, thedate(&tm), folde= r); if(r) exits("fail"); } @@ -36,6 +36,7 @@ main(int argc, char **argv) =20 from =3D nil; t =3D time(0); + tmfmtinstall(); ARGBEGIN{ case 't': t =3D strtoul(EARGF(usage()), 0, 0); diff --git a/sys/src/cmd/upas/filterkit/mbcreate=2Ec b/sys/src/cmd/upas/fi= lterkit/mbcreate=2Ec --- a/sys/src/cmd/upas/filterkit/mbcreate=2Ec +++ b/sys/src/cmd/upas/filterkit/mbcreate=2Ec @@ -24,6 +24,7 @@ main(int argc, char **argv) }ARGEND =20 r =3D 0; + tmfmtinstall(); for(; *argv; argv++) r |=3D f(getuser(), *argv); if(r) diff --git a/sys/src/cmd/upas/filterkit/mbremove=2Ec b/sys/src/cmd/upas/fi= lterkit/mbremove=2Ec --- a/sys/src/cmd/upas/filterkit/mbremove=2Ec +++ b/sys/src/cmd/upas/filterkit/mbremove=2Ec @@ -235,6 +235,7 @@ main(int argc, char **argv) }ARGEND =20 r =3D 0; + tmfmtinstall(); for(; *argv; argv++) r |=3D f(getuser(), *argv); if(r) diff --git a/sys/src/cmd/upas/filterkit/token=2Ec b/sys/src/cmd/upas/filte= rkit/token=2Ec --- a/sys/src/cmd/upas/filterkit/token=2Ec +++ b/sys/src/cmd/upas/filterkit/token=2Ec @@ -62,6 +62,7 @@ main(int argc, char **argv) ARGBEGIN { } ARGEND; =20 + tmfmtinstall(); switch(argc){ case 2: exits(check_token(argv[0], argv[1])); diff --git a/sys/src/cmd/upas/fs/extra/strtotmtst=2Ec b/sys/src/cmd/upas/f= s/extra/strtotmtst=2Ec --- a/sys/src/cmd/upas/fs/extra/strtotmtst=2Ec +++ b/sys/src/cmd/upas/fs/extra/strtotmtst=2Ec @@ -8,9 +8,10 @@ main(int argc, char **argv) ARGBEGIN{ }ARGEND =20 + tmfmtinstall(); for(; *argv; argv++) if(strtotm(*argv, &tm) >=3D 0) - print("%s", asctime(&tm)); + print("%=CF=84\n", tmfmt(&tm, nil)); else print("bad\n"); exits(""); diff --git a/sys/src/cmd/upas/fs/fs=2Ec b/sys/src/cmd/upas/fs/fs=2Ec --- a/sys/src/cmd/upas/fs/fs=2Ec +++ b/sys/src/cmd/upas/fs/fs=2Ec @@ -174,16 +174,15 @@ Afmt(Fmt *f) static int =CE=94fmt(Fmt *f) { - char buf[32]; uvlong v; + Tm tm; =20 v =3D va_arg(f->args, uvlong); if(f->flags & FmtSharp) if((v>>8) =3D=3D 0) return fmtstrcpy(f, ""); - strcpy(buf, ctime(v>>8)); - buf[28] =3D 0; - return fmtstrcpy(f, buf); + tmtime(&tm, v>>8, tzload("local"));