From fddab16ebc89386e4311e195361e611a2eee4b96 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Wed, 21 Nov 2012 01:07:31 +0100 Subject: Gq command to insert Q-Register at current DOT --- qbuffers.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'qbuffers.cpp') 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; @@ -833,6 +834,28 @@ StateSetQRegString::done(const gchar *str) throw (Error) return &States::start; } +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) { -- cgit v1.2.3