From 0882343191078862361937493035030128230878 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Tue, 23 May 2023 20:11:07 -0400 Subject: Undo entry states and reverting --- rust/src/filemetadata.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'rust/src') diff --git a/rust/src/filemetadata.rs b/rust/src/filemetadata.rs index e3449b6e..b0e1c73f 100644 --- a/rust/src/filemetadata.rs +++ b/rust/src/filemetadata.rs @@ -38,6 +38,7 @@ use binaryninjacore_sys::{ BNOpenExistingDatabase, BNOpenProject, BNRedo, + BNRevertUndoActions, BNSaveAutoSnapshot, BNSetFilename, BNUndo, @@ -124,15 +125,21 @@ impl FileMetadata { unsafe { BNIsBackedByDatabase(self.handle, view_type.as_ref().as_ptr() as *const _) } } - pub fn begin_undo_actions(&self) { + pub fn begin_undo_actions(&self) -> BnString { + unsafe { BnString::from_raw(BNBeginUndoActions(self.handle)) } + } + + pub fn commit_undo_actions(&self, id: S) { + let id = id.into_bytes_with_nul(); unsafe { - BNBeginUndoActions(self.handle); + BNCommitUndoActions(self.handle, id.as_ref().as_ptr() as *const _); } } - pub fn commit_undo_actions(&self) { + pub fn revert_undo_actions(&self, id: S) { + let id = id.into_bytes_with_nul(); unsafe { - BNCommitUndoActions(self.handle); + BNRevertUndoActions(self.handle, id.as_ref().as_ptr() as *const _); } } -- cgit v1.3.1