Skip to content

Commit 8d7d1f6

Browse files
committed
improved diagnostic info
1 parent a83b7d1 commit 8d7d1f6

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

wiki/TemplateParser.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ private void template_body(WikiScanner sh, StringBuilder sb, WikiPage wp, Frame
103103
rep = invocation_body(sh, wp, parent);
104104
}
105105
if (rep == null) {
106-
sh.dumpString("Ops, something wrong!");
106+
sh.dumpString("Unexpected error, probably caused by unbalanced curly brackets");
107107
sh.setPointer(p2);
108108
} else {
109109
int end = sh.getPointer();
@@ -136,6 +136,9 @@ private boolean parameter_holder(WikiScanner sh, StringBuilder sb, WikiPage wp,
136136
if (param_name != null) {
137137
String result = parent == null ? null : parent.getTemplateParameter(param_name);
138138
String def_value = sh.getChar('|') ? sh.getStringParameter(null) : null;
139+
while (sh.getChar('|')) {//ignore any further parameter(s)
140+
sh.getStringParameter(null);
141+
}
139142
if (sh.getSequence("}}}")) {
140143
if (result == null)
141144
result = def_value == null ? "{{{" + param_name + "}}}" : parseParameter(def_value, wp, parent);//use literal or default value

wiki/TestSuite.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,12 @@ private void do_parser_eval_tests(TemplateParser tp) throws ParseException {//au
156156
testEvaluate(tp, "{{#ifeq: 1233.00 | 1233 |equal | not}}", wp, "equal");
157157
// testEvaluate(tp, "{{#time: Y-m-d }}", wp, "2024-01-01");
158158
testEvaluate(tp, "{{#time:d F Y|1988-02-28|nl}}", wp, "28 februari 1988");
159-
testEvaluate(tp, "{{#time: r|2000 December 20}}", wp, "<span class=\"error\">textbook:2000 December 20</span>");
159+
testEvaluate(tp, "{{#time: r|26. Oct 81}}", wp, "Mon, 26 Oct 1981 00:00:00 +0000");
160+
testEvaluate(tp, "{{#time: r|26 Oct 1981, 12:49:16}}", wp, "Mon, 26 Oct 1981 12:49:16 +0000");
161+
testEvaluate(tp, "{{#time: r|Oct 26th 1981}}", wp, "Mon, 26 Oct 1981 00:00:00 +0000");
162+
testEvaluate(tp, "{{#time: r|October 26 1981}}", wp, "Mon, 26 Oct 1981 00:00:00 +0000");
163+
testEvaluate(tp, "{{#time: r|26.10.1981}}", wp, "Mon, 26 Oct 1981 00:00:00 +0000");
164+
testEvaluate(tp, "{{#time: r|2000 December 20}}", wp, "<strong class=\"error\">textbook:2000 December 20</strong>");
160165
testEvaluate(tp, "{{#iferror: {{#time: Y-m-d }} | error | correct }}", wp, "correct");
161166
testEvaluate(tp, "{{#iferror: {{#time: r|2000 December 20}} | error | correct }}", wp, "error");
162167
testEvaluate(tp, "{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 2 }}", wp, "bar/baz");

wiki/parserfunctions/Invoke.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent)
5454
boolean trace_calls = wp.getTrace_calls();
5555
String module_name = tp.parseParameter( parameters.get(0), wp, parent);
5656
String function_name = tp.parseParameter( parameters.get(1), wp, parent);
57-
if (trace_calls)
58-
System.out.print("MODULE:" + module_name + "." + function_name + "(");
5957
Map<String, String> parameterMap = new LinkedHashMap<>();//skip first two parameter (module and function names)
6058
int pos = 1;
6159
for (int i = 2; i < parameters.size(); i++) {
@@ -68,13 +66,13 @@ public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent)
6866
parameterMap.put(Integer.toString(pos++), param);//unnamed parameter
6967
}
7068
}
71-
if (trace_calls) {
72-
System.out.println(parameterMap);
73-
System.out.println(")");
74-
}
69+
if (trace_calls)
70+
System.out.println("MODULE:" + module_name + "." + function_name + "(" + parameterMap + ")");
7571
try {
7672
return sle.invoke(module_name, function_name, parent, parameterMap, trace_calls);
7773
} catch (LuaError | ScribuntoException ex) {
74+
if (!trace_calls)
75+
System.out.println("MODULE:" + module_name + "." + function_name + "(" + parameterMap + ")");
7876
ex.printStackTrace();//debugging
7977
return format_error("Module error: " + ex.getMessage());
8078
}

wiki/parserfunctions/Time.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent)
148148
try {
149149
date = new StringToTime(dateTimeParameter);
150150
} catch (StringToTimeException e) {
151-
return "<span class=\"error\">"+wp.getPagename()+":"+dateTimeParameter+"</span>";
151+
return format_error(wp.getPagename()+":"+dateTimeParameter);
152152
}
153153
} else {
154154
date = new Date(System.currentTimeMillis());

0 commit comments

Comments
 (0)