Browse Source

Adding new function tidy_get_opt_doc() to return option documentation at runtime. Thanks to nlopess for the patch

PHP-5.1
John Coggeshall 21 years ago
parent
commit
335742c2ef
  1. 6
      ext/tidy/config.m4
  2. 1
      ext/tidy/php_tidy.def
  3. 3
      ext/tidy/php_tidy.h
  4. 47
      ext/tidy/tidy.c

6
ext/tidy/config.m4

@ -32,6 +32,12 @@ if test "$PHP_TIDY" != "no"; then
PHP_ADD_LIBRARY_WITH_PATH(tidy, $TIDY_LIBDIR, TIDY_SHARED_LIBADD)
PHP_ADD_INCLUDE($TIDY_INCDIR)
PHP_CHECK_LIBRARY(tidy,tidyOptGetDoc,
[
AC_DEFINE(HAVE_TIDYOPTGETDOC,1,[ ])
],[],[])
PHP_NEW_EXTENSION(tidy, tidy.c, $ext_shared)
PHP_SUBST(TIDY_SHARED_LIBADD)
AC_DEFINE(HAVE_TIDY,1,[ ])

1
ext/tidy/php_tidy.def

@ -45,6 +45,7 @@ tidyOptGetCategory
tidyOptGetDefault
tidyOptGetDefaultInt
tidyOptGetDefaultBool
tidyOptGetDoc
tidyOptGetPickList
tidyOptGetNextPick
tidyOptGetValue

3
ext/tidy/php_tidy.h

@ -57,6 +57,9 @@ PHP_FUNCTION(tidy_reset_config);
PHP_FUNCTION(tidy_get_config);
PHP_FUNCTION(tidy_get_status);
PHP_FUNCTION(tidy_get_html_ver);
#if HAVE_TIDYOPTGETDOC
PHP_FUNCTION(tidy_get_opt_doc);
#endif
PHP_FUNCTION(tidy_is_xhtml);
PHP_FUNCTION(tidy_is_xml);
PHP_FUNCTION(tidy_error_count);

47
ext/tidy/tidy.c

@ -245,6 +245,9 @@ function_entry tidy_functions[] = {
PHP_FE(tidy_warning_count, NULL)
PHP_FE(tidy_access_count, NULL)
PHP_FE(tidy_config_count, NULL)
#if HAVE_TIDYOPTGETDOC
PHP_FE(tidy_get_opt_doc, NULL)
#endif
PHP_FE(tidy_get_root, NULL)
PHP_FE(tidy_get_head, NULL)
PHP_FE(tidy_get_html, NULL)
@ -265,6 +268,9 @@ function_entry tidy_funcs_doc[] = {
TIDY_METHOD_MAP(getConfig, tidy_get_config, NULL)
TIDY_METHOD_MAP(getStatus, tidy_get_status, NULL)
TIDY_METHOD_MAP(getHtmlVer, tidy_get_html_ver, NULL)
#if HAVE_TIDYOPTGETDOC
TIDY_METHOD_MAP(getOptDoc, tidy_get_opt_doc, NULL)
#endif
TIDY_METHOD_MAP(isXhtml, tidy_is_xhtml, NULL)
TIDY_METHOD_MAP(isXml, tidy_is_xml, NULL)
TIDY_METHOD_MAP(root, tidy_get_root, NULL)
@ -1169,6 +1175,47 @@ PHP_FUNCTION(tidy_get_release)
}
/* }}} */
#if HAVE_TIDYOPTGETDOC
/* {{{ proto string tidy_get_opt_doc(tidy resource, string optname)
Returns the documentation for the given option name */
PHP_FUNCTION(tidy_get_opt_doc)
{
PHPTidyObj *obj;
char *optname, *optval;
int optname_len;
TidyOption opt;
TIDY_SET_CONTEXT;
if (object) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &optname, &optname_len) == FAILURE) {
RETURN_FALSE;
}
} else {
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, NULL, "Os", &object, tidy_ce_doc, &optname, &optname_len) == FAILURE) {
RETURN_FALSE;
}
}
obj = (PHPTidyObj *) zend_object_store_get_object(object TSRMLS_CC);
opt = tidyGetOptionByName(obj->ptdoc->doc, optname);
if (!opt) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown Tidy Configuration Option '%s'", optname);
RETURN_FALSE;
}
if (optval = (char *) tidyOptGetDoc(obj->ptdoc->doc, opt))
RETURN_STRING(optval, 1);
RETURN_FALSE;
}
/* }}} */
#endif
/* {{{ proto array tidy_get_config()
Get current Tidy configuarion */
PHP_FUNCTION(tidy_get_config)

Loading…
Cancel
Save