Mercurial > xfs_email_hsm
view base85.c @ 0:cd351af3a8d2 migout
import source
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Thu, 27 Mar 2008 20:03:52 -0400 |
parents | |
children |
line wrap: on
line source
#include "types.h" #include "base85.h" int base85_encode(u8 *in, u8 *out, int inlen) { u32 t; u8 *src = in; u8 *dst = out; while (in + inlen > src) { t = ((u32) src[0] << 24) | ((u32) src[1] << 16) | ((u32) src[2] << 8) | ((u32) src[3]); src += 4; /* compression of all zero group */ if (!t) { *dst = 'z'; dst++; continue; } dst[4] = (t % 85) + 33; t /= 85; dst[3] = (t % 85) + 33; t /= 85; dst[2] = (t % 85) + 33; t /= 85; dst[1] = (t % 85) + 33; t /= 85; dst[0] = t + 33; dst += 5; } return (int) (dst - out); }