summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
Diffstat (limited to 'base')
-rw-r--r--base/inifile.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/base/inifile.cc b/base/inifile.cc
index 7f6a42dd6..10836baea 100644
--- a/base/inifile.cc
+++ b/base/inifile.cc
@@ -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;