From ed6d0bdbf4b69061dd5db69d823c2ee39b98dcdd Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sat, 17 Nov 2012 02:41:22 +0100 Subject: Q-Register "*" holding the current filename --- qbuffers.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'qbuffers.cpp') diff --git a/qbuffers.cpp b/qbuffers.cpp index 4a45fd4..cbeee0b 100644 --- a/qbuffers.cpp +++ b/qbuffers.cpp @@ -76,7 +76,7 @@ QRegister::set_string(const gchar *str) dirty_check_enabled = false; interface.ssm(SCI_BEGINUNDOACTION); - interface.ssm(SCI_SETTEXT, 0, (sptr_t)str); + interface.ssm(SCI_SETTEXT, 0, (sptr_t)(str ? : "")); interface.ssm(SCI_ENDUNDOACTION); dirty_check_enabled = true; @@ -154,6 +154,8 @@ QRegisterTable::initialize(void) /* search string and status register */ initialize_register("_"); + /* current buffer name and number */ + initialize_register("*"); } void @@ -290,9 +292,24 @@ Ring::edit(const gchar *filename) } } + /* TODO: set integer part */ + qregisters["*"]->set_string(current->filename); + return new_in_ring; } +void +Ring::undo_edit(void) +{ + current->dot = interface.ssm(SCI_GETCURRENTPOS); + + undo.push_var(current); + current->undo_edit(); + + /* TODO: undo integer part */ + qregisters["*"]->undo_set_string(); +} + #if 0 /* -- cgit v1.2.3