diff options
Diffstat (limited to 'qbuffers.cpp')
-rw-r--r-- | qbuffers.cpp | 23 |
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); |