summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 @@
#define close _close
#define read _read
#endif
+#include <libgen.h>
#ifndef O_BINARY
#define O_BINARY 0
@@ -50,10 +51,14 @@ static off_t filesize(int fd)
static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
{
char filename[256];
+ char filebase[256];
+ char* bn;
FILE* fp;
int i;
snprintf(filename,256,"%s.c",cname);
+ strncpy(filebase, cname, 256);
+ bn = basename(filebase);
fp = fopen(filename,"w+");
if (fp == NULL) {
@@ -62,7 +67,7 @@ static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
}
fprintf(fp,"/* Generated by bin2c */\n\n");
- fprintf(fp,"unsigned char %s[] = {",cname);
+ fprintf(fp,"unsigned char %s[] = {",bn);
for (i=0;i<len;i++) {
if ((i % 16) == 0) {
@@ -83,9 +88,13 @@ static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
static int write_hfile(off_t len, const char* cname)
{
char filename[256];
+ char filebase[256];
+ char* bn;
FILE* fp;
snprintf(filename,256,"%s.h",cname);
+ strncpy(filebase, cname, 256);
+ bn = basename(filebase);
fp = fopen(filename,"w+");
if (fp == NULL) {
fprintf(stderr,"Couldn't open %s\n",filename);
@@ -93,8 +102,8 @@ static int write_hfile(off_t len, const char* cname)
}
fprintf(fp,"/* Generated by bin2c */\n\n");
- fprintf(fp,"#define LEN_%s %d\n",cname,(int)len);
- fprintf(fp,"extern unsigned char %s[];\n",cname);
+ fprintf(fp,"#define LEN_%s %d\n",bn,(int)len);
+ fprintf(fp,"extern unsigned char %s[];\n",bn);
fclose(fp);
return 0;
}