blob: 7d1df225cd8a422175f9a7089dcb19a452b8fabb [file] [log] [blame]
#include <stdint.h>
#include <stdlib.h>
#include <string.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;
}