pkgs/qmailanalog/matchup.c-taia.patch
author Tomas Zeman <tzeman@volny.cz>
Sat, 04 Jun 2016 17:55:58 +0200
changeset 4 ec24a8508b37
parent 1 8c84b175f33e
permissions -rw-r--r--
maintainers; lint clean
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
http://www.morettoni.net/qmail/matchup.c-taia.patch
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
*** qmailanalog-0.70.orig/matchup.c	Fri Jul  1 12:28:28 2005
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
--- qmailanalog-0.70/matchup.c	Fri Jul  1 14:06:04 2005
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
***************
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
*** 417,422 ****
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
--- 417,463 ----
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
  
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
  stralloc outline = {0};
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
  
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
+ void fix_taia()
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
+ {
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
+   stralloc tai = {0};
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
+   stralloc tmp = {0};
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
+   char *p = line.s+field[0]+1;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
+   unsigned long secs;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
+   unsigned long nanosecs;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
+   unsigned long u;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
+   char ch;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
+ 
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
+   secs = 0;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
+   nanosecs = 0;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
+   for (;;) {
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
+     ch = *p++;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
+     u = ch - '0';
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
+     if (u >= 10) {
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
+       u = ch - 'a';
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
+       if (u >= 6) break;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
+       u += 10;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
+     }
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
+     secs <<= 4;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
+     secs += nanosecs >> 28;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
+     nanosecs &= 0xfffffff;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
+     nanosecs <<= 4;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
+     nanosecs += u;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
+   }
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
+   secs -= 4611686018427387914ULL;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
+ 
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
+   if (!stralloc_copyb(&tai, strnum,fmt_ulong(strnum,secs))) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
+   if (!stralloc_cats(&tai,".")) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
+   if (!stralloc_catb(&tai, strnum,fmt_ulong(strnum,nanosecs))) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
+   if (!stralloc_0(&tai)) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
+ 
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
+   if (!stralloc_copy(&tmp,&tai)) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
+   while (tmp.len < field[1]) 
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
+     if (!stralloc_cats(&tmp," ")) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
+   if (!stralloc_cats(&tmp,line.s + field[1])) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
+   if (!stralloc_copy(&line,&tmp)) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
+   if (!stralloc_0(&line)) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
+ }
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
+ 
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
  void main()
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
  {
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
    int i;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    55
***************
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    56
*** 452,457 ****
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
--- 493,500 ----
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    58
        while (j < line.len) if (!line.s[j]) break; else ++j;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    59
      }
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    60
      if (!stralloc_0(&line)) nomem();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    61
+ 
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    62
+     if ((line.s[field[0]]) == '@') fix_taia();
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    63
  
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    64
      if (str_equal(line.s + field[1],"status:")) ;
8c84b175f33e qmailanalog-0.70
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    65
      else if (str_equal(line.s + field[1],"starting")) starting();