summaryrefslogtreecommitdiff
path: root/type.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'type.cpp')
-rw-r--r--type.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/type.cpp b/type.cpp
index 62176deb..1a0bec58 100644
--- a/type.cpp
+++ b/type.cpp
@@ -355,3 +355,26 @@ void Enumeration::AddMemberWithValue(const string& name, uint64_t value)
{
BNAddEnumerationMemberWithValue(m_enum, name.c_str(), value);
}
+
+
+bool BinaryNinja::PreprocessSource(const string& source, const string& fileName, string& output, string& errors,
+ const vector<string>& includeDirs)
+{
+ char* outStr;
+ char* errorStr;
+ const char** includeDirList = new const char*[includeDirs.size()];
+
+ for (size_t i = 0; i < includeDirs.size(); i++)
+ includeDirList[i] = includeDirs[i].c_str();
+
+ bool result = BNPreprocessSource(source.c_str(), fileName.c_str(), &outStr, &errorStr,
+ includeDirList, includeDirs.size());
+
+ output = outStr;
+ errors = errorStr;
+
+ BNFreeString(outStr);
+ BNFreeString(errorStr);
+ delete[] includeDirList;
+ return result;
+}