pkgs/qmailanalog/matchup.c-taia.patch
changeset 1 8c84b175f33e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkgs/qmailanalog/matchup.c-taia.patch	Wed Mar 23 15:20:11 2016 +0100
@@ -0,0 +1,65 @@
+http://www.morettoni.net/qmail/matchup.c-taia.patch
+
+*** qmailanalog-0.70.orig/matchup.c	Fri Jul  1 12:28:28 2005
+--- qmailanalog-0.70/matchup.c	Fri Jul  1 14:06:04 2005
+***************
+*** 417,422 ****
+--- 417,463 ----
+  
+  stralloc outline = {0};
+  
++ void fix_taia()
++ {
++   stralloc tai = {0};
++   stralloc tmp = {0};
++   char *p = line.s+field[0]+1;
++   unsigned long secs;
++   unsigned long nanosecs;
++   unsigned long u;
++   char ch;
++ 
++   secs = 0;
++   nanosecs = 0;
++   for (;;) {
++     ch = *p++;
++     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;
++ 
++   if (!stralloc_copyb(&tai, strnum,fmt_ulong(strnum,secs))) nomem();
++   if (!stralloc_cats(&tai,".")) nomem();
++   if (!stralloc_catb(&tai, strnum,fmt_ulong(strnum,nanosecs))) nomem();
++   if (!stralloc_0(&tai)) nomem();
++ 
++   if (!stralloc_copy(&tmp,&tai)) nomem();
++   while (tmp.len < field[1]) 
++     if (!stralloc_cats(&tmp," ")) nomem();
++   if (!stralloc_cats(&tmp,line.s + field[1])) nomem();
++   if (!stralloc_copy(&line,&tmp)) nomem();
++   if (!stralloc_0(&line)) nomem();
++ }
++ 
+  void main()
+  {
+    int i;
+***************
+*** 452,457 ****
+--- 493,500 ----
+        while (j < line.len) if (!line.s[j]) break; else ++j;
+      }
+      if (!stralloc_0(&line)) nomem();
++ 
++     if ((line.s[field[0]]) == '@') fix_taia();
+  
+      if (str_equal(line.s + field[1],"status:")) ;
+      else if (str_equal(line.s + field[1],"starting")) starting();