From bac2b01e488e6a58dd3d16d6148dc5bea16be162 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Wed, 14 Sep 2022 16:31:04 -0400 Subject: Optimized api for getting the title of the last undo entry --- binaryninjaapi.h | 2 ++ binaryninjacore.h | 2 ++ filemetadata.cpp | 26 ++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) 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 GetRedoEntries(); std::optional GetLastUndoEntry(); std::optional GetLastRedoEntry(); + std::optional GetLastUndoEntryTitle(); + std::optional 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 FileMetadata::GetLastRedoEntry() } +std::optional FileMetadata::GetLastUndoEntryTitle() +{ + char* title = BNGetLastUndoEntryTitle(m_object); + if (!title) + { + return std::nullopt; + } + std::string titleStr = title; + BNFreeString(title); + return titleStr; +} + + +std::optional 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); -- cgit v1.3.1