aboutsummaryrefslogtreecommitdiffhomepage
path: root/search.h
diff options
context:
space:
mode:
Diffstat (limited to 'search.h')
-rw-r--r--search.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/search.h b/search.h
index beb20d4..8a23ac6 100644
--- a/search.h
+++ b/search.h
@@ -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;