aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/qregisters.cpp
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-20 01:29:47 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-20 01:29:47 +0100
commit4282e7d6b2f2cd73e93bf478a4aae4ce92481808 (patch)
tree87ab1d9cb0d8601e61e576dd4d5c39cf59854a78 /src/qregisters.cpp
parentd4f8fb3efcb60cc2cd39ecb7ca65706db4c7b6ad (diff)
downloadsciteco-4282e7d6b2f2cd73e93bf478a4aae4ce92481808.tar.gz
allow a current buffer if we're editing a Q-Register
this eases handling of the "*" register
Diffstat (limited to 'src/qregisters.cpp')
-rw-r--r--src/qregisters.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/qregisters.cpp b/src/qregisters.cpp
index 98edb0b..fdb804b 100644
--- a/src/qregisters.cpp
+++ b/src/qregisters.cpp
@@ -228,9 +228,6 @@ QRegisterBufferInfo::get_integer(void)
{
tecoInt id = 1;
- if (!ring.current)
- return 0;
-
for (Buffer *buffer = ring.first();
buffer != ring.current;
buffer = buffer->next())
@@ -242,7 +239,7 @@ QRegisterBufferInfo::get_integer(void)
gchar *
QRegisterBufferInfo::get_string(void)
{
- return g_strdup(ring.current ? ring.current->filename : "");
+ return g_strdup(ring.current->filename ? : "");
}
void
@@ -252,7 +249,7 @@ QRegisterBufferInfo::edit(void)
QRegisters::view.ssm(SCI_BEGINUNDOACTION);
QRegisters::view.ssm(SCI_SETTEXT, 0,
- (sptr_t)(ring.current ? ring.current->filename : ""));
+ (sptr_t)(ring.current->filename ? : ""));
QRegisters::view.ssm(SCI_ENDUNDOACTION);
QRegisters::view.undo_ssm(SCI_UNDO);
@@ -267,12 +264,14 @@ QRegisterTable::QRegisterTable(bool _undo) : RBTree(), must_undo(_undo)
insert(q);
}
+/*
+ * NOTE: by not making this inline,
+ * we can access QRegisters::current
+ */
void
QRegisterTable::edit(QRegister *reg)
{
reg->edit();
-
- ring.current = NULL;
QRegisters::current = reg;
}