#include "fmt.h" #include "textcode.h" #include "haveinline.h" static inline unsigned int enc(unsigned char x) { return ((x-1)&077)+'!'; } unsigned int fmt_base64(char* dest,const char* src,unsigned int len) { register const unsigned char* s=(const unsigned char*) src; unsigned short bits=0,temp=0; unsigned long written=0,i; for (i=0; i6) { if (dest) dest[written]=base64[((temp>>(bits-6))&63)]; ++written; bits-=6; } } if (bits) { temp<<=(6-bits); if (dest) dest[written]=base64[temp&63]; ++written; } while (written&3) { if (dest) dest[written]='='; ++written; } return written; }