freebsd-ports/mail/qmailanalog/files/patch-matchup.c
Renato Botelho 521c9c982b - Add a patch to read tai64n date format with no need of tai64nlocal
external application [1]
- Remove USEREINPLACE
- Unquote BROKEN

PR:		ports/92425 [1]
Submitted by:	Luca Morettoni <luca@morettoni.net> [1]
2006-01-30 16:31:34 +00:00

63 lines
1.5 KiB
C

*** matchup.c-orig Fri Jul 1 12:28:28 2005
--- 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();