- Upgraded SQLite 3 to version 3.3.12 (Ilia)
- Upgraded PCRE to version 7.0 (Nuno)
- Add --ri switch to CLI which allows to check extension information. (Marcus)
+- Added tidyNode::getParent() method (John, Nuno)
- Fixed bug #40431 (dynamic properties may cause crash in ReflectionProperty
methods). (Tony)
- Fixed bug #40428, imagepstext() doesn't accept optional parameter (Pierre)
--- /dev/null
+--TEST--
+tidyNode::getParent()
+--SKIPIF--
+<?php if (!extension_loaded("tidy")) print "skip"; ?>
+--FILE--
+<?php
+$x = tidy_parse_string("<body><div>Content</div></body>");
+var_dump($x->body()->child[0]->name);
+var_dump($x->body()->child[0]->getParent()->name);
+var_dump($x->root()->getParent());
+?>
+--EXPECT--
+string(3) "div"
+string(4) "body"
+NULL
static TIDY_NODE_METHOD(isJste);
static TIDY_NODE_METHOD(isAsp);
static TIDY_NODE_METHOD(isPhp);
+static TIDY_NODE_METHOD(getParent);
/* }}} */
ZEND_DECLARE_MODULE_GLOBALS(tidy)
TIDY_NODE_ME(isJste, NULL)
TIDY_NODE_ME(isAsp, NULL)
TIDY_NODE_ME(isPhp, NULL)
+ TIDY_NODE_ME(getParent, NULL)
{NULL, NULL, NULL}
};
}
/* }}} */
+/* {{{ proto tidyNode tidyNode::getParent()
+ Returns the parent node if available or NULL */
+static TIDY_NODE_METHOD(getParent)
+{
+ TidyNode parent_node;
+ PHPTidyObj *newobj;
+ TIDY_FETCH_ONLY_OBJECT;
+
+ parent_node = tidyGetParent(obj->node);
+ if(parent_node) {
+ tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC);
+ newobj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC);
+ newobj->node = parent_node;
+ newobj->type = is_node;
+ newobj->ptdoc = obj->ptdoc;
+ newobj->ptdoc->ref_count++;
+ tidy_add_default_properties(newobj, is_node TSRMLS_CC);
+ } else {
+ ZVAL_NULL(return_value);
+ }
+}
+/* }}} */
+
static void _php_tidy_register_nodetypes(INIT_FUNC_ARGS)
{
TIDY_NODE_CONST(ROOT, Root);