diff options
author | SVN Migration <svn@php.net> | 2003-10-30 10:07:27 +0000 |
---|---|---|
committer | SVN Migration <svn@php.net> | 2003-10-30 10:07:27 +0000 |
commit | e00288b5b25766c2292b2e45596b9bc25d910111 (patch) | |
tree | d217ee89217ebab98202493d6820befb7bfdca6e /ext/tidy | |
parent | 0b3fe789062221deb65f7c0b15c450d9bda9bcbb (diff) | |
download | php-git-php-5.0.0b2.tar.gz |
This commit was manufactured by cvs2svn to create tag 'php_5_0_0b2'.php-5.0.0b2
Diffstat (limited to 'ext/tidy')
-rw-r--r-- | ext/tidy/CREDITS | 2 | ||||
-rw-r--r-- | ext/tidy/README | 122 | ||||
-rw-r--r-- | ext/tidy/TODO | 3 | ||||
-rw-r--r-- | ext/tidy/config.m4 | 35 | ||||
-rw-r--r-- | ext/tidy/examples/cleanhtml.php | 38 | ||||
-rw-r--r-- | ext/tidy/examples/dumpit.php | 93 | ||||
-rw-r--r-- | ext/tidy/examples/urlgrab.php | 60 | ||||
-rw-r--r-- | ext/tidy/libtidy.txt | 12 | ||||
-rw-r--r-- | ext/tidy/package.xml | 74 | ||||
-rw-r--r-- | ext/tidy/php_tidy.h | 238 | ||||
-rw-r--r-- | ext/tidy/tests/001.phpt | 24 | ||||
-rw-r--r-- | ext/tidy/tests/002.phpt | 22 | ||||
-rw-r--r-- | ext/tidy/tests/003.phpt | 25 | ||||
-rw-r--r-- | ext/tidy/tests/004.phpt | 21 | ||||
-rw-r--r-- | ext/tidy/tests/005.html | 1 | ||||
-rw-r--r-- | ext/tidy/tests/005.phpt | 23 | ||||
-rw-r--r-- | ext/tidy/tests/006.phpt | 21 | ||||
-rw-r--r-- | ext/tidy/tests/007.phpt | 36 | ||||
-rw-r--r-- | ext/tidy/tidy.c | 1679 | ||||
-rwxr-xr-x | ext/tidy/tidy.dsp | 108 |
20 files changed, 0 insertions, 2637 deletions
diff --git a/ext/tidy/CREDITS b/ext/tidy/CREDITS deleted file mode 100644 index 1c77b2ff3b..0000000000 --- a/ext/tidy/CREDITS +++ /dev/null @@ -1,2 +0,0 @@ -tidy -John Coggeshall, Ilia Alshanetsky diff --git a/ext/tidy/README b/ext/tidy/README deleted file mode 100644 index 2d4e015176..0000000000 --- a/ext/tidy/README +++ /dev/null @@ -1,122 +0,0 @@ - -README FOR ext/tidy by John Coggeshall <john@php.net> - -Tidy Version: 0.7b - -Tidy is an extension based on Libtidy (http://tidy.sf.net/) and allows a PHP developer -to clean, repair, and traverse HTML, XHTML, and XML documents -- including ones with -embedded scripting languages such as PHP or ASP within them using OO constructs. - ---------------------------------------------------------------------------------------- -!! Important Note !! ---------------------------------------------------------------------------------------- -At this time libtidy has a small memory leak inside the ParseConfigFileEnc() function -used to load configuration from a file. If you intend to use this functionality apply -the "libtidy.txt" patch (cd tidy/src/; patch -p0 < libtidy.txt) to libtidy sources and -then recompile libtidy. ---------------------------------------------------------------------------------------- - -The Tidy extension has two separate APIs, one for general parsing, cleaning, and -repairing and another for document traversal. The general API is provided below: - - tidy_create() Reinitialize the tidy engine - tidy_parse_file($file) Parse the document stored in $file - tidy_parse_string($str) Parse the string stored in $str - - tidy_clean_repair() Clean and repair the document - tidy_diagnose() Diagnose a parsed document - - tidy_setopt($opt, $val) Set a configuration option $opt to $val - tidy_getopt($opt) Retrieve a configuration option - - ** note: $opt is a string representing the option. Although no formal - documentation yet exists for PHP, you can find a description of many - of them at http://www.w3.org/People/Raggett/tidy/ and a list of supported - options in the phpinfo(); output** - - tidy_get_output() Return the cleaned tidy HTML as a string - tidy_get_error_buffer() Return a log of the errors and warnings - returned by tidy - - tidy_get_release() Return the Libtidy release date - tidy_get_status() Return the status of the document - tidy_get_html_ver() Return the major HTML version detected for - the document; - - tidy_is_xhtml() Determines if the document is XHTML - tidy_is_xml() Determines if the document is a generic XML - - tidy_error_count() Returns the number of errors in the document - tidy_warning_count() Returns the number of warnings in the document - tidy_access_count() Returns the number of accessibility-related - warnings in the document. - tidy_config_count() Returns the number of configuration errors found - - tidy_load_config($file) Loads the specified configuration file - tidY_load_config_enc($file, - $enc) Loads the specified config file using the specified - character encoding - tidy_set_encoding($enc) Sets the current character encoding for the document - tidy_save_config($file) Saves the current config to $file - - -Beyond these general-purpose API functions, Tidy also supports the following -functions which are used to retrieve an object for document traversal: - - tidy_get_root() Returns an object starting at the root of the - document - tidy_get_head() Returns an object starting at the <HEAD> tag - tidy_get_html() Returns an object starting at the <HTML> tag - tidy_get_body() Returns an object starting at the <BODY> tag - -All Navigation of the specified document is done via the PHP5 object constructs. -There are two types of objects which Tidy can create. The first is TidyNode, which -represents HTML Tags, Text, and more (see the TidyNode_Type Constants). The second -is TidyAttr, which represents an attribute within an HTML tag (TidyNode). The -functionality of these objects is represented by the following schema: - -class TidyNode { - - public $name; // name of node (i.e. HEAD) - public $value; // value of node (everything between tags) - public $type; // type of node (text, php, asp, etc.) - public $id; // id of node (i.e. TIDY_TAG_HEAD) - - public function attributes(); // an array of attributes (see TidyAttr) - public function children(); // an array of child nodes - - function has_siblings(); // any sibling nodes? - function has_children(); // any child nodes? - - function is_comment(); // is node a comment? - function is_xhtml(); // is document XHTML? - function is_xml(); // is document generic XML (not HTML/XHTML) - function is_text(); // is node text? - function is_html(); // is node an HTML tag? - - function is_jste(); // is jste block? - function is_asp(); // is Microsoft ASP block? - function is_php(); // is PHP block? - - function next(); // returns next node - function prev(); // returns prev node - - /* Searches for a particular attribute in the current node based - on node ID. If found returns a TidyAttr object for it */ - function get_attr($attr_id); - - /* -} - -class TidyAttr { - - public $name; // attribute name i.e. HREF - public $value; // attribute value - public $id; // attribute id i.e. TIDY_ATTR_HREF - -} - -Examples of using these objects to navigate the tree can be found in the examples/ -directory (I suggest looking at urlgrab.php and dumpit.php) - -E-mail thoughts, suggestions, patches, etc. to <john@php.net> diff --git a/ext/tidy/TODO b/ext/tidy/TODO deleted file mode 100644 index 699c207dcb..0000000000 --- a/ext/tidy/TODO +++ /dev/null @@ -1,3 +0,0 @@ -TODO - - - Implement get_nodes() method diff --git a/ext/tidy/config.m4 b/ext/tidy/config.m4 deleted file mode 100644 index 069b3ee6b4..0000000000 --- a/ext/tidy/config.m4 +++ /dev/null @@ -1,35 +0,0 @@ -dnl -dnl $Id$ -dnl - -PHP_ARG_WITH(tidy,for TIDY support, -[ --with-tidy[=DIR] Include TIDY support]) - -if test "$PHP_TIDY" != "no"; then - PHP_NEW_EXTENSION(tidy, tidy.c, $ext_shared) - if test "$PHP_TIDY" != "yes"; then - TIDY_SEARCH_DIRS=$PHP_TIDY - else - TIDY_SEARCH_DIRS="/usr/local /usr" - fi - for i in $TIDY_SEARCH_DIRS; do - if test -f $i/include/tidy/tidy.h; then - TIDY_DIR=$i - TIDY_INCDIR=$i/include/tidy - elif test -f $i/include/tidy.h; then - TIDY_DIR=$i - TIDY_INCDIR=$i/include - fi - done - - if test -z "$TIDY_DIR"; then - AC_MSG_ERROR(Cannot find libtidy) - fi - - TIDY_LIBDIR=$TIDY_DIR/lib - - AC_DEFINE(HAVE_TIDY,1,[ ]) - PHP_SUBST(TIDY_SHARED_LIBADD) - PHP_ADD_LIBRARY_WITH_PATH(tidy, $TIDY_LIBDIR, TIDY_SHARED_LIBADD) - PHP_ADD_INCLUDE($TIDY_INCDIR) -fi diff --git a/ext/tidy/examples/cleanhtml.php b/ext/tidy/examples/cleanhtml.php deleted file mode 100644 index 9d054cda4f..0000000000 --- a/ext/tidy/examples/cleanhtml.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php - - /* - * cleanhtml.php - * - * A simple script to clean and repair HTML,XHTML,PHP,ASP,etc. documents - * if no file is provided, it reads from standard input. - * - * By: John Coggeshall <john@php.net> - * - * Usage: php cleanhtml.php [filename] - * - */ - - if(!isset($_SERVER['argv'][1])) { - $data = file_get_contents("php://stdin"); - tidy_parse_string($data); - } else { - tidy_parse_file($_SERVER['argv'][1]); - } - - tidy_clean_repair(); - - if(tidy_warning_count() || - tidy_error_count()) { - - echo "\n\nThe following errors or warnings occured:\n"; - echo tidy_get_error_buffer(); - echo "\n"; - } - - echo tidy_get_output(); - -?> - - - -
\ No newline at end of file diff --git a/ext/tidy/examples/dumpit.php b/ext/tidy/examples/dumpit.php deleted file mode 100644 index e77b7b9323..0000000000 --- a/ext/tidy/examples/dumpit.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - /* - * dumpit.php - * - * a command-line script which dumps the given HTML, PHP, ASP, XHTML, etc. - * file as it is represented in the document model. - * - * By: John Coggeshall <john@php.net> - * - * Usage; php dumpit.php <filename> - */ - - tidy_parse_file($_SERVER['argv'][1]); - - /* Optionally you can do this here if you want to fix up the document */ - - /* tidy_clean_repair(); */ - - $tree = tidy_get_root(); - dump_tree($tree); - echo "\n"; - - function node_type($type) { - - switch($type) { - - case TIDY_NODETYPE_ROOT: return "Root Node"; - case TIDY_NODETYPE_DOCTYPE: return "DocType Node"; - case TIDY_NODETYPE_COMMENT: return "Comment Node"; - case TIDY_NODETYPE_PROCINS: return "ProcIns Node"; - case TIDY_NODETYPE_TEXT: return "Text Node"; - case TIDY_NODETYPE_START: return "Start Node"; - case TIDY_NODETYPE_END: return "End Node"; - case TIDY_NODETYPE_STARTEND: return "Start/End Node"; - case TIDY_NODETYPE_CDATA: return "CDATA Node"; - case TIDY_NODETYPE_SECTION: return "Section Node"; - case TIDY_NODETYPE_ASP: return "ASP Source Code Node"; - case TIDY_NODETYPE_PHP: return "PHP Source Code Node"; - case TIDY_NODETYPE_JSTE: return "JSTE Source Code"; - case TIDY_NODETYPE_XMLDECL: return "XML Declaration Node"; - default: return "Unknown Node"; - } - } - - function do_leaf($string, $indent) { - for($i = 0; $i < $indent; $i++) { - echo " "; - } - echo $string; - } - - function dump_tree($node, $indent = 0) { - if($node) { - /* Put something there if the node name is empty */ - $nodename = trim(strtoupper($node->name)); - $nodename = (empty($nodename)) ? "[EMPTY]" : $nodename; - - /* Generate the Node, and a pretty name for it */ - do_leaf(" + $nodename (".node_type($node->type).")\n", $indent); - - /* Check to see if this node is a text node. Text nodes are - generated by start/end tags and contain the text in between. - i.e. <B>foo</B> will create a text node with $node->value - equal to 'foo' */ - if($node->type == TIDY_NODETYPE_TEXT) { - do_leaf(" |\n", $indent); - do_leaf(" +---- Value: '{$node->value}'\n", $indent); - } - - /* Any attributes on this node? */ - if(count($node->attributes())) { - do_leaf(" |\n", $indent); - do_leaf(" +---- Attributes\n", $indent); - - /* Cycle through the attributes and display them and their values. */ - foreach($node->attributes() as $attrib) { - do_leaf(" +--{$attrib->name}\n", $indent); - do_leaf(" | +-- Value: {$attrib->value}\n", $indent); - } - } - - /* Recurse along the children to generate the remaining nodes */ - if($node->has_children()) { - foreach($node->children() as $child) { - dump_tree($child, $indent + 3); - } - } - } - } - - echo tidy_get_output(); - -?>
\ No newline at end of file diff --git a/ext/tidy/examples/urlgrab.php b/ext/tidy/examples/urlgrab.php deleted file mode 100644 index 7896792ea5..0000000000 --- a/ext/tidy/examples/urlgrab.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php - - /* - * urlgrab.php - * - * A simple command-line utility to extract all of the URLS contained - * within <A HREF> tags from a document. - * - * By: John Coggeshall <john@php.net> - * - * Usage: php urlgrab.php <file> - * - */ - - /* Parse the document */ - tidy_parse_file($_SERVER['argv'][1]); - - /* Fix up the document */ - tidy_clean_repair(); - - /* Get an object representing everything from the <HTML> tag in */ - $html = tidy_get_html(); - - /* Traverse the document tree */ - print_r(get_links($html)); - - function get_links($node) { - $urls = array(); - - /* Check to see if we are on an <A> tag or not */ - if($node->id == TIDY_TAG_A) { - /* If we are, find the HREF attribute */ - $attrib = $node->get_attr(TIDY_ATTR_HREF); - if($attrib) { - /* Add the value of the HREF attrib to $urls */ - $urls[] = $attrib->value; - } - - } - - /* Are there any children? */ - if($node->has_children()) { - - /* Traverse down each child recursively */ - foreach($node->children() as $child) { - - /* Append the results from recursion to $urls */ - foreach(get_links($child) as $url) { - - $urls[] = $url; - - } - - } - } - - return $urls; - } - -?>
\ No newline at end of file diff --git a/ext/tidy/libtidy.txt b/ext/tidy/libtidy.txt deleted file mode 100644 index 53185d9fc2..0000000000 --- a/ext/tidy/libtidy.txt +++ /dev/null @@ -1,12 +0,0 @@ ---- config.c Mon Jun 9 04:07:55 2003 -+++ config.c Sun Sep 21 16:13:04 2003 -@@ -719,7 +719,8 @@ - } - - fclose( fin ); -- MemFree( cfg->cfgIn ); -+ MemFree( cfg->cfgIn->source.sourceData ); -+ MemFree( cfg->cfgIn ); - cfg->cfgIn = NULL; - } - diff --git a/ext/tidy/package.xml b/ext/tidy/package.xml deleted file mode 100644 index b7f6e26d9b..0000000000 --- a/ext/tidy/package.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1" ?> -<!DOCTYPE package SYSTEM "../pear/package.dtd"> -<package> - <name>tidy</name> - <summary>Tidy HTML Repairing and Parsing</summary> - <maintainers> - <maintainer> - <user>john</user> - <name>John Coggeshall</name> - <email>john@php.net</email> - <role>lead</role> - </maintainer> - <maintainer> - <user>iliaa</user> - <name>Ilia Alshanetsky</name> - <email>ilia@php.net</email> - <role>lead</role> - </maintainer> - </maintainers> - <description> -Tidy is a binding for the Tidy HTML clean and repair utility which -allows you to not only clean and otherwise manipluate HTML documents, -but also traverse the document tree using the Zend Engine 2 OO semantics. - </description> - <license>PHP</license> - <release> - <state>beta</state> - <version>0.7</version> - <date>2003-05-07</date> - <notes> - The tidy extension now works in PHP4 for most tasks, only the parsing - abilities of the extension are not available (ZE2 only). The OO portions - of the extension have been completely re-written and are now stable and - work quite well. - - The way all tidy functions work has also changed slightly. Instead of - calling tidy_create() to create a tidy resource, the tidy resource is - stored internally and used as needed. Thus, all tidy functions no longer - need the initial $tidy parameter to function. If you'd like to reset - tidy to an initial state, you can still call tidy_create(). This change - was done to make tidy faster per-request. - </notes> - <configureoptions> - <configureoption name="with-tidy" default="autodetect" prompt="Tidy library installation dir?"/> - </configureoptions> - <filelist> - <file role="src" name="config.m4"/> - <file role="src" name="tidy.c"/> - <file role="src" name="php_tidy.h"/> - - <file role="doc" name="CREDITS"/> - <file role="doc" name="README"/> - <file role="doc" name="TODO"/> - <file role="doc" name="examples/cleanhtml.php"/> - <file role="doc" name="examples/dumpit.php"/> - <file role="doc" name="examples/urlgrab.php"/> - - <file role="test" name="tests/001.phpt"/> - <file role="test" name="tests/002.phpt"/> - <file role="test" name="tests/003.phpt"/> - <file role="test" name="tests/004.phpt"/> - <file role="test" name="tests/005.phpt"/> - <file role="test" name="tests/005.html"/> - <file role="test" name="tests/006.phpt"/> - <file role="test" name="tests/007.phpt"/> - </filelist> - <deps> - <dep type="php" rel="ge">5.0.0</dep> - </deps> - </release> -</package> -<!-- -vim:et:ts=1:sw=1 ---> diff --git a/ext/tidy/php_tidy.h b/ext/tidy/php_tidy.h deleted file mode 100644 index e170d37086..0000000000 --- a/ext/tidy/php_tidy.h +++ /dev/null @@ -1,238 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2003 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_0.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: John Coggeshall <john@php.net> | - | Ilia Alshanetsky <ilia@php.net> | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - -#ifndef PHP_TIDY_H -#define PHP_TIDY_H - -extern zend_module_entry tidy_module_entry; -#define phpext_tidy_ptr &tidy_module_entry - -#ifdef PHP_WIN32 -#define PHP_TIDY_API __declspec(dllexport) -#else -#define PHP_TIDY_API -#endif - -#ifdef ZTS -#include "TSRM.h" -#endif - -#include "tidyenum.h" -#include "tidy.h" -#include "buffio.h" - -#ifdef ZTS -#define TG(v) TSRMG(tidy_globals_id, zend_tidy_globals *, v) -#else -#define TG(v) (tidy_globals.v) -#endif - -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif - -#define TIDY_RV_FALSE(__t) __t->type = IS_BOOL; __t->value.lval = FALSE -#define TIDY_RV_TRUE(__t) __t->type = IS_BOOL; __t->value.lval = TRUE - -#define REMOVE_NEWLINE(_z) _z->value.str.val[_z->value.str.len-1] = '\0'; _z->value.str.len--; - -#define TIDY_TAG_CONST(tag) REGISTER_LONG_CONSTANT("TIDY_TAG_" #tag, TidyTag_##tag, CONST_CS | CONST_PERSISTENT) -#define TIDY_ATTR_CONST(attr) REGISTER_LONG_CONSTANT("TIDY_ATTR_" #attr, TidyAttr_##attr, CONST_CS | CONST_PERSISTENT) -#define TIDY_NODE_CONST(name, type) REGISTER_LONG_CONSTANT("TIDY_NODETYPE_" #name, TidyNode_##type, CONST_CS | CONST_PERSISTENT) - -#define PHP_ME_MAPPING(name, func_name, arg_types) \ - ZEND_NAMED_FE(name, ZEND_FN(func_name), arg_types) - -#define PHP_NODE_METHOD(name) PHP_FUNCTION(tnm_ ##name) -#define PHP_ATTR_METHOD(name) PHP_FUNCTION(tam_ ##name) -#define PHP_NODE_ME(name, param) PHP_ME_MAPPING(name, tnm_ ##name, param) -#define PHP_ATTR_ME(name, param) PHP_ME_MAPPING(name, tam_ ##name, param) - - - -#define TIDY_REGISTER_OBJECT(_type, _object, _ptr) \ - { \ - tidy_object *obj; \ - obj = (tidy_object*)zend_object_store_get_object(_object TSRMLS_CC); \ - obj->type = is_ ## _type; \ - obj->u._type = _ptr; \ - } - -#define REGISTER_TIDY_CLASS(name, parent) \ - { \ - zend_class_entry ce; \ - INIT_CLASS_ENTRY(ce, "tidy_" # name, tidy_funcs_ ## name); \ - ce.create_object = tidy_object_new_ ## name; \ - tidy_ce_ ## name = zend_register_internal_class_ex(&ce, parent, NULL TSRMLS_CC); \ - tidy_ce_ ## name->ce_flags |= ZEND_ACC_FINAL_CLASS; \ - memcpy(&tidy_object_handlers_ ## name, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); \ - tidy_object_handlers_ ## name.clone_obj = NULL; \ - } - -#define GET_THIS_CONTAINER() \ - PHPTidyObj *obj; \ - { \ - zval *object = getThis(); \ - obj = (PHPTidyObj *)zend_object_store_get_object(object TSRMLS_CC); \ - } - -#define INSTANCIATE_NODE(_zval, _container, _node) \ - tidy_instanciate(tidy_ce_node, _zval TSRMLS_CC); \ - _container = (PHPTidyObj *) zend_object_store_get_object(_zval TSRMLS_CC); \ - _container->node = _node; \ - _container->attr = NULL; \ - _container->type = is_node; \ - tidy_add_default_properities(_container, is_node TSRMLS_CC); - -#define INSTANCIATE_ATTR(_zval, _container, _attr) \ - tidy_instanciate(tidy_ce_attr, _zval TSRMLS_CC); \ - _container = (PHPTidyObj *) zend_object_store_get_object(_zval TSRMLS_CC); \ - _container->node = NULL; \ - _container->attr = _attr; \ - _container->type = is_attr; \ - tidy_add_default_properities(_container, is_attr TSRMLS_CC); - -#define PHP_NODE_METHOD_IS_TYPE(_type, _const) \ -PHP_NODE_METHOD(is_ ##_type) \ -{ \ - GET_THIS_CONTAINER(); \ - if(tidyNodeGetType(obj->node) == _const) {\ - RETURN_TRUE; \ - } else { \ - RETURN_FALSE; \ - } \ -} - -typedef enum { - is_node, - is_attr -} tidy_obj_type; - -struct _PHPTidyDoc { - - TidyDoc doc; - TidyBuffer *errbuf; - zend_bool parsed; -}; - -typedef struct _PHPTidyDoc PHPTidyDoc; -typedef struct _PHPTidyObj PHPTidyObj; - -struct _PHPTidyObj { - zend_object std; - TidyNode node; - TidyAttr attr; - tidy_obj_type type; -}; - - -PHP_MINIT_FUNCTION(tidy); -PHP_MSHUTDOWN_FUNCTION(tidy); -PHP_RINIT_FUNCTION(tidy); -PHP_RSHUTDOWN_FUNCTION(tidy); -PHP_MINFO_FUNCTION(tidy); - -PHP_FUNCTION(tidy_setopt); -PHP_FUNCTION(tidy_getopt); -PHP_FUNCTION(tidy_parse_string); -PHP_FUNCTION(tidy_parse_file); -PHP_FUNCTION(tidy_clean_repair); -PHP_FUNCTION(tidy_repair_string); -PHP_FUNCTION(tidy_repair_file); -PHP_FUNCTION(tidy_diagnose); -PHP_FUNCTION(tidy_get_output); -PHP_FUNCTION(tidy_get_error_buffer); -PHP_FUNCTION(tidy_get_release); -PHP_FUNCTION(tidy_reset_config); -PHP_FUNCTION(tidy_get_config); -PHP_FUNCTION(tidy_get_status); -PHP_FUNCTION(tidy_get_html_ver); -PHP_FUNCTION(tidy_is_xhtml); -PHP_FUNCTION(tidy_is_xml); -PHP_FUNCTION(tidy_error_count); -PHP_FUNCTION(tidy_warning_count); -PHP_FUNCTION(tidy_access_count); -PHP_FUNCTION(tidy_config_count); -PHP_FUNCTION(tidy_load_config); -PHP_FUNCTION(tidy_load_config_enc); -PHP_FUNCTION(tidy_set_encoding); -PHP_FUNCTION(tidy_save_config); - -PHP_FUNCTION(tidy_get_root); -PHP_FUNCTION(tidy_get_html); -PHP_FUNCTION(tidy_get_head); -PHP_FUNCTION(tidy_get_body); - -PHP_NODE_METHOD(__construct); -PHP_NODE_METHOD(attributes); -PHP_NODE_METHOD(children); - -PHP_NODE_METHOD(has_children); -PHP_NODE_METHOD(has_siblings); -PHP_NODE_METHOD(is_comment); -PHP_NODE_METHOD(is_html); -PHP_NODE_METHOD(is_xhtml); -PHP_NODE_METHOD(is_xml); -PHP_NODE_METHOD(is_text); -PHP_NODE_METHOD(is_jste); -PHP_NODE_METHOD(is_asp); -PHP_NODE_METHOD(is_php); - -PHP_NODE_METHOD(next); -PHP_NODE_METHOD(prev); -PHP_NODE_METHOD(get_attr); -PHP_NODE_METHOD(get_nodes); - -/* resource dtor */ -void dtor_TidyDoc(zend_rsrc_list_entry * TSRMLS_DC); - -/* constant register helpers */ -void _php_tidy_register_nodetypes(INIT_FUNC_ARGS); -void _php_tidy_register_tags(INIT_FUNC_ARGS); -void _php_tidy_register_attributes(INIT_FUNC_ARGS); - -ZEND_BEGIN_MODULE_GLOBALS(tidy) - PHPTidyDoc *tdoc; - zend_bool used; - char *default_config; -ZEND_END_MODULE_GLOBALS(tidy) - -#ifdef ZTS -#define TG(v) TSRMG(tidy_globals_id, zend_tidy_globals *, v) -#else -#define TG(v) (tidy_globals.v) -#endif - - - - -#endif - - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: noet sw=4 ts=4 fdm=marker - * vim<600: noet sw=4 ts=4 - */ diff --git a/ext/tidy/tests/001.phpt b/ext/tidy/tests/001.phpt deleted file mode 100644 index 17da6f9874..0000000000 --- a/ext/tidy/tests/001.phpt +++ /dev/null @@ -1,24 +0,0 @@ ---TEST-- -Check for tidy presence ---SKIPIF-- -<?php if (!extension_loaded("tidy")) print "skip"; ?> ---POST-- ---GET-- ---INI-- ---FILE-- -<?php -echo "tidy extension is available"; -/* - you can add regression tests for your extension here - - the output of your test code has to be equal to the - text in the --EXPECT-- section below for the tests - to pass, differences between the output and the - expected text are interpreted as failure - - see php4/README.TESTING for further information on - writing regression tests -*/ -?> ---EXPECT-- -tidy extension is available diff --git a/ext/tidy/tests/002.phpt b/ext/tidy/tests/002.phpt deleted file mode 100644 index 83456091f7..0000000000 --- a/ext/tidy/tests/002.phpt +++ /dev/null @@ -1,22 +0,0 @@ ---TEST-- -tidy_parse_string() ---SKIPIF-- -<?php if (!extension_loaded("tidy")) print "skip"; ?> ---POST-- ---GET-- ---INI-- ---FILE-- -<?php - tidy_parse_string("<HTML></HTML>"); - - echo tidy_get_output(); - -?> ---EXPECT-- -<html> -<head> -<title></title> -</head> -<body> -</body> -</html>
\ No newline at end of file diff --git a/ext/tidy/tests/003.phpt b/ext/tidy/tests/003.phpt deleted file mode 100644 index b008acecdb..0000000000 --- a/ext/tidy/tests/003.phpt +++ /dev/null @@ -1,25 +0,0 @@ ---TEST-- -tidy_clean_repair() ---SKIPIF-- -<?php if (!extension_loaded("tidy")) print "skip"; ?> ---POST-- ---GET-- ---INI-- ---FILE-- -<?php - - tidy_parse_string("<HTML></HTML>"); - tidy_clean_repair(); - - echo tidy_get_output(); - -?> ---EXPECT-- -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<html> -<head> -<title></title> -</head> -<body> -</body> -</html> diff --git a/ext/tidy/tests/004.phpt b/ext/tidy/tests/004.phpt deleted file mode 100644 index ed60a39b27..0000000000 --- a/ext/tidy/tests/004.phpt +++ /dev/null @@ -1,21 +0,0 @@ ---TEST-- -tidy_diagnose() ---SKIPIF-- -<?php if (!extension_loaded("tidy")) print "skip"; ?> ---POST-- ---GET-- ---INI-- ---FILE-- -<?php - tidy_parse_string("<HTML></HTML>"); - tidy_diagnose(); - echo tidy_get_error_buffer(); - -?> ---EXPECT-- - -line 1 column 1 - Warning: missing <!DOCTYPE> declaration -line 1 column 7 - Warning: discarding unexpected </html> -line 1 column 14 - Warning: inserting missing 'title' element -Info: Document content looks like HTML 3.2 -3 warnings, 0 errors were found!
\ No newline at end of file diff --git a/ext/tidy/tests/005.html b/ext/tidy/tests/005.html deleted file mode 100644 index 8c17451f91..0000000000 --- a/ext/tidy/tests/005.html +++ /dev/null @@ -1 +0,0 @@ -<HTML></HTML> diff --git a/ext/tidy/tests/005.phpt b/ext/tidy/tests/005.phpt deleted file mode 100644 index d69a726c8f..0000000000 --- a/ext/tidy/tests/005.phpt +++ /dev/null @@ -1,23 +0,0 @@ ---TEST-- -tidy_parse_file() ---SKIPIF-- -<?php if (!extension_loaded("tidy")) print "skip"; ?> ---POST-- ---GET-- ---INI-- ---FILE-- -<?php - - tidy_parse_file("ext/tidy/tests/005.html"); - - echo tidy_get_output(); - -?> ---EXPECT-- -<html> -<head> -<title></title> -</head> -<body> -</body> -</html>
\ No newline at end of file diff --git a/ext/tidy/tests/006.phpt b/ext/tidy/tests/006.phpt deleted file mode 100644 index 7ea28e79c5..0000000000 --- a/ext/tidy/tests/006.phpt +++ /dev/null @@ -1,21 +0,0 @@ ---TEST-- -Verbose tidy_get_error_buffer() ---SKIPIF-- -<?php if (!extension_loaded("tidy")) print "skip"; ?> ---POST-- ---GET-- ---INI-- ---FILE-- -<?php - - tidy_parse_string("<HTML><asd asdf></HTML>"); - - echo tidy_get_error_buffer(true); - -?> ---EXPECT-- -line 1 column 1 - Warning: missing <!DOCTYPE> declaration -line 1 column 7 - Error: <asd> is not recognized! -line 1 column 7 - Warning: discarding unexpected <asd> -line 1 column 17 - Warning: discarding unexpected </html> -line 1 column 7 - Warning: inserting missing 'title' element
\ No newline at end of file diff --git a/ext/tidy/tests/007.phpt b/ext/tidy/tests/007.phpt deleted file mode 100644 index 9987677df6..0000000000 --- a/ext/tidy/tests/007.phpt +++ /dev/null @@ -1,36 +0,0 @@ ---TEST-- -Verbose tidy_setopt() / tidy_getopt() ---SKIPIF-- -<?php if (!extension_loaded("tidy")) print "skip"; ?> ---POST-- ---GET-- ---INI-- ---FILE-- -<?php - - echo "Current Value of 'tidy-mark': "; - var_dump(tidy_getopt("tidy-mark")); - tidy_setopt($tidy, "tidy-mark", true); - echo "\nNew Value of 'tidy-mark': "; - var_dump(tidy_getopt("tidy-mark")); - echo "Current Value of 'error-file': "; - var_dump(tidy_getopt("error-file")); - tidy_setopt($tidy, "error-file", "foobar"); - echo "\nNew Value of 'error-file': "; - var_dump(tidy_getopt("error-file")); - echo "Current Value of 'tab-size': "; - var_dump(tidy_getopt("tab-size")); - tidy_setopt($tidy, "tab-size", 10); - echo "\nNew Value of 'tab-size': "; - var_dump(tidy_getopt("tab-size")); -?> ---EXPECT-- -Current Value of 'tidy-mark': bool(false) - -New Value of 'tidy-mark': bool(true) -Current Value of 'error-file': string(0) "" - -New Value of 'error-file': string(6) "foobar" -Current Value of 'tab-size': int(8) - -New Value of 'tab-size': int(10)
\ No newline at end of file diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c deleted file mode 100644 index 0714346223..0000000000 --- a/ext/tidy/tidy.c +++ /dev/null @@ -1,1679 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2003 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_0.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: John Coggeshall <john@php.net> | - | Ilia Alshanetsky <ilia@php.net> | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "php.h" -#include "php_tidy.h" -#include "php_ini.h" -#include "ext/standard/info.h" -#include "Zend/zend_API.h" -#include "Zend/zend_hash.h" -#include "safe_mode.h" - -ZEND_DECLARE_MODULE_GLOBALS(tidy); - -#define TIDY_PARSED_CHECK() \ -if(!TG(tdoc)->parsed) { \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "A document must be parsed before executing this function."); \ - RETURN_FALSE; \ -} \ - -#define TIDY_SAFE_MODE_CHECK(filename) \ -if ((PG(safe_mode) && (!php_checkuid(filename, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(filename TSRMLS_CC)) { \ - RETURN_FALSE; \ -} \ - -function_entry tidy_functions[] = { - PHP_FE(tidy_setopt, NULL) - PHP_FE(tidy_getopt, NULL) - PHP_FE(tidy_parse_string, NULL) - PHP_FE(tidy_parse_file, NULL) - PHP_FE(tidy_get_output, NULL) - PHP_FE(tidy_get_error_buffer, NULL) - PHP_FE(tidy_clean_repair, NULL) - PHP_FE(tidy_repair_string, NULL) - PHP_FE(tidy_repair_file, NULL) - PHP_FE(tidy_diagnose, NULL) - PHP_FE(tidy_get_release, NULL) - PHP_FE(tidy_get_config, NULL) - PHP_FE(tidy_get_status, NULL) - PHP_FE(tidy_get_html_ver, NULL) - PHP_FE(tidy_is_xhtml, NULL) - PHP_FE(tidy_is_xml, NULL) - PHP_FE(tidy_error_count, NULL) - PHP_FE(tidy_warning_count, NULL) - PHP_FE(tidy_access_count, NULL) - PHP_FE(tidy_config_count, NULL) - PHP_FE(tidy_load_config, NULL) - PHP_FE(tidy_load_config_enc, NULL) - PHP_FE(tidy_set_encoding, NULL) - PHP_FE(tidy_save_config, NULL) - -#ifdef ZEND_ENGINE_2 - PHP_FE(tidy_get_root, NULL) - PHP_FE(tidy_get_head, NULL) - PHP_FE(tidy_get_html, NULL) - PHP_FE(tidy_get_body, NULL) -#endif - - {NULL, NULL, NULL} -}; - -#ifdef ZEND_ENGINE_2 -#include "zend_default_classes.h" - -static void tidy_object_dtor(void *object, zend_object_handle handle TSRMLS_DC); -static void tidy_object_new(zend_class_entry *class_type, zend_object_handlers *handlers, zend_object_value *retval TSRMLS_DC); - -static zend_object_value tidy_object_new_node(zend_class_entry *class_type TSRMLS_DC); -static zend_object_value tidy_object_new_attr(zend_class_entry *class_type TSRMLS_DC); -static zend_object_value tidy_object_new_exception(zend_class_entry *class_type TSRMLS_DC); - -static zend_class_entry *tidy_get_ce_node(zval *object TSRMLS_DC); -static zend_class_entry *tidy_get_ce_attr(zval *object TSRMLS_DC); - -static zval * tidy_instanciate(zend_class_entry *pce, zval *object TSRMLS_DC); - -zend_class_entry *tidy_ce_node, *tidy_ce_attr, - *tidy_ce_exception; - -static zend_object_handlers tidy_object_handlers_node; -static zend_object_handlers tidy_object_handlers_attr; -static zend_object_handlers tidy_object_handlers_exception; - -function_entry tidy_funcs_node[] = { - - PHP_NODE_ME(__construct, NULL) - PHP_NODE_ME(attributes, NULL) - PHP_NODE_ME(children, NULL) - - PHP_NODE_ME(has_children, NULL) - PHP_NODE_ME(has_siblings, NULL) - PHP_NODE_ME(is_comment, NULL) - PHP_NODE_ME(is_html, NULL) - PHP_NODE_ME(is_text, NULL) - PHP_NODE_ME(is_jste, NULL) - PHP_NODE_ME(is_asp, NULL) - PHP_NODE_ME(is_php, NULL) - - PHP_NODE_ME(next, NULL) - PHP_NODE_ME(prev, NULL) - PHP_NODE_ME(get_attr, NULL) - /*PHP_NODE_ME(get_nodes, NULL) TODO */ - {NULL, NULL, NULL} -}; - -function_entry tidy_funcs_attr[] = { - {NULL, NULL, NULL} -}; - -function_entry tidy_funcs_exception[] = { - {NULL, NULL, NULL} -}; - -#endif - -zend_module_entry tidy_module_entry = { -#if ZEND_MODULE_API_NO >= 20010901 - STANDARD_MODULE_HEADER, -#endif - "tidy", - tidy_functions, - PHP_MINIT(tidy), - PHP_MSHUTDOWN(tidy), - PHP_RINIT(tidy), - NULL, - PHP_MINFO(tidy), -#if ZEND_MODULE_API_NO >= 20010901 - "0.7b", -#endif - STANDARD_MODULE_PROPERTIES -}; - -#ifdef COMPILE_DL_TIDY -ZEND_GET_MODULE(tidy) -#endif - -/* {{{ PHP_INI - */ -PHP_INI_BEGIN() -STD_PHP_INI_ENTRY("tidy.default_config", "", PHP_INI_SYSTEM, OnUpdateString, default_config, zend_tidy_globals, tidy_globals) -PHP_INI_END() -/* }}} */ - -static void tidy_globals_ctor(zend_tidy_globals *g TSRMLS_DC) -{ - g->used = 0; - g->tdoc = pemalloc(sizeof(PHPTidyDoc), 1); - g->tdoc->doc = tidyCreate(); - g->tdoc->parsed = 0; - g->tdoc->errbuf = pemalloc(sizeof(TidyBuffer), 1); - tidyBufInit(g->tdoc->errbuf); - - if(tidySetErrorBuffer(g->tdoc->doc, g->tdoc->errbuf) != 0) { - zend_error(E_ERROR, "Could not set Tidy error buffer"); - } - - tidyOptSetBool(g->tdoc->doc, TidyForceOutput, yes); - tidyOptSetBool(g->tdoc->doc, TidyMark, no); - - /* remember settings so that we can restore them */ - tidyOptSnapshot(g->tdoc->doc); -} - -static void tidy_globals_dtor(zend_tidy_globals *g TSRMLS_DC) -{ - tidyBufFree(g->tdoc->errbuf); - pefree(g->tdoc->errbuf, 1); - tidyRelease(g->tdoc->doc); - pefree(g->tdoc, 1); - g->used = 0; -} - -static void *php_tidy_get_opt_val(TidyOption opt, TidyOptionType *type TSRMLS_DC) -{ - *type = tidyOptGetType(opt); - - switch (*type) { - case TidyString: { - char *val = (char *) tidyOptGetValue(TG(tdoc)->doc, tidyOptGetId(opt)); - if (val) { - return (void *) estrdup(val); - } else { - return (void *) estrdup(""); - } - } - break; - - case TidyInteger: - return (void *) tidyOptGetInt(TG(tdoc)->doc, tidyOptGetId(opt)); - break; - - case TidyBoolean: - return (void *) tidyOptGetBool(TG(tdoc)->doc, tidyOptGetId(opt)); - break; - } - - /* should not happen */ - return NULL; -} - -static char *php_tidy_file_to_mem(char *filename, zend_bool use_include_path TSRMLS_DC) -{ - php_stream *stream; - int len; - char *data = NULL; - - if (!(stream = php_stream_open_wrapper(filename, "rb", (use_include_path ? USE_PATH : 0) | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL))) { - return NULL; - } - if ((len = php_stream_copy_to_mem(stream, &data, PHP_STREAM_COPY_ALL, 0)) > 0) { - /* noop */ - } else if (len == 0) { - data = estrdup(""); - } - php_stream_close(stream); - - return data; -} - -static void php_tidy_quick_repair(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_file) -{ - char *data=NULL, *cfg_file=NULL, *arg1; - int cfg_file_len, arg1_len; - zend_bool use_include_path = 0; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sb", &arg1, &arg1_len, &cfg_file, &cfg_file_len, &use_include_path) == FAILURE) { - RETURN_FALSE; - } - - if (is_file) { - if (!(data = php_tidy_file_to_mem(arg1, use_include_path TSRMLS_CC))) { - RETURN_FALSE; - } - } else { - data = arg1; - } - - if (cfg_file && cfg_file[0]) { - TIDY_SAFE_MODE_CHECK(cfg_file); - if(tidyLoadConfig(TG(tdoc)->doc, cfg_file) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not load configuration file '%s'", cfg_file); - RETVAL_FALSE; - } - TG(used) = 1; - } - - if (data) { - if(tidyParseString(TG(tdoc)->doc, data) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "[Tidy error] %s", TG(tdoc)->errbuf->bp); - RETVAL_FALSE; - } else { - TG(tdoc)->parsed = TRUE; - if (tidyCleanAndRepair(TG(tdoc)->doc) >= 0) { - TidyBuffer output = {0}; - - tidySaveBuffer (TG(tdoc)->doc, &output); - RETVAL_STRING(output.bp, 1); - tidyBufFree(&output); - } else { - RETVAL_FALSE; - } - } - } - - if (is_file) { - efree(data); - } -} - -PHP_MINIT_FUNCTION(tidy) -{ - REGISTER_INI_ENTRIES(); - -#ifdef ZEND_ENGINE_2 - REGISTER_TIDY_CLASS(node, NULL); - REGISTER_TIDY_CLASS(attr, NULL); - REGISTER_TIDY_CLASS(exception, zend_exception_get_default()); - - tidy_object_handlers_node.get_class_entry = tidy_get_ce_node; - tidy_object_handlers_attr.get_class_entry = tidy_get_ce_attr; -#endif - - _php_tidy_register_tags(INIT_FUNC_ARGS_PASSTHRU); - _php_tidy_register_attributes(INIT_FUNC_ARGS_PASSTHRU); - _php_tidy_register_nodetypes(INIT_FUNC_ARGS_PASSTHRU); - - ZEND_INIT_MODULE_GLOBALS(tidy, tidy_globals_ctor, tidy_globals_dtor); - - return SUCCESS; -} - -PHP_MSHUTDOWN_FUNCTION(tidy) -{ -#ifndef ZTS - tidy_globals_dtor(&tidy_globals TSRMLS_CC); -#endif - return SUCCESS; -} - -PHP_RINIT_FUNCTION(tidy) -{ - if (TG(used) && tidyOptDiffThanSnapshot((TG(tdoc))->doc)) { - tidyOptResetToSnapshot((TG(tdoc))->doc); - TG(used) = 0; - } - /* if a user provided a default configuration file, use it */ - if (TG(default_config) && TG(default_config)[0]) { - if (tidyLoadConfig((TG(tdoc))->doc, TG(default_config)) < 0) { - zend_error(E_ERROR, "Unable to load Tidy configuration file at '%s'.", TG(default_config)); - } - TG(used) = 1; - } - return SUCCESS; -} - -PHP_MINFO_FUNCTION(tidy) -{ - TidyIterator itOpt = tidyGetOptionList(TG(tdoc)->doc); - void *opt_value; - TidyOptionType optt; - char buf[255]; - - php_info_print_table_start(); - php_info_print_table_header(2, "Tidy support", "enabled"); - php_info_print_table_row(2, "libTidy Build Date", (char *)tidyReleaseDate()); - php_info_print_table_end(); - - DISPLAY_INI_ENTRIES(); - - php_info_print_table_start(); - php_info_print_table_header(2, "Tidy Configuration Directive", "Value"); - while (itOpt) { - TidyOption opt = tidyGetNextOption(TG(tdoc)->doc, &itOpt); - - opt_value = php_tidy_get_opt_val(opt, &optt TSRMLS_CC); - switch (optt) { - case TidyString: - php_info_print_table_row(2, (char *)tidyOptGetName(opt), (char*)opt_value); - efree(opt_value); - break; - - case TidyInteger: - sprintf(buf, "%d", (int)opt_value); - php_info_print_table_row(2, (char *)tidyOptGetName(opt), (char*)buf); - break; - - case TidyBoolean: - php_info_print_table_row(2, (char *)tidyOptGetName(opt), (opt_value ? "TRUE" : "FALSE")); - break; - } - } - php_info_print_table_end(); -} - -/* {{{ proto bool tidy_parse_string(string input) - Parse a document stored in a string */ -PHP_FUNCTION(tidy_parse_string) -{ - char *input; - int input_len; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &input, &input_len) == FAILURE) { - RETURN_FALSE; - } - - if(tidyParseString(TG(tdoc)->doc, input) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "[Tidy error] %s", TG(tdoc)->errbuf->bp); - RETURN_FALSE; - } - - TG(tdoc)->parsed = TRUE; - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto string tidy_get_error_buffer([boolean detailed]) - Return warnings and errors which occured parsing the specified document*/ -PHP_FUNCTION(tidy_get_error_buffer) -{ - zend_bool detailed = 0; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &detailed) == FAILURE) { - RETURN_FALSE; - } - - TIDY_PARSED_CHECK(); - - if (detailed) { - tidyErrorSummary(TG(tdoc)->doc); - } - - RETVAL_STRING(TG(tdoc)->errbuf->bp, 1); - tidyBufClear(TG(tdoc)->errbuf); -} -/* }}} */ - -/* {{{ proto string tidy_get_output() - Return a string representing the parsed tidy markup */ -PHP_FUNCTION(tidy_get_output) -{ - TidyBuffer output = {0}; - - if (ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - tidySaveBuffer (TG(tdoc)->doc, &output); - - RETVAL_STRING(output.bp, 1); - - tidyBufFree(&output); -} -/* }}} */ - -/* {{{ proto boolean tidy_parse_file(string file [, bool use_include_path]) - Parse markup in file or URI */ -PHP_FUNCTION(tidy_parse_file) -{ - char *inputfile; - int input_len; - zend_bool use_include_path = 0; - char *contents; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &inputfile, &input_len) == FAILURE) { - RETURN_FALSE; - } - - if (!(contents = php_tidy_file_to_mem(inputfile, use_include_path TSRMLS_CC))) { - RETURN_FALSE; - } - - if(tidyParseString(TG(tdoc)->doc, contents) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "[Tidy error] %s", TG(tdoc)->errbuf->bp); - RETVAL_FALSE; - } else { - TG(tdoc)->parsed = TRUE; - RETVAL_TRUE; - } - - efree(contents); -} -/* }}} */ - -/* {{{ proto boolean tidy_clean_repair() - Execute configured cleanup and repair operations on parsed markup */ -PHP_FUNCTION(tidy_clean_repair) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - if (tidyCleanAndRepair(TG(tdoc)->doc) >= 0) { - RETURN_TRUE; - } - - RETURN_FALSE; -} -/* }}} */ - -/* {{{ proto boolean tidy_repair_string(string data [, string config_file]) - Repair a string using an optionally provided configuration file */ -PHP_FUNCTION(tidy_repair_string) -{ - php_tidy_quick_repair(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); -} -/* }}} */ - -/* {{{ proto boolean tidy_repair_file(string filename [, string config_file [, bool use_include_path]]) - Repair a file using an optionally provided configuration file */ -PHP_FUNCTION(tidy_repair_file) -{ - php_tidy_quick_repair(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); -} -/* }}} */ - -/* {{{ proto boolean tidy_diagnose() - Run configured diagnostics on parsed and repaired markup. */ -PHP_FUNCTION(tidy_diagnose) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - if (tidyRunDiagnostics(TG(tdoc)->doc) >= 0) { - RETURN_TRUE; - } - - RETURN_FALSE; -} -/* }}} */ - -/* {{{ proto string tidy_get_release() - Get release date (version) for Tidy library */ -PHP_FUNCTION(tidy_get_release) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - RETURN_STRING((char *)tidyReleaseDate(), 1); -} -/* }}} */ - -/* {{{ proto string tidy_reset_config() - Restore Tidy configuration to default values */ -PHP_FUNCTION(tidy_reset_config) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - RETURN_BOOL(tidyOptResetToSnapshot(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto array tidy_get_config() - Get current Tidy configuarion */ -PHP_FUNCTION(tidy_get_config) -{ - TidyIterator itOpt = tidyGetOptionList(TG(tdoc)->doc); - char *opt_name; - void *opt_value; - TidyOptionType optt; - - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - array_init(return_value); - - while (itOpt) { - TidyOption opt = tidyGetNextOption(TG(tdoc)->doc, &itOpt); - - opt_name = (char *)tidyOptGetName(opt); - opt_value = php_tidy_get_opt_val(opt, &optt TSRMLS_CC); - switch (optt) { - case TidyString: - add_assoc_string(return_value, opt_name, (char*)opt_value, 0); - break; - - case TidyInteger: - add_assoc_long(return_value, opt_name, (long)opt_value); - break; - - case TidyBoolean: - add_assoc_bool(return_value, opt_name, (long)opt_value); - break; - } - } - - return; -} -/* }}} */ - - -/* {{{ proto int tidy_get_status() - Get status of specfied document. */ -PHP_FUNCTION(tidy_get_status) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - RETURN_LONG(tidyStatus(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto int tidy_get_html_ver() - Get the Detected HTML version for the specified document. */ -PHP_FUNCTION(tidy_get_html_ver) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - RETURN_LONG(tidyDetectedHtmlVersion(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto boolean tidy_is_xhtml() - Indicates if the document is a XHTML document. */ -PHP_FUNCTION(tidy_is_xhtml) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - RETURN_BOOL(tidyDetectedXhtml(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto boolean tidy_is_xhtml() - Indicates if the document is a generic (non HTML/XHTML) XML document. */ -PHP_FUNCTION(tidy_is_xml) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - RETURN_BOOL(tidyDetectedGenericXml(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto int tidy_error_count() - Returns the Number of Tidy errors encountered for specified document. */ -PHP_FUNCTION(tidy_error_count) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - RETURN_LONG(tidyErrorCount(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto int tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document. */ -PHP_FUNCTION(tidy_warning_count) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - RETURN_LONG(tidyWarningCount(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto int tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document. */ -PHP_FUNCTION(tidy_access_count) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - RETURN_LONG(tidyAccessWarningCount(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto int tidy_config_count() - Returns the Number of Tidy configuration errors encountered for specified document. */ -PHP_FUNCTION(tidy_config_count) -{ - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - RETURN_LONG(tidyConfigErrorCount(TG(tdoc)->doc)); -} -/* }}} */ - -/* {{{ proto void tidy_load_config(string filename) - Load an ASCII Tidy configuration file */ -PHP_FUNCTION(tidy_load_config) -{ - char *filename; - int filename_len; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) { - RETURN_FALSE; - } - - TIDY_SAFE_MODE_CHECK(filename); - - if(tidyLoadConfig(TG(tdoc)->doc, filename) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not load configuration file '%s'", filename); - RETURN_FALSE; - } - - TG(used) = 1; - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto void tidy_load_config(string filename, string encoding) - Load an ASCII Tidy configuration file with the specified encoding */ -PHP_FUNCTION(tidy_load_config_enc) -{ - char *filename, *encoding; - int enc_len, file_len; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &filename, &file_len, &encoding, &enc_len) == FAILURE) { - RETURN_FALSE; - } - - TIDY_SAFE_MODE_CHECK(filename); - - if(tidyLoadConfigEnc(TG(tdoc)->doc, filename, encoding) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not load configuration file '%s' using encoding '%s'", filename, encoding); - RETURN_FALSE; - } - - TG(used) = 1; - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto boolean tidy_set_encoding(string encoding) - Set the input/output character encoding for parsing markup. - Values include: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, - utf16be, utf16, big5 and shiftjis. */ -PHP_FUNCTION(tidy_set_encoding) -{ - char *encoding; - int enc_len; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &encoding, &enc_len) == FAILURE) { - RETURN_FALSE; - } - - if(tidySetCharEncoding(TG(tdoc)->doc, encoding) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not set encoding '%s'", encoding); - RETURN_FALSE; - } - - TG(used) = 1; - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto boolean tidy_save_config(string filename) - Save current settings to named file. Only non-default values are written. */ -PHP_FUNCTION(tidy_save_config) -{ - char *filename; - int file_len; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &file_len) == FAILURE) { - RETURN_FALSE; - } - - TIDY_SAFE_MODE_CHECK(filename); - - if(tidyOptSaveFile(TG(tdoc)->doc, filename) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not write tidy configuration file '%s'", filename); - RETURN_FALSE; - } - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto boolean tidy_setopt(string option, mixed newvalue) - Updates the configuration settings for the specified tidy document. */ -PHP_FUNCTION(tidy_setopt) -{ - zval *value; - char *optname; - int optname_len; - TidyOption opt; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz", &optname, &optname_len, &value) == FAILURE) { - RETURN_FALSE; - } - - opt = tidyGetOptionByName(TG(tdoc)->doc, optname); - if (!opt) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown Tidy Configuration Option '%s'", optname); - RETURN_FALSE; - } - - switch(tidyOptGetType(opt)) { - case TidyString: - convert_to_string_ex(&value); - if(tidyOptSetValue(TG(tdoc)->doc, tidyOptGetId(opt), Z_STRVAL_P(value))) { - TG(used) = 1; - RETURN_TRUE; - } - break; - - case TidyInteger: - convert_to_long_ex(&value); - if(tidyOptSetInt(TG(tdoc)->doc, tidyOptGetId(opt), Z_LVAL_P(value))) { - TG(used) = 1; - RETURN_TRUE; - } - break; - - case TidyBoolean: - convert_to_long_ex(&value); - if(tidyOptSetBool(TG(tdoc)->doc, tidyOptGetId(opt), Z_LVAL_P(value))) { - TG(used) = 1; - RETURN_TRUE; - } - break; - - default: - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to determine type of Tidy configuration constant to set"); - break; - } - RETURN_FALSE; -} -/* }}} */ - -/* {{{ proto mixed tidy_getopt(string option) - Returns the value of the specified configuration option for the tidy document. */ -PHP_FUNCTION(tidy_getopt) -{ - char *optname; - void *optval; - int optname_len; - TidyOption opt; - TidyOptionType optt; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &optname, &optname_len) == FAILURE) { - RETURN_FALSE; - } - - opt = tidyGetOptionByName(TG(tdoc)->doc, optname); - if (!opt) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown Tidy Configuration Option '%s'", optname); - RETURN_FALSE; - } - - optval = php_tidy_get_opt_val(opt, &optt TSRMLS_CC); - switch (optt) { - case TidyString: - RETVAL_STRING((char *)optval, 0); - break; - - case TidyInteger: - RETURN_LONG((long)optval); - break; - - case TidyBoolean: - if (optval) { - RETURN_TRUE; - } else { - RETURN_NULL(); - } - break; - - default: - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to determine type of Tidy configuration constant to get"); - break; - } - - RETURN_FALSE; -} -/* }}} */ - -#ifdef ZEND_ENGINE_2 -static void tidy_object_dtor(void *object, zend_object_handle handle TSRMLS_DC) -{ - PHPTidyObj *intern = (PHPTidyObj *)object; - - zend_hash_destroy(intern->std.properties); - FREE_HASHTABLE(intern->std.properties); - - efree(object); -} - -static void tidy_object_new(zend_class_entry *class_type, zend_object_handlers *handlers, zend_object_value *retval TSRMLS_DC) -{ - PHPTidyObj *intern; - zval *tmp; - - intern = emalloc(sizeof(PHPTidyObj)); - memset(intern, 0, sizeof(PHPTidyObj)); - intern->std.ce = class_type; - - ALLOC_HASHTABLE(intern->std.properties); - zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0); - zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); - - retval->handle = zend_objects_store_put(intern, tidy_object_dtor, NULL TSRMLS_CC); - retval->handlers = handlers; -} - -static zend_object_value tidy_object_new_node(zend_class_entry *class_type TSRMLS_DC) -{ - zend_object_value retval; - tidy_object_new(class_type, &tidy_object_handlers_node, &retval TSRMLS_CC); - return retval; -} - -static zend_object_value tidy_object_new_attr(zend_class_entry *class_type TSRMLS_DC) -{ - zend_object_value retval; - tidy_object_new(class_type, &tidy_object_handlers_attr, &retval TSRMLS_CC); - return retval; - -} - -static zend_object_value tidy_object_new_exception(zend_class_entry *class_type TSRMLS_DC) -{ - zend_object_value retval; - tidy_object_new(class_type, &tidy_object_handlers_exception, &retval TSRMLS_CC); - return retval; - -} - -static zend_class_entry *tidy_get_ce_node(zval *object TSRMLS_DC) -{ - return tidy_ce_node; -} - -static zend_class_entry *tidy_get_ce_attr(zval *object TSRMLS_DC) -{ - return tidy_ce_attr; -} - -static zval * tidy_instanciate(zend_class_entry *pce, zval *object TSRMLS_DC) -{ - if (!object) { - ALLOC_ZVAL(object); - } - Z_TYPE_P(object) = IS_OBJECT; - object_init_ex(object, pce); - object->refcount = 1; - object->is_ref = 1; - return object; -} - -#define ADD_PROPERITY_STRING(_table, _key, _string) \ - { \ - zval *tmp; \ - MAKE_STD_ZVAL(tmp); \ - if(_string) { \ - ZVAL_STRING(tmp, (char *)_string, 1); \ - } else { \ - ZVAL_EMPTY_STRING(tmp); \ - } \ - zend_hash_update(_table, #_key, sizeof(#_key), (void *)&tmp, sizeof(zval *), NULL); \ - } - -#define ADD_PROPERITY_LONG(_table, _key, _long) \ - { \ - zval *tmp; \ - MAKE_STD_ZVAL(tmp); \ - ZVAL_LONG(tmp, _long); \ - zend_hash_update(_table, #_key, sizeof(#_key), (void *)&tmp, sizeof(zval *), NULL); \ - } - -static void tidy_add_default_properities(PHPTidyObj *obj, tidy_obj_type type TSRMLS_DC) { - - TidyBuffer buf; - - switch(type) { - - case is_node: - memset(&buf, 0, sizeof(buf)); - tidyNodeGetText(TG(tdoc)->doc, obj->node, &buf); - ADD_PROPERITY_STRING(obj->std.properties, value, buf.bp); - tidyBufFree(&buf); - - ADD_PROPERITY_STRING(obj->std.properties, name, tidyNodeGetName(obj->node)); - ADD_PROPERITY_LONG(obj->std.properties, type, tidyNodeGetType(obj->node)); - ADD_PROPERITY_LONG(obj->std.properties, id, tidyNodeGetId(obj->node)); - - break; - case is_attr: - ADD_PROPERITY_STRING(obj->std.properties, name, tidyAttrName(obj->attr)); - ADD_PROPERITY_STRING(obj->std.properties, value, tidyAttrValue(obj->attr)); - ADD_PROPERITY_LONG(obj->std.properties, id, tidyAttrGetId(obj->attr)); - break; - } - -} -/* {{{ proto TidyNode tidy_get_root() - Returns a TidyNode Object representing the root of the tidy parse tree */ -PHP_FUNCTION(tidy_get_root) -{ - PHPTidyObj *obj; - - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - obj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - obj->node = tidyGetRoot(TG(tdoc)->doc); - obj->attr = NULL; - obj->type = is_node; - - tidy_add_default_properities(obj, is_node TSRMLS_CC); - -} -/* }}} */ - -/* {{{ proto TidyNode tidy_get_html() - Returns a TidyNode Object starting from the <HTML> tag of the tidy parse tree */ -PHP_FUNCTION(tidy_get_html) -{ - PHPTidyObj *obj; - - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - obj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - obj->node = tidyGetHtml(TG(tdoc)->doc); - obj->attr = NULL; - obj->type = is_node; - - tidy_add_default_properities(obj, is_node TSRMLS_CC); -} -/* }}} */ - -/* {{{ proto TidyNode tidy_get_head() - Returns a TidyNode Object starting from the <HEAD> tag of the tidy parse tree */ -PHP_FUNCTION(tidy_get_head) -{ - PHPTidyObj *obj; - - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - obj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - obj->node = tidyGetHead(TG(tdoc)->doc); - obj->attr = NULL; - obj->type = is_node; - - tidy_add_default_properities(obj, is_node TSRMLS_CC); -} -/* }}} */ - -/* {{{ proto TidyNode tidy_get_body(resource tidy) - Returns a TidyNode Object starting from the <BODY> tag of the tidy parse tree */ -PHP_FUNCTION(tidy_get_body) -{ - PHPTidyObj *obj; - - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - obj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - obj->node = tidyGetBody(TG(tdoc)->doc); - obj->attr = NULL; - obj->type = is_node; - - tidy_add_default_properities(obj, is_node TSRMLS_CC); -} -/* }}} */ - -/* {{{ proto void tidy_node::tidy_node() - Constructor. */ -PHP_NODE_METHOD(__construct) -{ -} -/* }}} */ - -/* {{{ proto tidy_attr tidy_node::attributes() - Returns an array of attribute objects for node */ -PHP_NODE_METHOD(attributes) -{ - TidyAttr tempattr; - zval *object; - PHPTidyObj *objtemp; - GET_THIS_CONTAINER(); - - tempattr = tidyAttrFirst(obj->node); - - if(tempattr) { - array_init(return_value); - - do { - - MAKE_STD_ZVAL(object); - INSTANCIATE_ATTR(object, objtemp, tempattr); - add_next_index_zval(return_value, object); - - } while((tempattr = tidyAttrNext(tempattr))); - } -} -/* }}} */ - - - -/* {{{ proto tidy_node tidy_node::children() - Returns an array of child nodes */ -PHP_NODE_METHOD(children) -{ - TidyNode tempnode; - zval *object; - PHPTidyObj *objtemp; - GET_THIS_CONTAINER(); - - tempnode = tidyGetChild(obj->node); - - if(tempnode) { - array_init(return_value); - do { - - MAKE_STD_ZVAL(object); - INSTANCIATE_NODE(object, objtemp, tempnode); - add_next_index_zval(return_value, object); - - } while((tempnode = tidyGetNext(tempnode))); - } -} -/* }}} */ - -/* {{{ proto boolean tidy_node::has_children() - Returns true if this node has children */ -PHP_NODE_METHOD(has_children) -{ - GET_THIS_CONTAINER(); - - if(tidyGetChild(obj->node)) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } - -} -/* }}} */ - -/* {{{ proto boolean tidy_node::has_siblings() - Returns true if this node has siblings */ -PHP_NODE_METHOD(has_siblings) -{ - GET_THIS_CONTAINER(); - - if(tidyGetNext(obj->node)) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } - -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_comment() - Returns true if this node represents a comment */ -PHP_NODE_METHOD(is_comment) -{ - GET_THIS_CONTAINER(); - if(tidyNodeGetType(obj->node) == TidyNode_Comment) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } - -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_html() - Returns true if this node is part of a HTML document */ -PHP_NODE_METHOD(is_html) -{ - GET_THIS_CONTAINER(); - - if(tidyNodeGetType(obj->node) & (TidyNode_Start | TidyNode_End | TidyNode_StartEnd)) { - RETURN_TRUE; - } - RETURN_FALSE; - -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_xhtml() - Returns true if this node is part of a XHTML document */ -PHP_NODE_METHOD(is_xhtml) -{ - GET_THIS_CONTAINER(); - if(tidyDetectedXhtml(TG(tdoc)->doc)) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_xml() - Returns true if this node is part of a XML document */ -PHP_NODE_METHOD(is_xml) -{ - GET_THIS_CONTAINER(); - if(tidyDetectedGenericXml(TG(tdoc)->doc)) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_text() - Returns true if this node represents text (no markup) */ -PHP_NODE_METHOD(is_text) -{ - GET_THIS_CONTAINER(); - if(tidyNodeGetType(obj->node) == TidyNode_Text) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } - -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_jste() - Returns true if this node is JSTE */ -PHP_NODE_METHOD(is_jste) -{ - GET_THIS_CONTAINER(); - if(tidyNodeGetType(obj->node) == TidyNode_Jste) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_asp() - Returns true if this node is ASP */ -PHP_NODE_METHOD(is_asp) -{ - GET_THIS_CONTAINER(); - if(tidyNodeGetType(obj->node) == TidyNode_Asp) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto boolean tidy_node::is_jsp() - Returns true if this node is JSP */ -PHP_NODE_METHOD(is_php) -{ - GET_THIS_CONTAINER(); - if(tidyNodeGetType(obj->node) == TidyNode_Php) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto tidy_node tidy_node::next() - Returns the next sibling to this node */ -PHP_NODE_METHOD(next) -{ - PHPTidyObj *obj; - - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - obj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - obj->node = tidyGetNext(obj->node); - obj->attr = NULL; - obj->type = is_node; - - tidy_add_default_properities(obj, is_node TSRMLS_CC); -} -/* }}} */ - -/* {{{ proto tidy_node tidy_node::prev() - Returns the previous sibiling to this node */ -PHP_NODE_METHOD(prev) -{ - PHPTidyObj *obj; - - if(ZEND_NUM_ARGS()) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - obj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - obj->node = tidyGetPrev(obj->node); - obj->attr = NULL; - obj->type = is_node; - - tidy_add_default_properities(obj, is_node TSRMLS_CC); -} -/* }}} */ - -/* {{{ proto tidy_attr tidy_node::get_attr(int attrib_id) - Return the attribute with the provided attribute id */ -PHP_NODE_METHOD(get_attr) -{ - TidyAttr tempattr; - long param; - GET_THIS_CONTAINER(); - - if(ZEND_NUM_ARGS() != 1) { - WRONG_PARAM_COUNT; - } - - TIDY_PARSED_CHECK(); - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", ¶m) == FAILURE) { - RETURN_FALSE; - } - - for(tempattr = tidyAttrFirst(obj->node); tempattr; tempattr = tidyAttrNext(tempattr)) { - - if(tidyAttrGetId(tempattr) == param) { - - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - - obj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - obj->node = NULL; - obj->attr = tempattr; - obj->type = is_attr; - - tidy_add_default_properities(obj, is_attr TSRMLS_CC); - } - } - -} -/* }}} */ - -/* {{{ proto tidy_node tidy_node::get_nodes(int node_id) - Return an array of nodes under this node with the specified id */ -PHP_NODE_METHOD(get_nodes) -{ - /* TODO */ -} -/* }}} */ - -#endif /* ZEND_ENGINE_2 */ - -void _php_tidy_register_nodetypes(INIT_FUNC_ARGS) -{ - - TIDY_NODE_CONST(ROOT, Root); - TIDY_NODE_CONST(DOCTYPE, DocType); - TIDY_NODE_CONST(COMMENT, Comment); - TIDY_NODE_CONST(PROCINS, ProcIns); - TIDY_NODE_CONST(TEXT, Text); - TIDY_NODE_CONST(START, Start); - TIDY_NODE_CONST(END, End); - TIDY_NODE_CONST(STARTEND, StartEnd); - TIDY_NODE_CONST(CDATA, CDATA); - TIDY_NODE_CONST(SECTION, Section); - TIDY_NODE_CONST(ASP, Asp); - TIDY_NODE_CONST(JSTE, Jste); - TIDY_NODE_CONST(PHP, Php); - TIDY_NODE_CONST(XMLDECL, XmlDecl); - -} - -void _php_tidy_register_tags(INIT_FUNC_ARGS) -{ - - TIDY_TAG_CONST(UNKNOWN); - TIDY_TAG_CONST(A); - TIDY_TAG_CONST(ABBR); - TIDY_TAG_CONST(ACRONYM); - TIDY_TAG_CONST(ADDRESS); - TIDY_TAG_CONST(ALIGN); - TIDY_TAG_CONST(APPLET); - TIDY_TAG_CONST(AREA); - TIDY_TAG_CONST(B); - TIDY_TAG_CONST(BASE); - TIDY_TAG_CONST(BASEFONT); - TIDY_TAG_CONST(BDO); - TIDY_TAG_CONST(BGSOUND); - TIDY_TAG_CONST(BIG); - TIDY_TAG_CONST(BLINK); - TIDY_TAG_CONST(BLOCKQUOTE); - TIDY_TAG_CONST(BODY); - TIDY_TAG_CONST(BR); - TIDY_TAG_CONST(BUTTON); - TIDY_TAG_CONST(CAPTION); - TIDY_TAG_CONST(CENTER); - TIDY_TAG_CONST(CITE); - TIDY_TAG_CONST(CODE); - TIDY_TAG_CONST(COL); - TIDY_TAG_CONST(COLGROUP); - TIDY_TAG_CONST(COMMENT); - TIDY_TAG_CONST(DD); - TIDY_TAG_CONST(DEL); - TIDY_TAG_CONST(DFN); - TIDY_TAG_CONST(DIR); - TIDY_TAG_CONST(DIV); - TIDY_TAG_CONST(DL); - TIDY_TAG_CONST(DT); - TIDY_TAG_CONST(EM); - TIDY_TAG_CONST(EMBED); - TIDY_TAG_CONST(FIELDSET); - TIDY_TAG_CONST(FONT); - TIDY_TAG_CONST(FORM); - TIDY_TAG_CONST(FRAME); - TIDY_TAG_CONST(FRAMESET); - TIDY_TAG_CONST(H1); - TIDY_TAG_CONST(H2); - TIDY_TAG_CONST(H3); - TIDY_TAG_CONST(H4); - TIDY_TAG_CONST(H5); - TIDY_TAG_CONST(H6); - TIDY_TAG_CONST(HEAD); - TIDY_TAG_CONST(HR); - TIDY_TAG_CONST(HTML); - TIDY_TAG_CONST(I); - TIDY_TAG_CONST(IFRAME); - TIDY_TAG_CONST(ILAYER); - TIDY_TAG_CONST(IMG); - TIDY_TAG_CONST(INPUT); - TIDY_TAG_CONST(INS); - TIDY_TAG_CONST(ISINDEX); - TIDY_TAG_CONST(KBD); - TIDY_TAG_CONST(KEYGEN); - TIDY_TAG_CONST(LABEL); - TIDY_TAG_CONST(LAYER); - TIDY_TAG_CONST(LEGEND); - TIDY_TAG_CONST(LI); - TIDY_TAG_CONST(LINK); - TIDY_TAG_CONST(LISTING); - TIDY_TAG_CONST(MAP); - TIDY_TAG_CONST(MARQUEE); - TIDY_TAG_CONST(MENU); - TIDY_TAG_CONST(META); - TIDY_TAG_CONST(MULTICOL); - TIDY_TAG_CONST(NOBR); - TIDY_TAG_CONST(NOEMBED); - TIDY_TAG_CONST(NOFRAMES); - TIDY_TAG_CONST(NOLAYER); - TIDY_TAG_CONST(NOSAVE); - TIDY_TAG_CONST(NOSCRIPT); - TIDY_TAG_CONST(OBJECT); - TIDY_TAG_CONST(OL); - TIDY_TAG_CONST(OPTGROUP); - TIDY_TAG_CONST(OPTION); - TIDY_TAG_CONST(P); - TIDY_TAG_CONST(PARAM); - TIDY_TAG_CONST(PLAINTEXT); - TIDY_TAG_CONST(PRE); - TIDY_TAG_CONST(Q); - TIDY_TAG_CONST(RB); - TIDY_TAG_CONST(RBC); - TIDY_TAG_CONST(RP); - TIDY_TAG_CONST(RT); - TIDY_TAG_CONST(RTC); - TIDY_TAG_CONST(RUBY); - TIDY_TAG_CONST(S); - TIDY_TAG_CONST(SAMP); - TIDY_TAG_CONST(SCRIPT); - TIDY_TAG_CONST(SELECT); - TIDY_TAG_CONST(SERVER); - TIDY_TAG_CONST(SERVLET); - TIDY_TAG_CONST(SMALL); - TIDY_TAG_CONST(SPACER); - TIDY_TAG_CONST(SPAN); - TIDY_TAG_CONST(STRIKE); - TIDY_TAG_CONST(STRONG); - TIDY_TAG_CONST(STYLE); - TIDY_TAG_CONST(SUB); - TIDY_TAG_CONST(SUP); - TIDY_TAG_CONST(TABLE); - TIDY_TAG_CONST(TBODY); - TIDY_TAG_CONST(TD); - TIDY_TAG_CONST(TEXTAREA); - TIDY_TAG_CONST(TFOOT); - TIDY_TAG_CONST(TH); - TIDY_TAG_CONST(THEAD); - TIDY_TAG_CONST(TITLE); - TIDY_TAG_CONST(TR); - TIDY_TAG_CONST(TT); - TIDY_TAG_CONST(U); - TIDY_TAG_CONST(UL); - TIDY_TAG_CONST(VAR); - TIDY_TAG_CONST(WBR); - TIDY_TAG_CONST(XMP); - -} - -void _php_tidy_register_attributes(INIT_FUNC_ARGS) -{ - - TIDY_ATTR_CONST(UNKNOWN); - TIDY_ATTR_CONST(ABBR); - TIDY_ATTR_CONST(ACCEPT); - TIDY_ATTR_CONST(ACCEPT_CHARSET); - TIDY_ATTR_CONST(ACCESSKEY); - TIDY_ATTR_CONST(ACTION); - TIDY_ATTR_CONST(ADD_DATE); - TIDY_ATTR_CONST(ALIGN); - TIDY_ATTR_CONST(ALINK); - TIDY_ATTR_CONST(ALT); - TIDY_ATTR_CONST(ARCHIVE); - TIDY_ATTR_CONST(AXIS); - TIDY_ATTR_CONST(BACKGROUND); - TIDY_ATTR_CONST(BGCOLOR); - TIDY_ATTR_CONST(BGPROPERTIES); - TIDY_ATTR_CONST(BORDER); - TIDY_ATTR_CONST(BORDERCOLOR); - TIDY_ATTR_CONST(BOTTOMMARGIN); - TIDY_ATTR_CONST(CELLPADDING); - TIDY_ATTR_CONST(CELLSPACING); - TIDY_ATTR_CONST(CHAR); - TIDY_ATTR_CONST(CHAROFF); - TIDY_ATTR_CONST(CHARSET); - TIDY_ATTR_CONST(CHECKED); - TIDY_ATTR_CONST(CITE); - TIDY_ATTR_CONST(CLASS); - TIDY_ATTR_CONST(CLASSID); - TIDY_ATTR_CONST(CLEAR); - TIDY_ATTR_CONST(CODE); - TIDY_ATTR_CONST(CODEBASE); - TIDY_ATTR_CONST(CODETYPE); - TIDY_ATTR_CONST(COLOR); - TIDY_ATTR_CONST(COLS); - TIDY_ATTR_CONST(COLSPAN); - TIDY_ATTR_CONST(COMPACT); - TIDY_ATTR_CONST(CONTENT); - TIDY_ATTR_CONST(COORDS); - TIDY_ATTR_CONST(DATA); - TIDY_ATTR_CONST(DATAFLD); - /* TIDY_ATTR_CONST(DATAFORMATSAS); */ - TIDY_ATTR_CONST(DATAPAGESIZE); - TIDY_ATTR_CONST(DATASRC); - TIDY_ATTR_CONST(DATETIME); - TIDY_ATTR_CONST(DECLARE); - TIDY_ATTR_CONST(DEFER); - TIDY_ATTR_CONST(DIR); - TIDY_ATTR_CONST(DISABLED); - TIDY_ATTR_CONST(ENCODING); - TIDY_ATTR_CONST(ENCTYPE); - TIDY_ATTR_CONST(FACE); - TIDY_ATTR_CONST(FOR); - TIDY_ATTR_CONST(FRAME); - TIDY_ATTR_CONST(FRAMEBORDER); - TIDY_ATTR_CONST(FRAMESPACING); - TIDY_ATTR_CONST(GRIDX); - TIDY_ATTR_CONST(GRIDY); - TIDY_ATTR_CONST(HEADERS); - TIDY_ATTR_CONST(HEIGHT); - TIDY_ATTR_CONST(HREF); - TIDY_ATTR_CONST(HREFLANG); - TIDY_ATTR_CONST(HSPACE); - TIDY_ATTR_CONST(HTTP_EQUIV); - TIDY_ATTR_CONST(ID); - TIDY_ATTR_CONST(ISMAP); - TIDY_ATTR_CONST(LABEL); - TIDY_ATTR_CONST(LANG); - TIDY_ATTR_CONST(LANGUAGE); - TIDY_ATTR_CONST(LAST_MODIFIED); - TIDY_ATTR_CONST(LAST_VISIT); - TIDY_ATTR_CONST(LEFTMARGIN); - TIDY_ATTR_CONST(LINK); - TIDY_ATTR_CONST(LONGDESC); - TIDY_ATTR_CONST(LOWSRC); - TIDY_ATTR_CONST(MARGINHEIGHT); - TIDY_ATTR_CONST(MARGINWIDTH); - TIDY_ATTR_CONST(MAXLENGTH); - TIDY_ATTR_CONST(MEDIA); - TIDY_ATTR_CONST(METHOD); - TIDY_ATTR_CONST(MULTIPLE); - TIDY_ATTR_CONST(NAME); - TIDY_ATTR_CONST(NOHREF); - TIDY_ATTR_CONST(NORESIZE); - TIDY_ATTR_CONST(NOSHADE); - TIDY_ATTR_CONST(NOWRAP); - TIDY_ATTR_CONST(OBJECT); - TIDY_ATTR_CONST(OnAFTERUPDATE); - TIDY_ATTR_CONST(OnBEFOREUNLOAD); - TIDY_ATTR_CONST(OnBEFOREUPDATE); - TIDY_ATTR_CONST(OnBLUR); - TIDY_ATTR_CONST(OnCHANGE); - TIDY_ATTR_CONST(OnCLICK); - TIDY_ATTR_CONST(OnDATAAVAILABLE); - TIDY_ATTR_CONST(OnDATASETCHANGED); - TIDY_ATTR_CONST(OnDATASETCOMPLETE); - TIDY_ATTR_CONST(OnDBLCLICK); - TIDY_ATTR_CONST(OnERRORUPDATE); - TIDY_ATTR_CONST(OnFOCUS); - TIDY_ATTR_CONST(OnKEYDOWN); - TIDY_ATTR_CONST(OnKEYPRESS); - TIDY_ATTR_CONST(OnKEYUP); - TIDY_ATTR_CONST(OnLOAD); - TIDY_ATTR_CONST(OnMOUSEDOWN); - TIDY_ATTR_CONST(OnMOUSEMOVE); - TIDY_ATTR_CONST(OnMOUSEOUT); - TIDY_ATTR_CONST(OnMOUSEOVER); - TIDY_ATTR_CONST(OnMOUSEUP); - TIDY_ATTR_CONST(OnRESET); - TIDY_ATTR_CONST(OnROWENTER); - TIDY_ATTR_CONST(OnROWEXIT); - TIDY_ATTR_CONST(OnSELECT); - TIDY_ATTR_CONST(OnSUBMIT); - TIDY_ATTR_CONST(OnUNLOAD); - TIDY_ATTR_CONST(PROFILE); - TIDY_ATTR_CONST(PROMPT); - TIDY_ATTR_CONST(RBSPAN); - TIDY_ATTR_CONST(READONLY); - TIDY_ATTR_CONST(REL); - TIDY_ATTR_CONST(REV); - TIDY_ATTR_CONST(RIGHTMARGIN); - TIDY_ATTR_CONST(ROWS); - TIDY_ATTR_CONST(ROWSPAN); - TIDY_ATTR_CONST(RULES); - TIDY_ATTR_CONST(SCHEME); - TIDY_ATTR_CONST(SCOPE); - TIDY_ATTR_CONST(SCROLLING); - TIDY_ATTR_CONST(SELECTED); - TIDY_ATTR_CONST(SHAPE); - TIDY_ATTR_CONST(SHOWGRID); - TIDY_ATTR_CONST(SHOWGRIDX); - TIDY_ATTR_CONST(SHOWGRIDY); - TIDY_ATTR_CONST(SIZE); - TIDY_ATTR_CONST(SPAN); - TIDY_ATTR_CONST(SRC); - TIDY_ATTR_CONST(STANDBY); - TIDY_ATTR_CONST(START); - TIDY_ATTR_CONST(STYLE); - TIDY_ATTR_CONST(SUMMARY); - TIDY_ATTR_CONST(TABINDEX); - TIDY_ATTR_CONST(TARGET); - TIDY_ATTR_CONST(TEXT); - TIDY_ATTR_CONST(TITLE); - TIDY_ATTR_CONST(TOPMARGIN); - TIDY_ATTR_CONST(TYPE); - TIDY_ATTR_CONST(USEMAP); - TIDY_ATTR_CONST(VALIGN); - TIDY_ATTR_CONST(VALUE); - TIDY_ATTR_CONST(VALUETYPE); - TIDY_ATTR_CONST(VERSION); - TIDY_ATTR_CONST(VLINK); - TIDY_ATTR_CONST(VSPACE); - TIDY_ATTR_CONST(WIDTH); - TIDY_ATTR_CONST(WRAP); - TIDY_ATTR_CONST(XML_LANG); - TIDY_ATTR_CONST(XML_SPACE); - TIDY_ATTR_CONST(XMLNS); - -} diff --git a/ext/tidy/tidy.dsp b/ext/tidy/tidy.dsp deleted file mode 100755 index 75e33ec8cf..0000000000 --- a/ext/tidy/tidy.dsp +++ /dev/null @@ -1,108 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tidy" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=tidy - Win32 Debug_TS
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "tidy.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "tidy.mak" CFG="tidy - Win32 Debug_TS"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "tidy - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "tidy - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "tidy - Win32 Release_TS"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release_TS"
-# PROP BASE Intermediate_Dir "Release_TS"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release_TS"
-# PROP Intermediate_Dir "Release_TS"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TIDY_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\..\php_build\include" /I "..\..\..\php_build\include\libtidy" /D ZEND_DEBUG=0 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "COMPILE_DL_TIDY" /D ZTS=1 /D "ZEND_WIN32" /D "PHP_WIN32" /D "PHP_TIDY_EXPORTS" /D "HAVE_ZLIB" /FR /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x407 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 php4ts.lib libtidy.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Release_TS/php_tidy.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline" /libpath:"..\..\..\php_build\release"
-
-!ELSEIF "$(CFG)" == "tidy - Win32 Debug_TS"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug_TS"
-# PROP BASE Intermediate_Dir "Debug_TS"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug_TS"
-# PROP Intermediate_Dir "Debug_TS"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TIDY_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\..\php_build\include" /I "..\..\..\php_build\include\libtidy" /D ZEND_DEBUG=1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "COMPILE_DL_TIDY" /D ZTS=1 /D "ZEND_WIN32" /D "PHP_WIN32" /D "PHP_TIDY_EXPORTS" /D "HAVE_ZLIB" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x407 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 php4ts_debug.lib libtidy.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"..\..\Debug_TS/php_tidy.dll" /pdbtype:sept /libpath:"..\..\Debug_TS" /libpath:"..\..\..\php_build\release"
-
-!ENDIF
-
-# Begin Target
-
-# Name "tidy - Win32 Release_TS"
-# Name "tidy - Win32 Debug_TS"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\tidy.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\php_tidy.h
-# End Source File
-# End Group
-# End Target
-# End Project
|