/* {{{ php_var_dump */
/* temporary, for debugging */
-static void php_var_dump_unicode(UChar *ustr, int32_t length, int verbose, char *quote TSRMLS_DC)
+static void php_var_dump_unicode(UChar *ustr, int32_t length, int verbose, char *quote, int escape TSRMLS_DC)
{
UChar32 c;
int32_t i;
}
ZEND_PUTS(quote);
- PHPWRITE(out, clen);
+ if (escape) {
+ char *str;
+ int str_len;
+
+ str = php_addcslashes(out, clen, &str_len, 0, "'\\", 2 TSRMLS_CC);
+ PHPWRITE(str, str_len);
+ efree(str);
+ } else {
+ PHPWRITE(out, clen);
+ }
ZEND_PUTS(quote);
if (verbose) {
ZEND_PUTS(" {");
php_printf("\"");
} else if (hash_key->type == IS_UNICODE) {
php_printf("u");
- php_var_dump_unicode(hash_key->u.unicode, hash_key->nKeyLength-1, verbose, "\"" TSRMLS_CC);
+ php_var_dump_unicode(hash_key->u.unicode, hash_key->nKeyLength-1, verbose, "\"", 0 TSRMLS_CC);
}
php_printf("]=>\n");
}
break;
case IS_UNICODE:
php_printf("%sunicode(%d) ", COMMON, u_countChar32((*struc)->value.ustr.val, (*struc)->value.ustr.len));
- php_var_dump_unicode((*struc)->value.ustr.val, (*struc)->value.ustr.len, 0, "\"" TSRMLS_CC);
+ php_var_dump_unicode((*struc)->value.ustr.val, (*struc)->value.ustr.len, 0, "\"", 0 TSRMLS_CC);
PUTS("\n");
break;
case IS_ARRAY:
php_printf("\"");
} else if (hash_key->type == IS_UNICODE) {
php_printf("u");
- php_var_dump_unicode(hash_key->u.unicode, hash_key->nKeyLength-1, 1, "\"" TSRMLS_CC);
+ php_var_dump_unicode(hash_key->u.unicode, hash_key->nKeyLength-1, 1, "\"", 0 TSRMLS_CC);
}
php_printf("]=>\n");
}
break;
case IS_UNICODE:
php_printf("%sunicode(%d) ", COMMON, u_countChar32((*struc)->value.ustr.val, (*struc)->value.ustr.len));
- php_var_dump_unicode((*struc)->value.ustr.val, (*struc)->value.ustr.len, verbose, "\"" TSRMLS_CC);
+ php_var_dump_unicode((*struc)->value.ustr.val, (*struc)->value.ustr.len, verbose, "\"", 0 TSRMLS_CC);
php_printf(" refcount(%u)\n", Z_REFCOUNT_PP(struc));
break;
case IS_ARRAY:
} else { /* string key */
php_printf("%*c'", level + 1, ' ');
if (hash_key->type == IS_UNICODE) {
- php_var_dump_unicode(hash_key->u.unicode, hash_key->nKeyLength-1, 0, "" TSRMLS_CC);
+ php_var_dump_unicode(hash_key->u.unicode, hash_key->nKeyLength-1, 0, "", 1 TSRMLS_CC);
} else {
char *key;
int key_len;
efree (tmp_str);
break;
case IS_UNICODE:
-/* TODO
- tmp_str = php_addcslashes(Z_STRVAL_PP(struc), Z_STRLEN_PP(struc), &tmp_len, 0, "'\\", 2 TSRMLS_CC);
-*/
- php_var_dump_unicode(Z_USTRVAL_PP(struc), Z_USTRLEN_PP(struc), 0, "'" TSRMLS_CC);
+ php_var_dump_unicode(Z_USTRVAL_PP(struc), Z_USTRLEN_PP(struc), 0, "'", 1 TSRMLS_CC);
break;
case IS_ARRAY:
myht = Z_ARRVAL_PP(struc);