1--- csparse.c~	2010-03-26 23:17:28.082788800 +0900
2+++ csparse.c	2010-03-27 23:00:41.431782400 +0900
3@@ -1425,7 +1425,7 @@
4       arg->expr1 = NULL;
5     }
6     nargs = rearrange_for_call(&(arg->expr1));
7-    if (nargs != arg->function->n_args)
8+    if (arg->function->n_args != -1 && nargs != arg->function->n_args)
9     {
10       return nerr_raise (NERR_PARSE,
11 	  "%s Incorrect number of arguments in call to %s, expected %d, got %d",
12@@ -4441,3 +4442,27 @@
13   return nerr_pass (err);
14 }
15 #endif
16+
17+
18+/* functions for Text::ClearSilver */
19+
20+NEOERR*
21+tcs_eval_expr(CSPARSE* parse, CSARG* arg, CSARG* result) {
22+    return nerr_pass(eval_expr(parse, arg, result));
23+}
24+
25+const char*
26+tcs_var_lookup(CSPARSE* parse, const char* name) {
27+    return var_lookup(parse, name);
28+}
29+
30+long
31+tcs_var_int_lookup(CSPARSE* parse, const char* name) {
32+    return var_int_lookup(parse, name);
33+}
34+
35+HDF*
36+tcs_var_lookup_obj(CSPARSE* parse, const char* name) {
37+    return var_lookup_obj(parse, name);
38+}
39+
40