#include "tai.h"

static char INT2HEX[16] = "0123456789abcdef";
#define int2hex(X) INT2HEX[(X)&0xf]

bool tai64n_encode(const tai* t, char* buf)
{
  unsigned long n = t->nanoseconds;
  unsigned long s = t->seconds;
  char* ptr = buf + 1+8+8+8+1;
  *--ptr = 0;
  *--ptr = int2hex(n); n >>= 4;
  *--ptr = int2hex(n); n >>= 4;
  *--ptr = int2hex(n); n >>= 4;
  *--ptr = int2hex(n); n >>= 4;
  *--ptr = int2hex(n); n >>= 4;
  *--ptr = int2hex(n); n >>= 4;
  *--ptr = int2hex(n); n >>= 4;
  *--ptr = int2hex(n);
  *--ptr = int2hex(s); s >>= 4;
  *--ptr = int2hex(s); s >>= 4;
  *--ptr = int2hex(s); s >>= 4;
  *--ptr = int2hex(s); s >>= 4;
  *--ptr = int2hex(s); s >>= 4;
  *--ptr = int2hex(s); s >>= 4;
  *--ptr = int2hex(s); s >>= 4;
  *--ptr = int2hex(s);
  *--ptr = '0';
  *--ptr = '0';
  *--ptr = '0';
  *--ptr = '0';
  *--ptr = '0';
  *--ptr = '0';
  *--ptr = '0';
  *--ptr = '4';
  *--ptr = '@';
  return true;
}


syntax highlighted by Code2HTML, v. 0.9.1