fix the -I flag stuff for CPP so it actually works right.
authorNathan Binkert <binkertn@umich.edu>
Wed, 30 Jun 2004 18:53:26 +0000 (14:53 -0400)
committerNathan Binkert <binkertn@umich.edu>
Wed, 30 Jun 2004 18:53:26 +0000 (14:53 -0400)
What was I smoking?

--HG--
extra : convert_revision : 24488707a35febe006ec50a1fa7c9fad4842eadc

base/inifile.cc

index 7f6a42dd690cf1593a289b50ad950e5406701021..10836baea1bbce04f8a484805c3248432b68e4ee 100644 (file)
@@ -35,9 +35,7 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
-#if defined(__OpenBSD__) || defined(__APPLE__)
 #include <libgen.h>
-#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -88,10 +86,10 @@ IniFile::loadCPP(const string &file, vector<char *> &cppArgs)
 
     tmpf.close();
 
-    const char *cfile = file.c_str();
-    char *dir = basename(cfile);
+    char *cfile = strcpy(new char[file.size() + 1], file.c_str());
+    char *dir = dirname(cfile);
     char *dir_arg = NULL;
-    if (*dir != '.' && dir != cfile) {
+    if (*dir != '.') {
         string arg = "-I";
         arg += dir;
 
@@ -99,6 +97,8 @@ IniFile::loadCPP(const string &file, vector<char *> &cppArgs)
         strcpy(dir_arg, arg.c_str());
     }
 
+    delete [] cfile;
+
 #ifdef CPP_PIPE
     if (pipe(fd) == -1)
         return false;