2 * $Id: decode-b.c,v 1.1 1994/07/22 06:22:43 morioka Exp morioka $
8 int get_base64_char_value(int chr)
10 if( ('A' <= chr) && (chr <= 'Z') ){
13 else if( ('a' <= chr) && (chr <= 'z') ){
14 return chr - 'a' + 26;
16 else if( ('0' <= chr) && (chr <= '9') ){
17 return chr - '0' + 52;
35 unsigned long int value;
36 unsigned char* buf = (void*)&value;
38 while(fgets(str, 128, rfp)){
40 if( (*sp == '\r') || (*sp == '\n') ) break;
41 value = get_base64_char_value(*sp++) * 64 * 64 * 64;
42 ret = get_base64_char_value(*sp++);
43 value += ret * 64 * 64;
44 ret = get_base64_char_value(*sp++);
47 ret = get_base64_char_value(*sp++);
50 fwrite(&buf[1], 1, 3, wfp);
53 fwrite(&buf[1], 1, 2, wfp);
58 fwrite(&buf[1], 1, 1, wfp);