diff options
-rw-r--r-- | src/cmdline.cpp | 4 | ||||
-rw-r--r-- | src/parser.h | 12 | ||||
-rw-r--r-- | src/qregisters.h | 4 | ||||
-rw-r--r-- | src/ring.h | 4 |
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 ®) 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 ®) throw (Error, ReplaceCmdline); }; -class StateMacroFile : public StateExpectString { +class StateMacroFile : public StateExpectFile { private: State *done(const gchar *str) throw (Error); }; @@ -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); }; |