dmitry Thu Aug 18 07:13:53 2005 EDT Modified files: /php-src/ext/standard var.c Log: var_export() should escape \ and ' characters. http://cvs.php.net/diff.php/php-src/ext/standard/var.c?r1=1.211&r2=1.212&ty=u Index: php-src/ext/standard/var.c diff -u php-src/ext/standard/var.c:1.211 php-src/ext/standard/var.c:1.212 --- php-src/ext/standard/var.c:1.211 Wed Aug 17 11:11:41 2005 +++ php-src/ext/standard/var.c Thu Aug 18 07:13:50 2005 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var.c,v 1.211 2005/08/17 15:11:41 dmitry Exp $ */ +/* $Id: var.c,v 1.212 2005/08/18 11:13:50 dmitry Exp $ */ @@ -42,7 +42,7 @@ /* {{{ 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; @@ -72,7 +72,16 @@ } 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(" {"); @@ -129,7 +138,7 @@ 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"); } @@ -207,7 +216,7 @@ 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: @@ -334,7 +343,7 @@ 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"); } @@ -378,7 +387,7 @@ 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: @@ -461,7 +470,7 @@ } 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; @@ -535,10 +544,7 @@ 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);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php