- Unicode support

This commit is contained in:
Marcus Boerger 2006-02-26 12:00:39 +00:00
parent e3b7f3fd0d
commit ebef7961a3

View file

@ -458,6 +458,20 @@ static void sxe_prop_dim_write(zval *object, zval *member, zval *value, zend_boo
mynode = node; mynode = node;
switch (Z_TYPE_P(value)) {
case IS_LONG:
case IS_BOOL:
case IS_DOUBLE:
case IS_NULL:
case IS_UNICODE:
convert_to_string(value);
break;
case IS_STRING:
break;
default:
php_error_docref(NULL TSRMLS_CC, E_WARNING, "It is not yet possible to assign complex types to %s", attribs ? "attributes" : "properties");
}
if (node) { if (node) {
if (attribs) { if (attribs) {
if (Z_TYPE_P(member) == IS_LONG) { if (Z_TYPE_P(member) == IS_LONG) {
@ -527,22 +541,8 @@ next_iter:
} }
xmlNewTextChild(mynode->parent, mynode->ns, mynode->name, Z_STRVAL_P(value)); xmlNewTextChild(mynode->parent, mynode->ns, mynode->name, Z_STRVAL_P(value));
} }
} else { } else if (attribs) {
if (attribs) {
switch (Z_TYPE_P(value)) {
case IS_LONG:
case IS_BOOL:
case IS_DOUBLE:
case IS_NULL:
case IS_UNICODE:
convert_to_string(value);
case IS_STRING:
newnode = (xmlNodePtr)xmlNewProp(node, name, Z_STRVAL_P(value)); newnode = (xmlNodePtr)xmlNewProp(node, name, Z_STRVAL_P(value));
break;
default:
php_error_docref(NULL TSRMLS_CC, E_WARNING, "It is not yet possible to assign complex types to attributes");
}
}
} }
} }
@ -1273,7 +1273,7 @@ SXE_METHOD(getName)
GET_NODE(sxe, node); GET_NODE(sxe, node);
namelen = xmlStrlen(node->name); namelen = xmlStrlen(node->name);
RETURN_STRINGL((char*)node->name, namelen, 1); RETURN_ASCII_STRINGL((char*)node->name, namelen, 1);
} }
/* }}} */ /* }}} */