nlopess         Wed Nov  1 18:55:03 2006 UTC

  Modified files:              
    /php-src/ext/tidy   tidy.c 
  Log:
  convert a few more functions
  
http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tidy.c?r1=1.105&r2=1.106&diff_format=u
Index: php-src/ext/tidy/tidy.c
diff -u php-src/ext/tidy/tidy.c:1.105 php-src/ext/tidy/tidy.c:1.106
--- php-src/ext/tidy/tidy.c:1.105       Wed Nov  1 18:28:37 2006
+++ php-src/ext/tidy/tidy.c     Wed Nov  1 18:55:02 2006
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: tidy.c,v 1.105 2006/11/01 18:28:37 nlopess Exp $ */
+/* $Id: tidy.c,v 1.106 2006/11/01 18:55:02 nlopess Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -121,12 +121,12 @@
                zend_ascii_hash_update(_table, #_key, sizeof(#_key), (void 
*)&tmp, sizeof(zval *), NULL); \
        }
 
-#define ADD_PROPERTY_STRINGL(_table, _key, _string, _len) \
+#define ADD_PROPERTY_STRINGL(_conv, _table, _key, _string, _len) \
    { \
        zval *tmp; \
        MAKE_STD_ZVAL(tmp); \
        if (_string) { \
-           ZVAL_STRINGL(tmp, (char *)_string, _len, 1); \
+           ZVAL_U_STRINGL(_conv, tmp, (char *)_string, _len, 1); \
        } else { \
            ZVAL_EMPTY_STRING(tmp); \
        } \
@@ -784,7 +784,7 @@
 
                        memset(&buf, 0, sizeof(buf));
                        tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
-                       ADD_PROPERTY_STRINGL(obj->std.properties, value, 
buf.bp, buf.size-1);
+                       ADD_PROPERTY_STRINGL(obj->converter->conv, 
obj->std.properties, value, buf.bp, buf.size-1);
                        tidyBufFree(&buf);
 
                        ADD_PROPERTY_ASCII_STRING(obj->std.properties, name, 
tidyNodeGetName(obj->node));
@@ -1002,9 +1002,7 @@
        REGISTER_INI_ENTRIES();
        REGISTER_TIDY_CLASS(tidy, doc,  NULL, 0);
        REGISTER_TIDY_CLASS(tidyNode, node,     NULL, ZEND_ACC_FINAL_CLASS);
-       /* no exceptions for now..
-       REGISTER_TIDY_CLASS(tidyException, exception,   
zend_exception_get_default(TSRMLS_C));
-       */
+
        tidy_object_handlers_doc.get_class_entry = tidy_get_ce_doc;
        tidy_object_handlers_node.get_class_entry = tidy_get_ce_node;
        
@@ -1042,7 +1040,7 @@
        php_info_print_table_start();
        php_info_print_table_header(2, "Tidy support", "enabled");
        php_info_print_table_row(2, "libTidy Release", (char 
*)tidyReleaseDate());
-       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.105 2006/11/01 18:28:37 nlopess Exp 
$)");
+       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.106 2006/11/01 18:55:02 nlopess Exp 
$)");
        php_info_print_table_end();
 
        DISPLAY_INI_ENTRIES();
@@ -1155,7 +1153,7 @@
        return status;
 }
 
-/* {{{ proto bool tidy_parse_string(string input [, mixed config_options [, 
string encoding]])
+/* {{{ proto bool tidy_parse_string(string input [, mixed config_options [, 
string encoding]]) U
    Parse a document stored in a string */
 static PHP_FUNCTION(tidy_parse_string)
 {
@@ -1194,21 +1192,21 @@
 }
 /* }}} */
 
-/* {{{ proto string tidy_get_error_buffer([boolean detailed])
+/* {{{ proto string tidy_get_error_buffer() U
    Return warnings and errors which occured parsing the specified document*/
 static PHP_FUNCTION(tidy_get_error_buffer)
 {
        TIDY_FETCH_OBJECT;
 
        if (obj->ptdoc->errbuf && obj->ptdoc->errbuf->bp) {
-               RETURN_STRINGL((char *) obj->ptdoc->errbuf->bp, 
obj->ptdoc->errbuf->size-1, 1);
+               RETURN_ASCII_STRINGL((char *) obj->ptdoc->errbuf->bp, 
obj->ptdoc->errbuf->size-1, 1);
        } else {
                RETURN_FALSE;
        }
 }
 /* }}} */
 
-/* {{{ proto string tidy_get_output()
+/* {{{ proto string tidy_get_output() U
    Return a string representing the parsed tidy markup */
 static PHP_FUNCTION(tidy_get_output)
 {
@@ -1217,7 +1215,7 @@
 
        tidySaveBuffer(obj->ptdoc->doc, &output);
        FIX_BUFFER(&output);
-       RETVAL_STRINGL((char *) output.bp, output.size-1, 1);
+       RETVAL_U_STRINGL(obj->converter->conv, (char *) output.bp, 
output.size-1, 1);
        tidyBufFree(&output);
 }
 /* }}} */
@@ -1259,7 +1257,7 @@
 }
 /* }}} */
 
-/* {{{ proto boolean tidy_clean_repair()
+/* {{{ proto boolean tidy_clean_repair() U
    Execute configured cleanup and repair operations on parsed markup */
 static PHP_FUNCTION(tidy_clean_repair)
 {
@@ -1290,7 +1288,7 @@
 }
 /* }}} */
 
-/* {{{ proto boolean tidy_diagnose()
+/* {{{ proto boolean tidy_diagnose() U
    Run configured diagnostics on parsed and repaired markup. */
 static PHP_FUNCTION(tidy_diagnose)
 {
@@ -1324,31 +1322,48 @@
 static PHP_FUNCTION(tidy_get_opt_doc)
 {
        PHPTidyObj *obj;
-       char *optname, *optval;
+       char *optval;
+       zstr optname;
+       zend_uchar optname_type;
        int optname_len;
        TidyOption opt;
 
        TIDY_SET_CONTEXT;
 
        if (object) {
-               if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", 
&optname, &optname_len) == FAILURE) {
+               if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "t", 
&optname, &optname_len, &optname_type) == FAILURE) {
                        RETURN_FALSE;
                }
        } else {
-               if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
NULL, "Os", &object, tidy_ce_doc, &optname, &optname_len) == FAILURE) {
+               if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
NULL, "Ot", &object, tidy_ce_doc, &optname, &optname_len, &optname_type) == 
FAILURE) {
+                       RETURN_FALSE;
+               }
+       }
+
+       if (optname_type != IS_STRING) {
+               optname.s = zend_unicode_to_ascii(optname.u, optname_len 
TSRMLS_CC);
+               if (!optname.s) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Binary or 
ASCII-Unicode string expected, non-ASCII-Unicode string received");
                        RETURN_FALSE;
                }
        }
 
        obj = (PHPTidyObj *) zend_object_store_get_object(object TSRMLS_CC);
 
-       opt = tidyGetOptionByName(obj->ptdoc->doc, optname);
+       opt = tidyGetOptionByName(obj->ptdoc->doc, optname.s);
 
        if (!opt) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown Tidy 
Configuration Option '%s'", optname);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown Tidy 
Configuration Option '%s'", optname.s);
+               if (optname_type != IS_STRING) {
+                       efree(optname.s);
+               }
                RETURN_FALSE;
        }
 
+       if (optname_type != IS_STRING) {
+               efree(optname.s);
+       }
+
        if ( (optval = (char *) tidyOptGetDoc(obj->ptdoc->doc, opt)) ) {
                RETURN_ASCII_STRING(optval, 1);
        }
@@ -1478,38 +1493,54 @@
 }
 /* }}} */
 
-/* {{{ proto mixed tidy_getopt(string option)
+/* {{{ proto mixed tidy_getopt(string option) U
    Returns the value of the specified configuration option for the tidy 
document. */
 static PHP_FUNCTION(tidy_getopt)
 {  
        PHPTidyObj *obj;
-       char *optname;
+       zstr optname;
        void *optval;
        int optname_len;
        TidyOption opt;
        TidyOptionType optt;
-       
+       zend_uchar optname_type;
+
        TIDY_SET_CONTEXT;
 
        if (object) {
-               if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", 
&optname, &optname_len) == FAILURE) {
+               if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "t", 
&optname, &optname_len, &optname_type) == FAILURE) {
                        RETURN_FALSE;
                }
        } else {
-               if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
NULL, "Os", &object, tidy_ce_doc, &optname, &optname_len) == FAILURE) {
+               if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
NULL, "Ot", &object, tidy_ce_doc, &optname, &optname_len, &optname_type) == 
FAILURE) {
+                       RETURN_FALSE;
+               }
+       }
+
+       if (optname_type != IS_STRING) {
+               optname.s = zend_unicode_to_ascii(optname.u, optname_len 
TSRMLS_CC);
+               if (!optname.s) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Binary or 
ASCII-Unicode string expected, non-ASCII-Unicode string received");
                        RETURN_FALSE;
                }
        }
 
        obj = (PHPTidyObj *) zend_object_store_get_object(object TSRMLS_CC);
 
-       opt = tidyGetOptionByName(obj->ptdoc->doc, optname);
+       opt = tidyGetOptionByName(obj->ptdoc->doc, optname.s);
 
        if (!opt) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown Tidy 
Configuration Option '%s'", optname);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown Tidy 
Configuration Option '%s'", optname.s);
+               if (optname_type != IS_STRING) {
+                       efree(optname.s);
+               }
                RETURN_FALSE;
        }
 
+       if (optname_type != IS_STRING) {
+               efree(optname.s);
+       }
+
        optval = php_tidy_get_opt_val(obj->ptdoc, opt, &optt TSRMLS_CC);
        switch (optt) {
                case TidyString:

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to