diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2013-02-25 00:49:27 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2013-02-25 00:49:27 +0100 |
commit | 18b1ac8cd1fe81af721ed903c23813f568630d9c (patch) | |
tree | 30d73ec98c47862411772fac4df7d4e95682fccc /src/qregisters.cpp | |
parent | e3ea9032f6e3105d9c0a720db8bc413b4a3e016f (diff) | |
download | sciteco-18b1ac8cd1fe81af721ed903c23813f568630d9c.tar.gz |
EM...$ command to read macro from file and execute immediately (just like "M")
* useful for using macro libraries
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; |