diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-11-17 02:41:22 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-11-17 02:41:22 +0100 |
commit | ed6d0bdbf4b69061dd5db69d823c2ee39b98dcdd (patch) | |
tree | 8e9effd0e8862438e64c5996f8e69bab70cc1876 /qbuffers.cpp | |
parent | 79495eb1e3cf282cce515d15c5be925587b8c483 (diff) | |
download | sciteco-ed6d0bdbf4b69061dd5db69d823c2ee39b98dcdd.tar.gz |
Q-Register "*" holding the current filename
Diffstat (limited to 'qbuffers.cpp')
-rw-r--r-- | qbuffers.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
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<Buffer*>(current); + current->undo_edit(); + + /* TODO: undo integer part */ + qregisters["*"]->undo_set_string(); +} + #if 0 /* |