diff options
Diffstat (limited to 'src/qregisters.h')
| -rw-r--r-- | src/qregisters.h | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/qregisters.h b/src/qregisters.h index b2d856d..1ef0564 100644 --- a/src/qregisters.h +++ b/src/qregisters.h @@ -119,10 +119,16 @@ public: virtual gsize get_string_size(void); virtual gint get_character(gint position); + virtual void + exchange_string(QRegisterData ®) + { + string.exchange(reg.string); + } + virtual void undo_exchange_string(QRegisterData ®); + /* - * The QRegisterStack must currently access the - * integer and string fields directly to exchange - * data efficiently. + * The QRegisterStack must currently still access the + * string fields directly to exchange data efficiently. */ friend class QRegisterStack; }; @@ -183,6 +189,25 @@ public: void edit(void); }; +class QRegisterWorkingDir : public QRegister { +public: + QRegisterWorkingDir() : QRegister("$") {} + + void set_string(const gchar *str, gsize len); + void undo_set_string(void); + void append_string(const gchar *str, gsize len) {} + void undo_append_string(void) {} + + gchar *get_string(void); + gsize get_string_size(void); + gint get_character(gint pos); + + void edit(void); + + void exchange_string(QRegisterData ®); + void undo_exchange_string(QRegisterData ®); +}; + class QRegisterTable : private RBTree { class UndoTokenRemove : public UndoTokenWithSize<UndoTokenRemove> { QRegisterTable *table; |
