]> granicus.if.org Git - php/commitdiff
- Fixed bug #48802 (printf() returns incorrect outputted length)
authorJani Taskinen <jani@php.net>
Thu, 23 Jul 2009 14:54:04 +0000 (14:54 +0000)
committerJani Taskinen <jani@php.net>
Thu, 23 Jul 2009 14:54:04 +0000 (14:54 +0000)
ext/standard/formatted_print.c
sapi/cli/php_cli.c

index 58b4ce113ff0fec62c20808c5faf4aa9ce6ec954..ad2845cea7165a87d6a325aa53a57c8f3ee9ddde 100644 (file)
@@ -1299,7 +1299,7 @@ PHP_FUNCTION(vsprintf)
    Output a formatted string */
 PHP_FUNCTION(user_printf)
 {
-       int len;
+       int len, rlen;
        zstr result;
 
        result = php_u_formatted_print(ht, &len, 0, 0, PHP_OUTPUT TSRMLS_CC);
@@ -1307,9 +1307,9 @@ PHP_FUNCTION(user_printf)
                RETURN_FALSE;
        }
        
-       PHPWRITE(result.s, len);
+       rlen = PHPWRITE(result.s, len);
        efree(result.v);
-       RETURN_LONG(len);
+       RETURN_LONG(rlen);
 }
 /* }}} */
 
@@ -1317,7 +1317,7 @@ PHP_FUNCTION(user_printf)
    Output a formatted string */
 PHP_FUNCTION(vprintf)
 {
-       int len;
+       int len, rlen;
        zstr result;
 
        result = php_u_formatted_print(ht, &len, 1, 0, PHP_OUTPUT TSRMLS_CC);
@@ -1325,9 +1325,9 @@ PHP_FUNCTION(vprintf)
                RETURN_FALSE;
        }
 
-       PHPWRITE(result.s, len);
+       rlen = PHPWRITE(result.s, len);
        efree(result.v);
-       RETURN_LONG(len);
+       RETURN_LONG(rlen);
 }
 /* }}} */
 
index c7dca711791d783b15a1b64e1a0829cc48acc265..a959ba0f6953b562de9e076999affe5ea71e4b14 100644 (file)
@@ -302,7 +302,7 @@ static int sapi_cli_ub_write(const char *str, uint str_length TSRMLS_DC) /* {{{
                remaining -= ret;
        }
 
-       return str_length;
+       return (ptr - str);
 }
 /* }}} */