aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/cmdline.cpp4
-rw-r--r--src/parser.h12
-rw-r--r--src/qregisters.h4
-rw-r--r--src/ring.h4
4 files changed, 17 insertions, 7 deletions
diff --git a/src/cmdline.cpp b/src/cmdline.cpp
index 122712f..e0be9cf 100644
--- a/src/cmdline.cpp
+++ b/src/cmdline.cpp
@@ -200,9 +200,7 @@ process_edit_cmd(gchar key)
break;
case '\t':
- if (States::current == &States::editfile ||
- States::current == &States::savefile ||
- States::current == &States::loadqreg) {
+ if (States::is_file()) {
gchar complete = escape_char == '{' ? ' ' : escape_char;
gchar *new_chars = filename_complete(strings[0],
complete);
diff --git a/src/parser.h b/src/parser.h
index e3c810c..e249c68 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -194,6 +194,12 @@ protected:
virtual State *done(const gchar *str) throw (Error) = 0;
};
+class StateExpectFile : public StateExpectString {
+public:
+ StateExpectFile(bool _building = true, bool _last = true)
+ : StateExpectString(_building, _last) {}
+};
+
class StateStart : public State {
public:
StateStart();
@@ -291,6 +297,12 @@ namespace States {
{
return dynamic_cast<StateExpectString *>(current);
}
+
+ static inline bool
+ is_file()
+ {
+ return dynamic_cast<StateExpectFile *>(current);
+ }
}
extern enum Mode {
diff --git a/src/qregisters.h b/src/qregisters.h
index 58451ed..73ceada 100644
--- a/src/qregisters.h
+++ b/src/qregisters.h
@@ -328,7 +328,7 @@ private:
State *got_register(QRegister &reg) throw (Error);
};
-class StateLoadQReg : public StateExpectString {
+class StateLoadQReg : public StateExpectFile {
private:
State *done(const gchar *str) throw (Error);
};
@@ -380,7 +380,7 @@ private:
State *got_register(QRegister &reg) throw (Error, ReplaceCmdline);
};
-class StateMacroFile : public StateExpectString {
+class StateMacroFile : public StateExpectFile {
private:
State *done(const gchar *str) throw (Error);
};
diff --git a/src/ring.h b/src/ring.h
index ab92b25..3f13d6a 100644
--- a/src/ring.h
+++ b/src/ring.h
@@ -215,7 +215,7 @@ public:
* Command states
*/
-class StateEditFile : public StateExpectString {
+class StateEditFile : public StateExpectFile {
private:
bool allowFilename;
@@ -226,7 +226,7 @@ private:
State *done(const gchar *str) throw (Error);
};
-class StateSaveFile : public StateExpectString {
+class StateSaveFile : public StateExpectFile {
private:
State *done(const gchar *str) throw (Error);
};