blob: 9ffc4030946812dd392ef6aa927fe6e64cff331d [file] [log] [blame]
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
static const char digits[] =
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
long a64l(const char* s) {
int e;
uint32_t x = 0;
for (e = 0; e < 36 && *s; e += 6, s++)
x |= (strchr(digits, *s) - digits) << e;
return x;
}
char* l64a(long x0) {
static char s[7];
char* p;
uint32_t x = x0;
for (p = s; x; p++, x >>= 6)
*p = digits[x & 63];
*p = 0;
return s;
}