Thanks, applied.
/ Henrik Grubbström (Lysator)
Previous text:
2004-02-25 11:29: Subject: Bilaga (XMLRPC.pmod.diff) till: Re: XMLRPC patch for 7.2
--- module.pmod Tue Jul 17 13:10:27 2001 +++ module.pmod.new Wed Feb 25 11:26:02 2004 @@ -137,7 +137,7 @@
<!ELEMENT params (param*)>
<!ELEMENT param (value)>
- <!ELEMENT value (boolean|i4|int|double|string|base64|
<!ELEMENT value (#PCDATA|boolean|i4|int|double|string|base64| array|struct|dateTime.iso8601)>
<!ELEMENT boolean (#PCDATA)>
@@ -175,6 +175,10 @@ // We cannot insert 0 integers directly into the parse tree, so // we'll use magic_zero as a placeholder and destruct it afterwards. object magic_zero = class {}();
- // one more fix because some people found the specs too easy and
- // decided you can have <value>test</value> (that is omitting string inside a value)
- object mystring = class { string s; }();
- Parser.XML.Validating xml = Parser.XML.Validating(); array tree = xml-> parse(xml_input,
@@ -202,10 +206,18 @@ { case "methodResponse": case "param":
case "value": case "array": case "fault": return data[0];
case "value":
foreach(data, mixed value)
if(!stringp(value))
{
if(objectp(value) && value->s)
return value->s;
return value;
}
return data[0]; case "i4": case "int": case "boolean":
@@ -213,11 +225,14 @@ case "double": return (float)(data*""); case "string":
mystring->s = data*"";
return mystring; case "name": case "methodName": return data*""; case "base64":
return MIME.decode_base64(data*"");
mystring->s = MIME.decode_base64(data*"");
return mystring; case "methodCall": case "params": case "member":
/ Brevbäraren