version 1.1.1.1, 2012/02/21 23:48:05
|
version 1.1.1.4, 2014/06/15 20:04:01
|
Line 2
|
Line 2
|
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| PHP Version 5 | |
| PHP Version 5 | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Copyright (c) 1997-2012 The PHP Group | | | Copyright (c) 1997-2014 The PHP Group | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| This source file is subject to version 3.01 of the PHP license, | |
| This source file is subject to version 3.01 of the PHP license, | |
| that is bundled with this package in the file LICENSE, and is | |
| that is bundled with this package in the file LICENSE, and is | |
Line 18
|
Line 18
|
|
|
/* $Id$ */ |
/* $Id$ */ |
|
|
| #define _GNU_SOURCE |
#include "php.h" |
#include "php.h" |
|
|
#include <zend_strtod.h> |
#include <zend_strtod.h> |
Line 94 static char * __cvt(double value, int ndigit, int *dec
|
Line 94 static char * __cvt(double value, int ndigit, int *dec
|
*decpt = 0; |
*decpt = 0; |
c = *p; |
c = *p; |
zend_freedtoa(p); |
zend_freedtoa(p); |
return(c == 'I' ? "INF" : "NAN"); | return strdup((c == 'I' ? "INF" : "NAN")); |
} |
} |
/* Make a local copy and adjust rve to be in terms of s */ |
/* Make a local copy and adjust rve to be in terms of s */ |
if (pad && fmode) { |
if (pad && fmode) { |
Line 782 static int format_converter(register buffy * odp, cons
|
Line 782 static int format_converter(register buffy * odp, cons
|
*/ |
*/ |
switch (*fmt) { |
switch (*fmt) { |
case 'Z': |
case 'Z': |
#if SUHOSIN_PATCH |
|
zend_suhosin_log(S_MISC, "'Z' specifier within format string"); |
|
goto skip_output; |
|
#else |
|
zvp = (zval*) va_arg(ap, zval*); |
zvp = (zval*) va_arg(ap, zval*); |
zend_make_printable_zval(zvp, &zcopy, &free_zcopy); |
zend_make_printable_zval(zvp, &zcopy, &free_zcopy); |
if (free_zcopy) { |
if (free_zcopy) { |
Line 796 static int format_converter(register buffy * odp, cons
|
Line 792 static int format_converter(register buffy * odp, cons
|
if (adjust_precision && precision < s_len) { |
if (adjust_precision && precision < s_len) { |
s_len = precision; |
s_len = precision; |
} |
} |
#endif |
|
break; |
break; |
case 'u': |
case 'u': |
switch(modifier) { |
switch(modifier) { |
Line 1098 static int format_converter(register buffy * odp, cons
|
Line 1093 static int format_converter(register buffy * odp, cons
|
|
|
|
|
case 'n': |
case 'n': |
#if SUHOSIN_PATCH |
|
zend_suhosin_log(S_MISC, "'n' specifier within format string"); |
|
#else |
|
*(va_arg(ap, int *)) = cc; |
*(va_arg(ap, int *)) = cc; |
#endif |
|
goto skip_output; |
goto skip_output; |
|
|
/* |
/* |
Line 1231 static void strx_printv(int *ccp, char *buf, size_t le
|
Line 1222 static void strx_printv(int *ccp, char *buf, size_t le
|
|
|
PHPAPI int ap_php_slprintf(char *buf, size_t len, const char *format,...) /* {{{ */ |
PHPAPI int ap_php_slprintf(char *buf, size_t len, const char *format,...) /* {{{ */ |
{ |
{ |
int cc; | unsigned int cc; |
va_list ap; |
va_list ap; |
|
|
va_start(ap, format); |
va_start(ap, format); |
Line 1247 PHPAPI int ap_php_slprintf(char *buf, size_t len, cons
|
Line 1238 PHPAPI int ap_php_slprintf(char *buf, size_t len, cons
|
|
|
PHPAPI int ap_php_vslprintf(char *buf, size_t len, const char *format, va_list ap) /* {{{ */ |
PHPAPI int ap_php_vslprintf(char *buf, size_t len, const char *format, va_list ap) /* {{{ */ |
{ |
{ |
int cc; | unsigned int cc; |
|
|
strx_printv(&cc, buf, len, format, ap); |
strx_printv(&cc, buf, len, format, ap); |
if (cc >= len) { |
if (cc >= len) { |