tlibventi: add %+T - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit ece9d931eb41e9693c9c3b5e29c6e514bb328713
 (DIR) parent 7e0b68623394068aec66fe388e0fa446f598c11e
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Tue, 23 Dec 2008 12:32:08 -0800
       
       libventi: add %+T
       
       Diffstat:
         M src/libventi/log.c                  |      20 +-------------------
         M src/libventi/time.c                 |       9 ++++++---
       
       2 files changed, 7 insertions(+), 22 deletions(-)
       ---
 (DIR) diff --git a/src/libventi/log.c b/src/libventi/log.c
       t@@ -162,18 +162,6 @@ vtlogremove(char *name)
                qunlock(&vl.lk);
        }
        
       -static int
       -timefmt(Fmt *fmt)
       -{
       -        static uvlong t0;
       -        uvlong t;
       -
       -        if(t0 == 0)
       -                t0 = nsec();
       -        t = nsec()-t0;
       -        return fmtprint(fmt, "T+%d.%04d", (uint)(t/1000000000), (uint)(t%1000000000)/100000);
       -}
       -
        void
        vtlogvprint(VtLog *l, char *fmt, va_list arg)
        {
       t@@ -184,13 +172,7 @@ vtlogvprint(VtLog *l, char *fmt, va_list arg)
        
                if(l == nil)
                        return;
       -                
       -        if(first){
       -                fmtinstall('T', timefmt);
       -                first = 0;
       -        }
       -                
       -        
       +
                qlock(&l->lk);
                c = l->w;
                n = c->ep - c->wp;
 (DIR) diff --git a/src/libventi/time.c b/src/libventi/time.c
       t@@ -8,15 +8,18 @@ vttimefmt(Fmt *fmt)
                vlong ns;
                Tm tm;
        
       -        if(fmt->flags&FmtLong){
       +        if(fmt->flags&FmtSign){
       +                ns = va_arg(fmt->args, long);
       +                ns *= 1000000000;
       +        } else
                        ns = nsec();
       -                tm = *localtime(ns/1000000000);
       +        tm = *localtime(ns/1000000000);
       +        if(fmt->flags&FmtLong){
                        return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d.%03d", 
                                tm.year+1900, tm.mon+1, tm.mday, 
                                tm.hour, tm.min, tm.sec,
                                (int)(ns%1000000000)/1000000);
                }else{
       -                tm = *localtime(time(0));
                        return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d", 
                                tm.year+1900, tm.mon+1, tm.mday, 
                                tm.hour, tm.min, tm.sec);