From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- net-mail/qmailanalog/files/0.70-errno.patch | 11 +++++ net-mail/qmailanalog/files/tai64nfrac.c | 66 +++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 net-mail/qmailanalog/files/0.70-errno.patch create mode 100644 net-mail/qmailanalog/files/tai64nfrac.c (limited to 'net-mail/qmailanalog/files') diff --git a/net-mail/qmailanalog/files/0.70-errno.patch b/net-mail/qmailanalog/files/0.70-errno.patch new file mode 100644 index 000000000000..4aca1b2b4e58 --- /dev/null +++ b/net-mail/qmailanalog/files/0.70-errno.patch @@ -0,0 +1,11 @@ +--- error.h.orig 2003-03-05 15:42:51.000000000 -0500 ++++ error.h 2003-03-05 15:43:00.000000000 -0500 +@@ -1,7 +1,7 @@ + #ifndef ERROR_H + #define ERROR_H + +-extern int errno; ++#include + + extern int error_intr; + extern int error_nomem; diff --git a/net-mail/qmailanalog/files/tai64nfrac.c b/net-mail/qmailanalog/files/tai64nfrac.c new file mode 100644 index 000000000000..28e6cdbb8754 --- /dev/null +++ b/net-mail/qmailanalog/files/tai64nfrac.c @@ -0,0 +1,66 @@ +/* + Convert external TAI64N timestamps to fractional seconds since epoch. + + Written by Russ Allbery + This work is in the public domain. + +Usage: + +tai64nfrac < input > output + +Expects the input stream to be a sequence of lines beginning with @, a +timestamp in external TAI64N format, and a space. Replaces the @ and the +timestamp with fractional seconds since epoch (1970-01-01 00:00:00 UTC). +The input time format is the format written by tai64n and multilog. The +output time format is expected by qmailanalog. */ + +#include + +/* Read a TAI64N external format timestamp from stdin and write fractional + seconds since epoch (TAI, not UTC) to stdout. Return the character after + the timestamp. */ +int decode(void) +{ + int c; + unsigned long u; + unsigned long seconds = 0; + unsigned long nanoseconds = 0; + + while ((c = getchar()) != EOF) + { + u = c - '0'; + if (u >= 10) + { + u = c - 'a'; + if (u >= 6) break; + u += 10; + } + seconds <<= 4; + seconds += nanoseconds >> 28; + nanoseconds &= 0xfffffff; + nanoseconds <<= 4; + nanoseconds += u; + } + seconds -= 4611686018427387914ULL; + printf("%lu.%lu ", seconds, nanoseconds); + return c; +} + + +int main(void) +{ + int c; + unsigned long seconds; + unsigned long nanoseconds; + + while ((c = getchar()) != EOF) + { + if (c == '@') c = decode(); + while (c != EOF) + { + putchar(c); + if (c == '\n') break; + c = getchar(); + } + } +} -- cgit v1.2.3