aboutsummaryrefslogtreecommitdiffhomepage
path: root/qbuffers.cpp
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-19 22:40:31 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-20 06:07:33 +0100
commitf0f420be3d80366a54598f6742ef73114651f3c4 (patch)
tree52566b5c493fe18b22d28a32214d21d9b8152960 /qbuffers.cpp
parent6bf314fa5193872e26e3eaabe222ee1e2a823c08 (diff)
downloadsciteco-f0f420be3d80366a54598f6742ef73114651f3c4.tar.gz
errors when label cannot be found at end of macro invocation
* on the command line the line terminating <ESC> is not accepted when a label was not found
Diffstat (limited to 'qbuffers.cpp')
-rw-r--r--qbuffers.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/qbuffers.cpp b/qbuffers.cpp
index 3c11ab0..e90b505 100644
--- a/qbuffers.cpp
+++ b/qbuffers.cpp
@@ -164,11 +164,16 @@ QRegister::execute(void) throw (State::Error)
try {
macro_execute(str);
+ if (Goto::skip_label)
+ throw State::Error("Label \"%s\" not found",
+ Goto::skip_label);
} catch (...) {
g_free(str);
macro_pc = parent_pc;
States::current = parent_state;
Goto::table = parent_goto_table;
+ g_free(Goto::skip_label);
+ Goto::skip_label = NULL;
throw; /* forward */
}