diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-11-11 06:31:18 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-11-11 06:31:18 +0100 |
commit | aa5d7ac332d502eda854a69b3baa9bc6bb1293c6 (patch) | |
tree | 3d3ea973b438595f1909c23c3d5116e706fed173 /qbuffers.h | |
parent | d07d857360339ba8a56c1f50e7d3b1647d4b883c (diff) | |
download | sciteco-aa5d7ac332d502eda854a69b3baa9bc6bb1293c6.tar.gz |
support for Qx, Ux, %x and Mx commands
* Mx does not yet use local Q-registers
Diffstat (limited to 'qbuffers.h')
-rw-r--r-- | qbuffers.h | 35 |
1 files changed, 30 insertions, 5 deletions
@@ -39,26 +39,28 @@ public: return g_strcmp0(name, ((QRegister &)entry).name); } - void set_string(const gchar *str); inline document * - get_string(void) + get_document(void) { if (!string) string = (document *)editor_msg(SCI_CREATEDOCUMENT); return string; } + void set_string(const gchar *str); + gchar *get_string(void); + inline void edit(void) { - editor_msg(SCI_SETDOCPOINTER, 0, (sptr_t)get_string()); + editor_msg(SCI_SETDOCPOINTER, 0, (sptr_t)get_document()); editor_msg(SCI_GOTOPOS, dot); } inline void undo_edit(void) { undo.push_msg(SCI_GOTOPOS, dot); - undo.push_msg(SCI_SETDOCPOINTER, 0, (sptr_t)get_string()); + undo.push_msg(SCI_SETDOCPOINTER, 0, (sptr_t)get_document()); } bool load(const gchar *filename); @@ -71,7 +73,7 @@ extern class QRegisterTable : public RBTree { QRegister *reg = new QRegister(name); insert(reg); /* make sure document is initialized */ - reg->get_string(); + reg->get_document(); } public: @@ -252,6 +254,25 @@ private: State *done(const gchar *str); }; +class StateGetQRegInteger : public StateExpectQReg { +private: + State *got_register(QRegister *reg); +}; + +class StateSetQRegInteger : public StateExpectQReg { +private: + State *got_register(QRegister *reg); +}; + +class StateIncreaseQReg : public StateExpectQReg { +private: + State *got_register(QRegister *reg); +}; + +class StateMacro : public StateExpectQReg { +private: + State *got_register(QRegister *reg); +}; namespace States { extern StateFile file; @@ -259,6 +280,10 @@ namespace States { extern StateLoadQReg loadqreg; extern StateCtlUCommand ctlucommand; extern StateSetQRegString setqregstring; + extern StateGetQRegInteger getqreginteger; + extern StateSetQRegInteger setqreginteger; + extern StateIncreaseQReg increaseqreg; + extern StateMacro macro; } /* |