Add the directory where the ini file was found into the #include
search path --HG-- extra : convert_revision : 9a6bceb931613b718bf5a561b354ba9ccb847a78
This commit is contained in:
parent
2eec285391
commit
ff7b6892bc
1 changed files with 16 additions and 0 deletions
|
@ -85,6 +85,17 @@ IniFile::loadCPP(const string &file, vector<char *> &cppArgs)
|
|||
|
||||
tmpf.close();
|
||||
|
||||
const char *cfile = file.c_str();
|
||||
char *dir = basename(cfile);
|
||||
char *dir_arg = NULL;
|
||||
if (*dir != '.' && dir != cfile) {
|
||||
string arg = "-I";
|
||||
arg += dir;
|
||||
|
||||
dir_arg = new char[arg.size() + 1];
|
||||
strcpy(dir_arg, arg.c_str());
|
||||
}
|
||||
|
||||
#ifdef CPP_PIPE
|
||||
if (pipe(fd) == -1)
|
||||
return false;
|
||||
|
@ -120,6 +131,9 @@ IniFile::loadCPP(const string &file, vector<char *> &cppArgs)
|
|||
for (int i = 0; i < arg_count; i++)
|
||||
args[nextArg++] = cppArgs[i];
|
||||
|
||||
if (dir_arg)
|
||||
args[nextArg++] = dir_arg;
|
||||
|
||||
args[nextArg++] = filename;
|
||||
args[nextArg++] = NULL;
|
||||
|
||||
|
@ -135,6 +149,8 @@ IniFile::loadCPP(const string &file, vector<char *> &cppArgs)
|
|||
int retval;
|
||||
waitpid(pid, &retval, 0);
|
||||
|
||||
delete [] dir_arg;
|
||||
|
||||
// check for normal completion of CPP
|
||||
if (!WIFEXITED(retval) || WEXITSTATUS(retval) != 0)
|
||||
return false;
|
||||
|
|
Loading…
Reference in a new issue