diff options
-rw-r--r-- | tools/build/ChangeLog | 6 | ||||
-rw-r--r-- | tools/build/configure.ac | 4 | ||||
-rw-r--r-- | tools/build/rtems-bin2c.c | 18 |
3 files changed, 15 insertions, 13 deletions
diff --git a/tools/build/ChangeLog b/tools/build/ChangeLog index 06f46a69c9..d80c52528e 100644 --- a/tools/build/ChangeLog +++ b/tools/build/ChangeLog @@ -1,3 +1,9 @@ +2010-07-30 Ralf Corsépius <ralf.corsepius@rtems.org> + + * configure.ac: Check for libgen.h, basename. + * rtems-bin2c.c: Use basename(3) instead of strrchr cascade. + Introduce ifbasename. Use ifbasename in generated files. + 2010-07-29 Ralf Corsépius <ralf.corsepius@rtems.org> * rtems-bin2c.c: Add -C and -H options. diff --git a/tools/build/configure.ac b/tools/build/configure.ac index 7d6d204ec5..16ef5e7c88 100644 --- a/tools/build/configure.ac +++ b/tools/build/configure.ac @@ -13,8 +13,8 @@ AM_INIT_AUTOMAKE([no-define foreign 1.10]) AM_MAINTAINER_MODE AC_PROG_CC -AC_CHECK_HEADERS([getopt.h]) -AC_CHECK_FUNCS(strerror strtol) +AC_CHECK_HEADERS([getopt.h libgen.h]) +AC_CHECK_FUNCS(strerror strtol basename) RTEMS_PATH_KSH diff --git a/tools/build/rtems-bin2c.c b/tools/build/rtems-bin2c.c index b8e39e8090..57a6642a24 100644 --- a/tools/build/rtems-bin2c.c +++ b/tools/build/rtems-bin2c.c @@ -29,6 +29,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <libgen.h> #ifndef PATH_MAX #define PATH_MAX 1024 @@ -111,15 +112,10 @@ void process(const char *ifname, const char *ofname) } /* find basename */ - if ((cp = strrchr(ifname, '/')) != NULL) - ++cp; - else { - if ((cp = strrchr(ifname, '\\')) != NULL) - ++cp; - else - cp = ifname; - } - strcpy(buf, cp); + char *ifbasename = strdup(ifname); + ifbasename = basename(ifbasename); + + strcpy(buf, ifbasename); for (p = buf; *p != '\0'; ++p) if (!isalnum(*p)) *p = '_'; @@ -136,7 +132,7 @@ void process(const char *ifname, const char *ofname) "\n" "#include <sys/types.h>\n" "\n", - ifname + ifbasename ); /* print structure */ @@ -190,7 +186,7 @@ void process(const char *ifname, const char *ofname) "\n" "#include <sys/types.h>\n" "\n", - obasename, /* header */ + ifbasename, /* header */ obasename, /* ifndef */ obasename /* define */ ); |