diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-12-04 04:23:21 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-12-04 04:57:17 +0100 |
commit | 99bc57227170fea32cb3dbf923a4b4ab00aca1cc (patch) | |
tree | cf089be3a5abc30c8f70f2f14c6e18ed4592f761 | |
parent | 575c9f45ec0f338e1d22032b98773d3ff3386bc9 (diff) | |
download | sciteco-99bc57227170fea32cb3dbf923a4b4ab00aca1cc.tar.gz |
search-delete command (FD)
* new base for searc-replace command states
-rw-r--r-- | parser.cpp | 1 | ||||
-rw-r--r-- | search.cpp | 14 | ||||
-rw-r--r-- | search.h | 18 |
3 files changed, 27 insertions, 6 deletions
@@ -1015,6 +1015,7 @@ StateStart::custom(gchar chr) throw (Error) StateFCommand::StateFCommand() : State() { transitions['\0'] = this; + transitions['D'] = &States::searchdelete; transitions['S'] = &States::replace; transitions['R'] = &States::replacedefault; } @@ -13,6 +13,7 @@ namespace States { StateSearch search; StateSearchAll searchall; + StateSearchDelete searchdelete; StateReplace replace; StateReplace_insert replace_insert; StateReplaceDefault replacedefault; @@ -494,9 +495,9 @@ StateSearchAll::done(const gchar *str) throw (Error) } State * -StateReplace::done(const gchar *str) throw (Error) +StateSearchDelete::done(const gchar *str) throw (Error) { - BEGIN_EXEC(&States::replace_insert); + BEGIN_EXEC(&States::start); StateSearch::done(str); @@ -507,13 +508,20 @@ StateReplace::done(const gchar *str) throw (Error) undo.push_msg(SCI_UNDO); + return &States::start; +} + +State * +StateReplace::done(const gchar *str) throw (Error) +{ + StateSearchDelete::done(str); return &States::replace_insert; } State * StateReplaceDefault::done(const gchar *str) throw (Error) { - StateReplace::done(str); + StateSearchDelete::done(str); return &States::replacedefault_insert; } @@ -48,20 +48,31 @@ private: State *done(const gchar *str) throw (Error); }; -class StateReplace : public StateSearch { +class StateSearchDelete : public StateSearch { public: - StateReplace() : StateSearch(false) {} + StateSearchDelete(bool last = true) : StateSearch(last) {} protected: State *done(const gchar *str) throw (Error); }; +class StateReplace : public StateSearchDelete { +public: + StateReplace() : StateSearchDelete(false) {} + +private: + State *done(const gchar *str) throw (Error); +}; + class StateReplace_insert : public StateInsert { private: void initial(void) throw (Error) {} }; -class StateReplaceDefault : public StateReplace { +class StateReplaceDefault : public StateSearchDelete { +public: + StateReplaceDefault() : StateSearchDelete(false) {} + private: State *done(const gchar *str) throw (Error); }; @@ -75,6 +86,7 @@ private: namespace States { extern StateSearch search; extern StateSearchAll searchall; + extern StateSearchDelete searchdelete; extern StateReplace replace; extern StateReplace_insert replace_insert; extern StateReplaceDefault replacedefault; |