On Tue, Jul 25, 2000 at 12:42:35PM -0400, Hammond, Daniel wrote:
> http://www.w3.org/TR/xpath#section-Function-Calls
> 3.2 Function Calls
> A FunctionCall expression is evaluated by using the FunctionName to identify
> a function in the expression evaluation context function library, evaluating
> each of the Arguments, converting each argument to the type required by the
> function, and finally calling the function, passing it the converted
> arguments.
Okay, I think this patch fixes the string case.
I haven't thought about numbers yet.
Index: ga/src/Sablot/engine/expr.cpp
===================================================================
RCS file: /usr/local/cvs-master/ga/src/Sablot/engine/expr.cpp,v
retrieving revision 1.5
diff -u -r1.5 expr.cpp
--- ga/src/Sablot/engine/expr.cpp 2000/07/17 15:42:16 1.5
+++ ga/src/Sablot/engine/expr.cpp 2000/07/25 19:09:31
@@ -2325,10 +2325,9 @@
(atomsNumber > y)) Err(situation, ET_BAD_ARGS_N);
#define checkIsNodeset(x) if (atoms[x] -> type != EX_NODESET)\
Err(situation, ET_BAD_ARG_TYPE);
-#define checkIsString(x) if (atoms[x] -> type != EX_STRING)\
- Err(situation, ET_BAD_ARG_TYPE);
-#define checkIsString2(x,y) if ((atoms[x] -> type != EX_STRING) || \
- (atoms[y] -> type != EX_STRING)) Err(situation, ET_BAD_ARG_TYPE);
+// Everything is a string, in a cosmic sense
+#define checkIsString(x)
+#define checkIsString2(x,y)
#define checkIsNumber(x) if (atoms[x] -> type != EX_NUMBER)\
Err(situation, ET_BAD_ARG_TYPE);
.robin.
--
A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal--Panama!