[rtems-tools commit] bin2c: Improve file name sanitation

Sebastian Huber sebh at rtems.org
Mon Dec 2 06:06:03 UTC 2019


Module:    rtems-tools
Branch:    master
Commit:    83b8f1f2a5838a5d56e15c70d44348e3e393e3f7
Changeset: http://git.rtems.org/rtems-tools/commit/?id=83b8f1f2a5838a5d56e15c70d44348e3e393e3f7

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Dec  2 06:43:12 2019 +0100

bin2c: Improve file name sanitation

Only use alpha-numeric characters for header guards.

---

 misc/bin2c/rtems-bin2c.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/misc/bin2c/rtems-bin2c.c b/misc/bin2c/rtems-bin2c.c
index 1e59ac5..7ed79dd 100644
--- a/misc/bin2c/rtems-bin2c.c
+++ b/misc/bin2c/rtems-bin2c.c
@@ -42,6 +42,15 @@ int zeroterminated = 0;
 int createC = 1;
 int createH = 1;
 
+static void sanitize_file_name(char *p)
+{
+  while (*p != '\0') {
+    if (!isalnum((unsigned char)*p)) /* cast to avoid negative indexing */
+      *p = '_';
+    ++p;
+  }
+}
+
 int myfgetc(FILE *f)
 {
   int c = fgetc(f);
@@ -55,7 +64,7 @@ int myfgetc(FILE *f)
 void process(const char *ifname, const char *ofname, const char *forced_name)
 {
   FILE *ifile, *ocfile, *ohfile;
-  char buf[PATH_MAX+1], *p;
+  char buf[PATH_MAX+1];
   char obasename[PATH_MAX+1];
   char ocname[PATH_MAX+5];
   char ohname[PATH_MAX+5];
@@ -132,10 +141,7 @@ void process(const char *ifname, const char *ofname, const char *forced_name)
   ifbasename = basename(ifbasename_to_free);
 
   strcpy(buf, ifbasename);
-  for (p = buf; *p != '\0'; ++p) {
-    if (!isalnum((unsigned char)*p)) /* cast to avoid negative indexing */
-      *p = '_';
-  }
+  sanitize_file_name(buf);
 
   if ( createC ) {
     /* print C file header */
@@ -191,18 +197,12 @@ void process(const char *ifname, const char *ofname, const char *forced_name)
   if ( createH ) {
     /* print H file header */
     char hbasename[PATH_MAX];
-    char* p;
     /* Clean up the file name if it is an abs path */
     strcpy(
       hbasename,
       obasename
     );
-    p = hbasename;
-    while (*p != '\0') {
-      if (*p < '0' || *p > 'z')
-        *p = '_';
-      ++p;
-    }
+    sanitize_file_name(hbasename);
     fprintf(
       ohfile,
       "/*\n"



More information about the vc mailing list