summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/textual.cc2
-rw-r--r--test/regress/553.test20
2 files changed, 22 insertions, 0 deletions
diff --git a/src/textual.cc b/src/textual.cc
index 16054445..1c476532 100644
--- a/src/textual.cc
+++ b/src/textual.cc
@@ -810,6 +810,8 @@ void instance_t::apply_directive(char * line)
{
char * b = next_element(line);
string keyword(line);
+ if (! b)
+ throw_(parse_error, _f("Directive 'apply %1%' requires an argument") % keyword);
if (keyword == "account")
apply_account_directive(b);
else if (keyword == "tag")
diff --git a/test/regress/553.test b/test/regress/553.test
new file mode 100644
index 00000000..d7a833af
--- /dev/null
+++ b/test/regress/553.test
@@ -0,0 +1,20 @@
+# Test for missing arguments
+apply account
+apply tag
+apply fixed
+apply rate
+apply year
+
+test -f - bal -> 5
+__ERROR__
+While parsing file "", line 2:
+Error: Directive 'apply account' requires an argument
+While parsing file "", line 3:
+Error: Directive 'apply tag' requires an argument
+While parsing file "", line 4:
+Error: Directive 'apply fixed' requires an argument
+While parsing file "", line 5:
+Error: Directive 'apply rate' requires an argument
+While parsing file "", line 6:
+Error: Directive 'apply year' requires an argument
+end test