summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binaryninjaapi.cpp11
-rw-r--r--binaryninjaapi.h1
-rw-r--r--binaryninjacore.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/binaryninjaapi.cpp b/binaryninjaapi.cpp
index b774cf2b..e70c45ab 100644
--- a/binaryninjaapi.cpp
+++ b/binaryninjaapi.cpp
@@ -142,6 +142,17 @@ string BinaryNinja::GetPathRelativeToUserPluginDirectory(const string& rel)
}
+string BinaryNinja::GetPathRelativeToUserDirectory(const string& rel)
+{
+ char* path = BNGetPathRelativeToUserDirectory(rel.c_str());
+ if (!path)
+ return rel;
+ string result = path;
+ BNFreeString(path);
+ return result;
+}
+
+
bool BinaryNinja::ExecuteWorkerProcess(const string& path, const vector<string>& args, const DataBuffer& input,
string& output, string& errors, bool stdoutIsText, bool stderrIsText)
{
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 4b8f522b..349baa79 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -588,6 +588,7 @@ namespace BinaryNinja
std::string GetPathRelativeToBundledPluginDirectory(const std::string& path);
std::string GetPathRelativeToUserPluginDirectory(const std::string& path);
+ std::string GetPathRelativeToUserDirectory(const std::string& path);
bool ExecuteWorkerProcess(const std::string& path, const std::vector<std::string>& args, const DataBuffer& input,
std::string& output, std::string& errors, bool stdoutIsText=false, bool stderrIsText=true);
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 5b9bcb03..17e171f7 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1998,6 +1998,7 @@ extern "C"
BINARYNINJACOREAPI char* BNGetPathRelativeToBundledPluginDirectory(const char* path);
BINARYNINJACOREAPI char* BNGetPathRelativeToUserPluginDirectory(const char* path);
+ BINARYNINJACOREAPI char* BNGetPathRelativeToUserDirectory(const char* path);
BINARYNINJACOREAPI bool BNExecuteWorkerProcess(const char* path, const char* args[],
BNDataBuffer* input, char** output, char** error,