"Jay" == Jay Soffian <[EMAIL PROTECTED]> writes:

    Jay> I've attached a patch for daemontools-0.61 which creates tai64nepoch,
    Jay> something I hacked from tai64nlocal. I happen to rotate my logs

Oops, forgot to attach the patch. Attached.

j.
--
Jay Soffian <[EMAIL PROTECTED]>                            UNIX Systems Engineer
404.572.1941                                             Cox Interactive Media

diff -c -N daemontools-0.61.orig/Makefile daemontools-0.61/Makefile
*** daemontools-0.61.orig/Makefile      Thu Aug 26 02:56:44 1999
--- daemontools-0.61/Makefile   Mon Nov  1 21:44:37 1999
***************
*** 318,324 ****
        ./compile open_write.c
  
  prog: \
! svscan supervise svok svstat svc fghack multilog tai64n tai64nlocal \
  softlimit setuidgid envuidgid rts matchtest
  
  prot.o: \
--- 318,324 ----
        ./compile open_write.c
  
  prog: \
! svscan supervise svok svstat svc fghack multilog tai64n tai64nlocal tai64nepoch \
  softlimit setuidgid envuidgid rts matchtest
  
  prot.o: \
***************
*** 557,562 ****
--- 557,570 ----
  tai64n.o: \
  compile tai64n.c timestamp.h substdio.h readwrite.h exit.h
        ./compile tai64n.c
+ 
+ tai64nepoch: \
+ load tai64nepoch.o substdio.a error.a str.a fs.a
+       ./load tai64nepoch substdio.a error.a str.a fs.a 
+ 
+ tai64nepoch.o: \
+ compile tai64nepoch.c substdio.h subfd.h substdio.h exit.h fmt.h
+       ./compile tai64nepoch.c
  
  tai64nlocal: \
  load tai64nlocal.o substdio.a error.a str.a fs.a
diff -c -N daemontools-0.61.orig/tai64nepoch.c daemontools-0.61/tai64nepoch.c
*** daemontools-0.61.orig/tai64nepoch.c Wed Dec 31 19:00:00 1969
--- daemontools-0.61/tai64nepoch.c      Tue Jan  4 13:09:42 2000
***************
*** 0 ****
--- 1,68 ----
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include "substdio.h"
+ #include "subfd.h"
+ #include "exit.h"
+ #include "fmt.h"
+ 
+ char num[FMT_ULONG];
+ 
+ void get(ch)
+ char *ch;
+ {
+   int r;
+ 
+   r = substdio_get(subfdin,ch,1);
+   if (r == 1) return;
+   if (r == 0) _exit(0);
+   _exit(111);
+ }
+ 
+ void out(buf,len)
+ char *buf;
+ int len;
+ {
+   if (substdio_put(subfdout,buf,len) == -1)
+     _exit(111);
+ }
+ 
+ time_t secs;
+ unsigned long nanosecs;
+ unsigned long u;
+ struct tm *t;
+ 
+ main()
+ {
+   char ch;
+ 
+   for (;;) {
+     get(&ch);
+     if (ch == '@') {
+       secs = 0;
+       nanosecs = 0;
+       for (;;) {
+         get(&ch);
+         u = ch - '0';
+         if (u >= 10) {
+           u = ch - 'a';
+           if (u >= 6) break;
+           u += 10;
+         }
+         secs <<= 4;
+         secs += nanosecs >> 28;
+         nanosecs &= 0xfffffff;
+         nanosecs <<= 4;
+         nanosecs += u;
+       }
+       secs -= 4611686018427387914ULL;
+       out(num,fmt_ulong(num,(unsigned long) (secs)));
+       out(".",1);
+       out(num,fmt_uint0(num,(unsigned int) nanosecs,9));
+     }
+     for (;;) {
+       out(&ch,1);
+       if (ch == '\n') break;
+       get(&ch);
+     }
+   }
+ }

Reply via email to