summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2022-09-14 16:31:04 -0400
committerGlenn Smith <glenn@vector35.com>2022-09-29 21:02:19 -0400
commitbac2b01e488e6a58dd3d16d6148dc5bea16be162 (patch)
tree4f52bbc52b1b5aa37c76fe540330f11a8f43e855
parent0d42e48c833106c7865ca5822986b787ba44f858 (diff)
Optimized api for getting the title of the last undo entry
-rw-r--r--binaryninjaapi.h2
-rw-r--r--binaryninjacore.h2
-rw-r--r--filemetadata.cpp26
3 files changed, 30 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 5c04816b..964e0636 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1530,6 +1530,8 @@ namespace BinaryNinja {
std::vector<UndoEntry> GetRedoEntries();
std::optional<UndoEntry> GetLastUndoEntry();
std::optional<UndoEntry> GetLastRedoEntry();
+ std::optional<std::string> GetLastUndoEntryTitle();
+ std::optional<std::string> GetLastRedoEntryTitle();
void ClearUndoEntries();
bool OpenProject();
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 0087c9bf..fcd7deb4 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -3192,6 +3192,8 @@ extern "C"
BINARYNINJACOREAPI BNUndoEntry* BNGetRedoEntries(BNFileMetadata* file, size_t* count);
BINARYNINJACOREAPI BNUndoEntry BNGetLastUndoEntry(BNFileMetadata* file);
BINARYNINJACOREAPI BNUndoEntry BNGetLastRedoEntry(BNFileMetadata* file);
+ BINARYNINJACOREAPI char* BNGetLastUndoEntryTitle(BNFileMetadata* file);
+ BINARYNINJACOREAPI char* BNGetLastRedoEntryTitle(BNFileMetadata* file);
BINARYNINJACOREAPI void BNFreeUndoEntries(BNUndoEntry* entries, size_t count);
BINARYNINJACOREAPI void BNClearUndoEntries(BNFileMetadata* file);
diff --git a/filemetadata.cpp b/filemetadata.cpp
index 5d01c3b0..9b1dfee3 100644
--- a/filemetadata.cpp
+++ b/filemetadata.cpp
@@ -453,6 +453,32 @@ std::optional<UndoEntry> FileMetadata::GetLastRedoEntry()
}
+std::optional<std::string> FileMetadata::GetLastUndoEntryTitle()
+{
+ char* title = BNGetLastUndoEntryTitle(m_object);
+ if (!title)
+ {
+ return std::nullopt;
+ }
+ std::string titleStr = title;
+ BNFreeString(title);
+ return titleStr;
+}
+
+
+std::optional<std::string> FileMetadata::GetLastRedoEntryTitle()
+{
+ char* title = BNGetLastRedoEntryTitle(m_object);
+ if (!title)
+ {
+ return std::nullopt;
+ }
+ std::string titleStr = title;
+ BNFreeString(title);
+ return titleStr;
+}
+
+
void FileMetadata::ClearUndoEntries()
{
BNClearUndoEntries(m_object);