diff options
author | Ian C <ianc@noddybox.co.uk> | 2010-11-08 16:16:00 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2010-11-08 16:16:00 +0000 |
commit | 8c47b8879a1623d11509b18296a7ba285c01417f (patch) | |
tree | 1f29d21772e9a8b2523dbef18c117ebbb048d7e0 | |
parent | 5f7fdc1a37689968a3856f86e8388e3cda6c2ebd (diff) |
Tidied up cfile tools
-rw-r--r-- | cfile.c | 48 | ||||
-rw-r--r-- | cfile8.c | 46 |
2 files changed, 82 insertions, 12 deletions
@@ -1,55 +1,91 @@ /* Convert a binary file to a C u_long array */ +#include <stdlib.h> #include <stdio.h> #include <errno.h> int main(int argc, char *argv[]) { - char *name="bfile"; + const char *name="bfile"; FILE *in,*out; unsigned long num; int col; + int first; + int len; in=stdin; out=stdout; if (argc>1) + { if (!(in=fopen(argv[1],"rb"))) + { perror(argv[0]); + } + } if (argc>2) + { if (!(out=fopen(argv[2],"w"))) + { perror(argv[0]); + } + } if (argc>3) + { name=argv[3]; + } if (argc>1) + { fprintf(out,"/* Auto-generated binary of %s */\n\n",argv[1]); + } else + { fprintf(out,"/* Auto-generated binary */\n\n"); + } fprintf(out,"unsigned long %s[]=\n\t\t\t{",name); col=0; num=0; + first=1; + len=0; while(!feof(in)) - { + { fread(&num,sizeof(unsigned long),1,in); if (col==0) - fprintf(out,"\n\t\t\t"); + { + if (first) + { + fprintf(out,"\n\t\t\t"); + first=0; + } + else + { + fprintf(out,",\n\t\t\t"); + } + } + else + { + fprintf(out,","); + } - fprintf(out,"0x%.8x,",num); + fprintf(out,"0x%.8x",num); col=(col+1)%4; num=0; - } + len++; + } - fprintf(out,"\n\t\t\t};\n"); + fprintf(out,"\n\t\t\t};\n#define %s_LEN %d\n", name, len); fclose(in); fclose(out); + + return 0; } @@ -1,54 +1,88 @@ /* Convert a binary file to a C unsigned char array */ +#include <stdlib.h> #include <stdio.h> #include <errno.h> int main(int argc, char *argv[]) { - char *name="bfile"; + const char *name="bfile"; FILE *in,*out; unsigned char num; int col; + int first; + int len; in=stdin; out=stdout; if (argc>1) + { if (!(in=fopen(argv[1],"rb"))) + { perror(argv[0]); + } + } if (argc>2) + { if (!(out=fopen(argv[2],"w"))) + { perror(argv[0]); + } + } if (argc>3) + { name=argv[3]; + } if (argc>1) + { fprintf(out,"/* Auto-generated binary of %s */\n\n",argv[1]); + } else + { fprintf(out,"/* Auto-generated binary */\n\n"); + } - fprintf(out,"unsigned long %s[]=\n{",name); + fprintf(out,"unsigned char %s[]=\n{",name); col=0; num=0; + first=1; + len=0; while(!feof(in)) { fread(&num,sizeof num,1,in); if (col==0) - fprintf(out,"\n"); + { + if (first) + { + fprintf(out,"\n\t"); + first = 0; + } + else + { + fprintf(out,",\n\t"); + } + } + else + { + fprintf(out,","); + } - fprintf(out,"0x%.2x,",num); + fprintf(out,"0x%.2x",(unsigned)num); - col=(col+1)%16; + col=(col+1)%8; num=0; + len++; } - fprintf(out,"\n};\n"); + fprintf(out,"\n\t};\n#define %s_LEN %d\n", name, len); fclose(in); fclose(out); |