/* saitou0.c (saitou.c) - Original source Don Yang (uguu.org) Newline = ! (33) Space = ] to ~ (93 to 126) Code = # to [ (35 to 91) 02/28/00 */ #include #define T_BLOCK_BASE (176 - '!') #define TEMPLATE_SIZE (236 + 179 + 226) #define CODE_SIZE 350 #define XOR_KEY 6 char /* Encoded data */ *data = /* aku */ "X" "0[!4cM,!4cK`*!4cJc(!4cHg&!4c$j8f'!&~]9e)" "!'|:d+!)rAc-!*m*:d/!4c(b4e0!1r2e2!/t0e4!-" "y-c6!+|,c6!)f$b(h*c6!(d'b(i)d5!(b*a'`&c)" "c5!'b+`&b'c)c4!&b-_$c'd*c3!&a.h'd+d1!%a/" "g'e+e0!%b-g(d.d/!&c*h'd1d-!(d%g)d4d+!*l," "d7d)!,h-d;c'!.b0c>d%!A`Dc$![7" /* soku */ ")" "35E!'1cA,,!2kE`*!-s@d(!(k(f//g&!)f.e5'f(!+a+)f" "%2f*!?f5f,!=f-*e/!e/!7cAd-!5fAe+!7fBe(!8hBd&" "!:iAd$![7" /* zan */ "S" ",Q0!1bF7!1b?'_6!1c,8b4!2b*a,*d3!2n4f2!${4f.'!" "%y4e5!&f%d-^-d7!4c+b)d9!4c-a'd:!/i('`&d;!" "+l'a+d!&d'`0_&c?!$dAc@!" "$cBc@!$b<^&d$`:!$d9_&l++^$!%f3a'n1_$!&f/c" "(o/_%!(f+c)q*c%!*f&d+f$s&!-n,d)n(!0i-c-k" ")!3d/b0h*!H`7a,![7" "*i]5471[=ohr&o*t*q*`*d*v*r;027*~=h./}tcr" "sth&t:r9b].,b-725-.t--//#r[ (TEMPLATE_SIZE + CODE_SIZE * 2) ? ';' : (x = data [ (rIndex++ - TEMPLATE_SIZE) % (CODE_SIZE + 1) + TEMPLATE_SIZE ]) ? x ^ (plain ? XOR_KEY : 0) : (plain = '\"'); } /* Wrapper (skip some whitespaces) */ int snextchar() { for(x = nextchar(); (x ^ (plain ? 6 : 0)) == ' '; x = nextchar()); return x; } /* Writer */ main() { wIndex = sprintf(output, "char*d="); rIndex = plain = 0; for(fIndex = 1; fIndex < *data + T_BLOCK_BASE;) if( (block = data[fIndex++]) != '!' ) { if( block < ']' ) { if( !plain ) output[wIndex++] = '\"'; for(i = '#' + (plain ? 0 : 1); i < block; i++) output[wIndex++] = snextchar(); output[wIndex++] = plain ? snextchar() : '\"'; } else for(i = ']' - 1; i < block; i++) output[wIndex++] = ' '; } else output[wIndex++] = '\n'; output[wIndex] = 0; puts(output); }