diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-11-07 20:03:32 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-11-07 20:03:32 +0000 |
commit | 992b57324e60b5b264e9f80f8ddee1da5413a5ad (patch) | |
tree | 50bd921b646a8865939e2563005dcac5e7b34f68 | |
parent | 513a76e14eaedbc83779a862ea5e3991ed348489 (diff) | |
download | rockbox-992b57324e60b5b264e9f80f8ddee1da5413a5ad.tar.gz rockbox-992b57324e60b5b264e9f80f8ddee1da5413a5ad.zip |
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
-rw-r--r-- | rbutil/tools/bin2c.c | 15 |
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) | |||
50 | static int write_cfile(const unsigned char* buf, off_t len, const char* cname) | 51 | static 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) | |||
83 | static int write_hfile(off_t len, const char* cname) | 88 | static 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 | } |