Add curr directory to include path.
Change-Id: I67eba0fd18a703d9349d58446fbafbcd32a08dfb
diff --git a/slang.cpp b/slang.cpp
index 5f3b515..e687c46 100644
--- a/slang.cpp
+++ b/slang.cpp
@@ -109,19 +109,39 @@
mPP->AddPragmaHandler(NULL, new PragmaRecorder(mPragmas));
/* Like ApplyHeaderSearchOptions in InitHeaderSearch.cpp */
- const char*inclDir = getenv("ANDROID_BUILD_TOP");
+ const char *inclDir = getenv("ANDROID_BUILD_TOP");
+ std::vector<DirectoryLookup> SearchList;
if (inclDir) {
char *dirPath = new char[strlen(inclDir) + 33];
strcpy(dirPath, inclDir);
strcpy(dirPath + strlen(inclDir), "/frameworks/base/libs/rs/scriptc");
- std::vector<DirectoryLookup> SearchList;
if (const DirectoryEntry *DE = mFileMgr->getDirectory(dirPath, dirPath + strlen(dirPath))) {
SearchList.push_back(DirectoryLookup(DE, SrcMgr::C_System, false, false));
- HS->SetSearchPaths(SearchList, 1, false);
}
}
+ int siz = 256;
+ char *currDir = new char[siz];
+ while (!getcwd(currDir, siz)) {
+ siz *= 2;
+ }
+
+ if (siz - strlen(currDir) >= 33) {
+ strcpy(currDir + strlen(currDir), "/frameworks/base/libs/rs/scriptc");
+ } else {
+ char *tmp = new char[strlen(currDir) + 33];
+ strcpy(tmp, currDir);
+ strcpy(tmp + strlen(currDir), "/frameworks/base/libs/rs/scriptc");
+ currDir = tmp;
+ }
+
+ if (const DirectoryEntry *DE = mFileMgr->getDirectory(currDir, currDir + strlen(currDir))) {
+ SearchList.push_back(DirectoryLookup(DE, SrcMgr::C_System, false, false));
+ }
+
+ HS->SetSearchPaths(SearchList, 1, false);
+
return;
}