int main(int argc, char **argv) { if(argc != 2) return -1; FILE *file = fopen(argv[1], "r"); fseek(file, 0, SEEK_END); unsigned size = ftell(file); fseek(file, 0, SEEK_SET); char _buf[size]; fread(_buf, size, 1, file); char *pos = _buf, *buf = _buf; char br; while(*buf) { while(*buf && !within(*buf, " \n\t;\"")) ++buf; // Breaks br = *buf; *buf = '\0'; int color_n = 0; char **kwrd = kwrds; while(*kwrd) { if(!**kwrd) { ++color_n; ++kwrd; continue; } if(!strcmp(pos, *kwrd++)) SETCOL(color[color_n]); } fprintf(stderr, "%s\033[0m", pos == buf ? "" : pos); if(br == '\"') { fprintf(stderr, "\033[32m\""); pos = ++buf; while(*buf != '\"') ++buf; *buf = '\0'; fprintf(stderr, "%s\"\033[0m", pos); pos = ++buf; continue; } fprintf(stderr, "%c", br); pos = ++buf; } fprintf(stderr, "\n"); }
int main(int argc, char **argv) { int i,j,k,l,c,h; char fname[16]="test.gif"; unsigned char img[64]; GifColorType ScratchMap2[2]; GifColorType ScratchMap4[4]; GifColorType ScratchMap[16]; #define SETCOL(x,y) {\ ScratchMap[x].Red = (y>>16)&0xFF;\ ScratchMap[x].Green = (y>>8)&0xFF;\ ScratchMap[x].Blue = y&0xFF;\ } SETCOL( 0,0x000000); SETCOL( 1,0x0000AA); SETCOL( 2,0x00AA00); SETCOL( 3,0x00AAAA); SETCOL( 4,0xAA0000); SETCOL( 5,0xAA00AA); SETCOL( 6,0xAA5500); SETCOL( 7,0xAAAAAA); SETCOL( 8,0x555555); SETCOL( 9,0x5555FF); SETCOL(10,0x55FF55); SETCOL(11,0x55FFFF); SETCOL(12,0xFF5555); SETCOL(13,0xFF55FF); SETCOL(14,0xFFFF55); SETCOL(15,0xFFFFFF); for(h=0;h<5;h++) { ScratchMap2[0] = ScratchMap[0]; switch(h) { case 0: ScratchMap2[1] = ScratchMap[2]; break; case 1: ScratchMap2[1] = ScratchMap[7]; break; case 2: ScratchMap2[1] = ScratchMap[12]; break; case 3: ScratchMap2[1] = ScratchMap[11]; break; case 4: ScratchMap2[1] = ScratchMap[0]; ScratchMap2[0] = ScratchMap[2]; break; } colormap = MakeMapObject(2,ScratchMap2); if(colormap==NULL) return -1; for(k=0;k<FONT8X8_CHARS;k++) { sprintf(fname,"0%i%2.2x.gif",h,k+FONT8X8_FIRST); l = 0; for(j=0;j<8;j++) { c = font8x8[k][j]; for(i=0;i<8;i++) { if(c&0x80) img[l] = 1; else img[l] = 0; l++;c<<=1; } } SaveGif(fname,img,colormap,2,8,8); } } #if 1 /* special PCB characters */ for(h=0;h<5;h++) { if(h==0) { ScratchMap4[0] = ScratchMap[0]; ScratchMap4[1] = ScratchMap[1]; ScratchMap4[2] = ScratchMap[2]; ScratchMap4[3] = ScratchMap[4]; colormap = MakeMapObject(4,ScratchMap4); if(colormap==NULL) return -2; } if(h==1) { ScratchMap4[0] = ScratchMap[0]; ScratchMap4[1] = ScratchMap[7]; ScratchMap4[2] = ScratchMap[12]; ScratchMap4[3] = ScratchMap[11]; colormap = MakeMapObject(4,ScratchMap4); if(colormap==NULL) return -3; } if(h==4) { ScratchMap4[0] = ScratchMap[2]; ScratchMap4[1] = ScratchMap[0]; ScratchMap4[2] = ScratchMap[0]; ScratchMap4[3] = ScratchMap[0]; colormap = MakeMapObject(4,ScratchMap4); if(colormap==NULL) return -3; } for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[63]=2; } else { img[63]=h; } sprintf(fname,"0%i00.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { for(i=0;i<64;i++) img[i]=1; img[18]=2;img[19]=2;img[20]=2;img[21]=2; img[26]=2;img[27]=0;img[28]=0;img[29]=2; img[34]=2;img[35]=0;img[36]=0;img[37]=2; img[42]=2;img[43]=2;img[44]=2;img[45]=2; img[24]=3;img[25]=3; img[32]=3;img[33]=3; } else { for(i=0;i<64;i++) img[i]=h; img[18]=h;img[19]=h;img[20]=h;img[21]=h; img[26]=h;img[27]=0;img[28]=0;img[29]=h; img[34]=h;img[35]=0;img[36]=0;img[37]=h; img[42]=h;img[43]=h;img[44]=h;img[45]=h; img[24]=h;img[25]=h; img[32]=h;img[33]=h; } sprintf(fname,"0%i01.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { img[30]=3;img[31]=3; img[38]=3;img[39]=3; } else { img[30]=h;img[31]=h; img[38]=h;img[39]=h; } sprintf(fname,"0%i03.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { img[24]=1;img[25]=1; img[32]=1;img[33]=1; } else { img[24]=h;img[25]=h; img[32]=h;img[33]=h; } sprintf(fname,"0%i02.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { for(i=0;i<64;i++) img[i]=1; for(i=0;i<8;i++){img[24+i]=3;img[32+i]=3;} } else { for(i=0;i<64;i++) img[i]=h; } sprintf(fname,"0%i04.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[18]=2;img[19]=2;img[20]=2;img[21]=2; img[26]=2;img[27]=0;img[28]=0;img[29]=2; img[34]=2;img[35]=0;img[36]=0;img[37]=2; img[42]=2;img[43]=2;img[44]=2;img[45]=2; img[ 3]=1;img[ 4]=1; img[11]=1;img[12]=1; img[24]=3;img[25]=3; img[32]=3;img[33]=3; } else { img[18]=h;img[19]=h;img[20]=h;img[21]=h; img[26]=h;img[27]=0;img[28]=0;img[29]=h; img[34]=h;img[35]=0;img[36]=0;img[37]=h; img[42]=h;img[43]=h;img[44]=h;img[45]=h; img[ 3]=h;img[ 4]=h; img[11]=h;img[12]=h; img[24]=h;img[25]=h; img[32]=h;img[33]=h; } sprintf(fname,"0%i05.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { img[30]=3;img[31]=3; img[38]=3;img[39]=3; } else { img[30]=h;img[31]=h; img[38]=h;img[39]=h; } sprintf(fname,"0%i07.gif",h); SaveGif(fname,img,colormap,4,8,8); img[24]=0;img[25]=0; img[32]=0;img[33]=0; sprintf(fname,"0%i06.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[24]=1;img[32]=1;img[40]=1; img[33]=1;img[41]=1;img[49]=1; img[42]=1;img[50]=1;img[58]=1; img[51]=1;img[59]=1; img[60]=1; } else { img[24]=h;img[32]=h;img[40]=h; img[33]=h;img[41]=h;img[49]=h; img[42]=h;img[50]=h;img[58]=h; img[51]=h;img[59]=h; img[60]=h; } sprintf(fname,"0%i08.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[18]=2;img[19]=2;img[20]=2;img[21]=2; img[26]=2;img[27]=0;img[28]=0;img[29]=2; img[34]=2;img[35]=0;img[36]=0;img[37]=2; img[42]=2;img[43]=2;img[44]=2;img[45]=2; img[51]=1;img[52]=1; img[59]=1;img[60]=1; img[24]=3;img[25]=3; img[32]=3;img[33]=3; } else { img[18]=h;img[19]=h;img[20]=h;img[21]=h; img[26]=h;img[27]=0;img[28]=0;img[29]=h; img[34]=h;img[35]=0;img[36]=0;img[37]=h; img[42]=h;img[43]=h;img[44]=h;img[45]=h; img[51]=h;img[52]=h; img[59]=h;img[60]=h; img[24]=h;img[25]=h; img[32]=h;img[33]=h; } sprintf(fname,"0%i09.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { img[30]=3;img[31]=3; img[38]=3;img[39]=3; } else { img[30]=h;img[31]=h; img[38]=h;img[39]=h; } sprintf(fname,"0%i0b.gif",h); SaveGif(fname,img,colormap,4,8,8); img[24]=0;img[25]=0; img[32]=0;img[33]=0; sprintf(fname,"0%i0a.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[3]=1;img[4]=1;img[5]=1; img[12]=1;img[13]=1;img[14]=1; img[21]=1;img[22]=1;img[23]=1; img[30]=1;img[31]=1; img[39]=1; } else { img[3]=h;img[4]=h;img[5]=h; img[12]=h;img[13]=h;img[14]=h; img[21]=h;img[22]=h;img[23]=h; img[30]=h;img[31]=h; img[39]=h; } sprintf(fname,"0%i0c.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[18]=2;img[19]=2;img[20]=2;img[21]=2; img[26]=2;img[27]=0;img[28]=0;img[29]=2; img[34]=2;img[35]=0;img[36]=0;img[37]=2; img[42]=2;img[43]=2;img[44]=2;img[45]=2; img[ 3]=1;img[ 4]=1; img[11]=1;img[12]=1; img[24]=3;img[25]=3; img[32]=3;img[33]=3; img[51]=1;img[52]=1; img[59]=1;img[60]=1; } else { img[18]=h;img[19]=h;img[20]=h;img[21]=h; img[26]=h;img[27]=0;img[28]=0;img[29]=h; img[34]=h;img[35]=0;img[36]=0;img[37]=h; img[42]=h;img[43]=h;img[44]=h;img[45]=h; img[ 3]=h;img[ 4]=h; img[11]=h;img[12]=h; img[24]=h;img[25]=h; img[32]=h;img[33]=h; img[51]=h;img[52]=h; img[59]=h;img[60]=h; } sprintf(fname,"0%i0d.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { img[30]=3;img[31]=3; img[38]=3;img[39]=3; } else { img[30]=h;img[31]=h; img[38]=h;img[39]=h; } sprintf(fname,"0%i0f.gif",h); SaveGif(fname,img,colormap,4,8,8); img[24]=0;img[25]=0; img[32]=0;img[33]=0; sprintf(fname,"0%i0e.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { for(i=0;i<64;i++) img[i]=1; } else { for(i=0;i<64;i++) img[i]=h; } sprintf(fname,"0%i10.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { for(i=0;i<8;i++){img[24+i]=3;img[32+i]=3;} } else { for(i=0;i<8;i++){img[24+i]=h;img[32+i]=h;} } sprintf(fname,"0%i11.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { for(i=0;i<8;i++){img[3+i*8]=1;img[4+i*8]=1;} } else { for(i=0;i<8;i++){img[3+i*8]=h;img[4+i*8]=h;} } sprintf(fname,"0%i12.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { for(i=0;i<8;i++) img[24+i]=3; for(i=0;i<8;i++) img[32+i]=3; img[18]=0;img[19]=1;img[20]=1;img[21]=0; img[42]=0;img[43]=1;img[44]=1;img[45]=0; } else { for(i=0;i<8;i++) img[24+i]=h; for(i=0;i<8;i++) img[32+i]=h; img[18]=0;img[19]=h;img[20]=h;img[21]=0; img[42]=0;img[43]=h;img[44]=h;img[45]=0; } sprintf(fname,"0%i13.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { for(i=0;i<8;i++){img[6+i*8]=2;img[7+i*8]=2;} for(i=1;i<7;i++){img[4+i*8]=2;img[5+i*8]=2;} for(i=2;i<6;i++) img[3+i*8]=2; } else { for(i=0;i<8;i++){img[6+i*8]=h;img[7+i*8]=h;} for(i=1;i<7;i++){img[4+i*8]=h;img[5+i*8]=h;} for(i=2;i<6;i++) img[3+i*8]=h; } sprintf(fname,"0%i14.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { img[24]=3;img[25]=3;img[26]=3; img[32]=3;img[33]=3;img[34]=3; } else { img[24]=h;img[25]=h;img[26]=h; img[32]=h;img[33]=h;img[34]=h; } sprintf(fname,"0%i15.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { for(i=0;i<8;i++){img[i*8]=2;img[1+i*8]=2;} for(i=1;i<7;i++){img[2+i*8]=2;img[3+i*8]=2;} for(i=2;i<6;i++) img[4+i*8]=2; } else { for(i=0;i<8;i++){img[i*8]=h;img[1+i*8]=h;} for(i=1;i<7;i++){img[2+i*8]=h;img[3+i*8]=h;} for(i=2;i<6;i++) img[4+i*8]=h; } sprintf(fname,"0%i16.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { img[29]=3;img[30]=3;img[31]=3; img[37]=3;img[38]=3;img[39]=3; } else { img[29]=h;img[30]=h;img[31]=h; img[37]=h;img[38]=h;img[39]=h; } sprintf(fname,"0%i17.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { for(i=0;i<64;i++) img[i]=2; } else { for(i=0;i<64;i++) img[i]=h; } img[19]=0;img[20]=0; img[26]=0;img[27]=0;img[28]=0;img[29]=0; img[34]=0;img[35]=0;img[36]=0;img[37]=0; img[43]=0;img[44]=0; sprintf(fname,"0%i18.gif",h); SaveGif(fname,img,colormap,4,8,8); img[0]=0;img[1]=0;img[8]=0; img[6]=0;img[7]=0;img[15]=0; img[56]=0;img[57]=0;img[48]=0; img[62]=0;img[63]=0;img[55]=0; sprintf(fname,"0%i19.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { for(i=0;i<64;i++) { if(i>=16 && i<48) img[i]=3; else img[i]=0; } } else { for(i=0;i<64;i++) { if(i>=16 && i<48) img[i]=h; else img[i]=0; } } sprintf(fname,"0%i1a.gif",h); SaveGif(fname,img,colormap,4,8,8); if(h==0||h==4) { for(i=0;i<64;i++) img[i]=3; } else { for(i=0;i<64;i++) img[i]=h; } sprintf(fname,"0%i1b.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[16]=3;img[24]=3;img[32]=3; img[9]=3;img[17]=3;img[25]=3; img[2]=3;img[10]=3;img[18]=3; img[3]=3;img[11]=3; img[4]=3; } else { img[16]=h;img[24]=h;img[32]=h; img[9]=h;img[17]=h;img[25]=h; img[2]=h;img[10]=h;img[18]=h; img[3]=h;img[11]=h; img[4]=h; } sprintf(fname,"0%i1c.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[31]=3;img[39]=3;img[47]=3; img[38]=3;img[46]=3;img[54]=3; img[45]=3;img[53]=3;img[61]=3; img[52]=3;img[60]=3; img[59]=3; } else { img[31]=h;img[39]=h;img[47]=h; img[38]=h;img[46]=h;img[54]=h; img[45]=h;img[53]=h;img[61]=h; img[52]=h;img[60]=h; img[59]=h; } sprintf(fname,"0%i1d.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[4]=2; img[12]=2; img[19]=2;img[20]=2;img[21]=2; img[27]=2;img[28]=2;img[29]=2; img[34]=2;img[35]=2;img[36]=2;img[37]=2;img[38]=2; img[42]=2;img[43]=2;img[44]=2;img[45]=2;img[46]=2; img[49]=2;img[50]=2;img[52]=2;img[54]=2;img[55]=2; img[57]=2;img[60]=2;img[63]=2; } else { img[4]=h; img[12]=h; img[19]=h;img[20]=h;img[21]=h; img[27]=h;img[28]=h;img[29]=h; img[34]=h;img[35]=h;img[36]=h;img[37]=h;img[38]=h; img[42]=h;img[43]=h;img[44]=h;img[45]=h;img[46]=h; img[49]=h;img[50]=h;img[52]=h;img[54]=h;img[55]=h; img[57]=h;img[60]=h;img[63]=h; } sprintf(fname,"0%i1e.gif",h); SaveGif(fname,img,colormap,4,8,8); for(i=0;i<64;i++) img[i]=0; if(h==0||h==4) { img[60]=2; img[52]=2; img[43]=2;img[44]=2;img[45]=2; img[35]=2;img[36]=2;img[37]=2; img[26]=2;img[27]=2;img[28]=2;img[29]=2;img[30]=2; img[18]=2;img[19]=2;img[20]=2;img[21]=2;img[22]=2; img[9]=2;img[10]=2;img[12]=2;img[14]=2;img[15]=2; img[1]=2;img[4]=2;img[7]=2; } else { img[60]=h; img[52]=h; img[43]=h;img[44]=h;img[45]=h; img[35]=h;img[36]=h;img[37]=h; img[26]=h;img[27]=h;img[28]=h;img[29]=h;img[30]=h; img[18]=h;img[19]=h;img[20]=h;img[21]=h;img[22]=h; img[9]=h;img[10]=h;img[12]=h;img[14]=h;img[15]=h; img[1]=h;img[4]=h;img[7]=h; } sprintf(fname,"0%i1f.gif",h); SaveGif(fname,img,colormap,4,8,8); } #endif return 0; }