#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CNT 10

int main(int argc,char **argv)
{
	if(argc<2){
		printf("Usage: %s [file]\n",argv[0]);
		return(1);
	}
	FILE *in=fopen(argv[1],"rb"),*out;
	if(!in){
		perror("Error opening files");
		return(1);
	}
	char *filesz=(char*)malloc(strlen(argv[1])+3);
	sprintf(filesz,"%s.h",argv[1]);
	out=fopen(filesz,"w");
	if(!out){
		perror("Error opening files");
		return(1);
	}
	free(filesz);
	unsigned long sz,p=0;
	int c,i=CNT;
	fseek(in,0,SEEK_END);
	sz=ftell(in);
	rewind(in);
	fprintf(out,"#define EXE_SZ %ld\n\nconst unsigned char exe[]={",sz);
	while((c=fgetc(in))!=EOF){
		if(i==CNT){
			fputs("\n\t",out);
			i=0;
		}
		fprintf(out,"%#04hhX",c);
		i++;
		p++;
		if(p!=sz) fputc(',',out);
	}
	fputs("\n};\n",out);
	fclose(out);
	fclose(in);
	puts("Done");
	return(0);
}
