diff options
Diffstat (limited to 'src/qregisters.cpp')
-rw-r--r-- | src/qregisters.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/qregisters.cpp b/src/qregisters.cpp index 17be046..e65365d 100644 --- a/src/qregisters.cpp +++ b/src/qregisters.cpp @@ -49,6 +49,7 @@ namespace States { StateSetQRegInteger setqreginteger; StateIncreaseQReg increaseqreg; StateMacro macro; + StateMacroFile macro_file; StateCopyToQReg copytoqreg; } @@ -591,6 +592,18 @@ StateMacro::got_register(QRegister ®) throw (Error, ReplaceCmdline) } State * +StateMacroFile::done(const gchar *str) throw (Error) +{ + BEGIN_EXEC(&States::start); + + /* don't create new local Q-Registers if colon modifier is given */ + if (!Execute::file(str, !eval_colon())) + throw Error("Cannot execute macro from file \"%s\"", str); + + return &States::start; +} + +State * StateCopyToQReg::got_register(QRegister ®) throw (Error) { tecoInt from, len; |