summaryrefslogtreecommitdiff
path: root/rbutil/tools/bin2c.c
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/tools/bin2c.c')
-rw-r--r--rbutil/tools/bin2c.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/rbutil/tools/bin2c.c b/rbutil/tools/bin2c.c
index 75b44d5df7..36e245133e 100644
--- a/rbutil/tools/bin2c.c
+++ b/rbutil/tools/bin2c.c
@@ -34,6 +34,7 @@
34#define close _close 34#define close _close
35#define read _read 35#define read _read
36#endif 36#endif
37#include <libgen.h>
37 38
38#ifndef O_BINARY 39#ifndef O_BINARY
39#define O_BINARY 0 40#define O_BINARY 0
@@ -50,10 +51,14 @@ static off_t filesize(int fd)
50static int write_cfile(const unsigned char* buf, off_t len, const char* cname) 51static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
51{ 52{
52 char filename[256]; 53 char filename[256];
54 char filebase[256];
55 char* bn;
53 FILE* fp; 56 FILE* fp;
54 int i; 57 int i;
55 58
56 snprintf(filename,256,"%s.c",cname); 59 snprintf(filename,256,"%s.c",cname);
60 strncpy(filebase, cname, 256);
61 bn = basename(filebase);
57 62
58 fp = fopen(filename,"w+"); 63 fp = fopen(filename,"w+");
59 if (fp == NULL) { 64 if (fp == NULL) {
@@ -62,7 +67,7 @@ static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
62 } 67 }
63 68
64 fprintf(fp,"/* Generated by bin2c */\n\n"); 69 fprintf(fp,"/* Generated by bin2c */\n\n");
65 fprintf(fp,"unsigned char %s[] = {",cname); 70 fprintf(fp,"unsigned char %s[] = {",bn);
66 71
67 for (i=0;i<len;i++) { 72 for (i=0;i<len;i++) {
68 if ((i % 16) == 0) { 73 if ((i % 16) == 0) {
@@ -83,9 +88,13 @@ static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
83static int write_hfile(off_t len, const char* cname) 88static int write_hfile(off_t len, const char* cname)
84{ 89{
85 char filename[256]; 90 char filename[256];
91 char filebase[256];
92 char* bn;
86 FILE* fp; 93 FILE* fp;
87 94
88 snprintf(filename,256,"%s.h",cname); 95 snprintf(filename,256,"%s.h",cname);
96 strncpy(filebase, cname, 256);
97 bn = basename(filebase);
89 fp = fopen(filename,"w+"); 98 fp = fopen(filename,"w+");
90 if (fp == NULL) { 99 if (fp == NULL) {
91 fprintf(stderr,"Couldn't open %s\n",filename); 100 fprintf(stderr,"Couldn't open %s\n",filename);
@@ -93,8 +102,8 @@ static int write_hfile(off_t len, const char* cname)
93 } 102 }
94 103
95 fprintf(fp,"/* Generated by bin2c */\n\n"); 104 fprintf(fp,"/* Generated by bin2c */\n\n");
96 fprintf(fp,"#define LEN_%s %d\n",cname,(int)len); 105 fprintf(fp,"#define LEN_%s %d\n",bn,(int)len);
97 fprintf(fp,"extern unsigned char %s[];\n",cname); 106 fprintf(fp,"extern unsigned char %s[];\n",bn);
98 fclose(fp); 107 fclose(fp);
99 return 0; 108 return 0;
100} 109}