Allow the bin2c output filename stem to contain a path.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23557 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2009-11-07 20:03:32 +00:00
parent 513a76e14e
commit 992b57324e

View file

@ -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;
}