aboutsummaryrefslogtreecommitdiffhomepage
path: root/qbuffers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qbuffers.cpp')
-rw-r--r--qbuffers.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/qbuffers.cpp b/qbuffers.cpp
index a3b4651..26034f2 100644
--- a/qbuffers.cpp
+++ b/qbuffers.cpp
@@ -31,6 +31,7 @@ namespace States {
StateLoadQReg loadqreg;
StateCtlUCommand ctlucommand;
StateSetQRegString setqregstring;
+ StateGetQRegString getqregstring;
StateGetQRegInteger getqreginteger;
StateSetQRegInteger setqreginteger;
StateIncreaseQReg increaseqreg;
@@ -834,6 +835,28 @@ StateSetQRegString::done(const gchar *str) throw (Error)
}
State *
+StateGetQRegString::got_register(QRegister *reg) throw (Error)
+{
+ gchar *str;
+
+ BEGIN_EXEC(&States::start);
+
+ str = reg->get_string();
+ if (*str) {
+ interface.ssm(SCI_BEGINUNDOACTION);
+ interface.ssm(SCI_ADDTEXT, strlen(str), (sptr_t)str);
+ interface.ssm(SCI_SCROLLCARET);
+ interface.ssm(SCI_ENDUNDOACTION);
+ ring.dirtify();
+
+ undo.push_msg(SCI_UNDO);
+ }
+ g_free(str);
+
+ return &States::start;
+}
+
+State *
StateGetQRegInteger::got_register(QRegister *reg) throw (Error)
{
BEGIN_EXEC(&States::start);