php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #34023 [Patch] tidy extension misses getParent
Submitted: 2005-08-07 01:01 UTC Modified: 2006-04-03 13:27 UTC
From: mfischer@php.net Assigned:
Status: Closed Package: Tidy (PECL)
PHP Version: 5CVS-2005-08-07 (dev) OS:
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: mfischer@php.net
New email:
PHP Version: OS:

 

 [2005-08-07 01:01 UTC] mfischer@php.net
Description:
------------
The tidy library provides the getParent function which is currently not exposed to PHP.

This patch enabled the getParent method:

Index: php_tidy.h
===================================================================
RCS file: /repository/php-src/ext/tidy/php_tidy.h,v
retrieving revision 1.25
diff -u -r1.25 php_tidy.h
--- php_tidy.h	25 Apr 2005 20:46:16 -0000	1.25
+++ php_tidy.h	15 Jul 2005 09:59:44 -0000
@@ -89,6 +89,7 @@
 TIDY_NODE_METHOD(isJste);
 TIDY_NODE_METHOD(isAsp);
 TIDY_NODE_METHOD(isPhp);
+TIDY_NODE_METHOD(getParent);
 
 ZEND_BEGIN_MODULE_GLOBALS(tidy)
 	char *default_config;
Index: tidy.c
===================================================================
RCS file: /repository/php-src/ext/tidy/tidy.c,v
retrieving revision 1.65
diff -u -r1.65 tidy.c
--- tidy.c	25 Apr 2005 20:46:16 -0000	1.65
+++ tidy.c	15 Jul 2005 09:59:45 -0000
@@ -291,6 +291,7 @@
 	TIDY_NODE_ME(isJste, NULL)
 	TIDY_NODE_ME(isAsp, NULL)
 	TIDY_NODE_ME(isPhp, NULL)
+	TIDY_NODE_ME(getParent, NULL)
 	{NULL, NULL, NULL}
 };
 
@@ -1668,6 +1669,30 @@
 }
 /* }}} */
 
+/* {{{ proto boolean tidyNode::getParent()
+   Returns the parent node if available or NULL */
+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);


I've been running this patch on a nearly daily basis in a web crawling application for a few thousands documents each run and saw no problems.


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-04-03 13:27 UTC] tony2001@php.net
The patch has been applied to HEAD.
 
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Mon Nov 29 19:03:12 2021 UTC