lew (11/04/82)
char *a[32]; main(){ int i; a[0]="char *a[32];"; a[1]="main(){"; a[2]="\tint i;"; a[3]="\tfor( i=0 ; i<3 ; i++ ) printf(\"%s\\n\",a[i]);"; a[4]="\tfor( i=0 ; i<32 ; i++ ) quote(i);"; a[5]="\tfor( i=3 ; i<32 ; i++ ) printf(\"%s\\n\",a[i]);"; a[6]="}"; a[7]="quote(i)"; a[8]="int i;"; a[9]="{"; a[10]="\tchar *p;"; a[11]="\tprintf(\"\\ta[%d]=\\\"\",i);"; a[12]="\tfor( p=a[i] ; *p ; p++ ){"; a[13]="\t\tswitch( *p ){"; a[14]="\t\tcase '\\n':"; a[15]="\t\t\tprintf(\"\\\\n\");"; a[16]="\t\t\tbreak;"; a[17]="\t\tcase '\\t':"; a[18]="\t\t\tprintf(\"\\\\t\");"; a[19]="\t\t\tbreak;"; a[20]="\t\tcase '\"':"; a[21]="\t\t\tprintf(\"\\\\\\\"\");"; a[22]="\t\t\tbreak;"; a[23]="\t\tcase '\\\\':"; a[24]="\t\t\tprintf(\"\\\\\\\\\");"; a[25]="\t\t\tbreak;"; a[26]="\t\tdefault:"; a[27]="\t\t\tputchar(*p);"; a[28]="\t\t}"; a[29]="\t}"; a[30]="\tprintf(\"\\\";\\n\");"; a[31]="}"; for( i=0 ; i<3 ; i++ ) printf("%s\n",a[i]); for( i=0 ; i<32 ; i++ ) quote(i); for( i=3 ; i<32 ; i++ ) printf("%s\n",a[i]); } quote(i) int i; { char *p; printf("\ta[%d]=\"",i); for( p=a[i] ; *p ; p++ ){ switch( *p ){ case '\n': printf("\\n"); break; case '\t': printf("\\t"); break; case '"': printf("\\\""); break; case '\\': printf("\\\\"); break; default: putchar(*p); } } printf("\";\n"); }