+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 4 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2003 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 2.02 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available at through the world-wide-web at |
+ | http://www.php.net/license/2_02.txt. |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Author: |
+ +----------------------------------------------------------------------+
+
+ $Id$
+*/
+
+/* $Id$ */
+
/* ====================================================================
* Copyright (c) 1995-1998 The Apache Group. All rights reserved.
*
return (p);
}
+/* If you change this value then also change bug24640.phpt.
+ */
#define NDIG 80
ap_php_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag, char *buf)
{
register int r2;
+ int mvl;
double fi, fj;
register char *p, *p1;
*/
if (fi != 0) {
p1 = &buf[NDIG];
- while (p1 > &buf[0] && fi != 0) {
+ while (fi != 0) {
fj = modf(fi / 10, &fi);
- *--p1 = (int) ((fj + .03) * 10) + '0';
+ if (p1 > &buf[0]) {
+ *--p1 = (int) ((fj + .03) * 10) + '0';
+ } else {
+ mvl = NDIG - ndigits;
+ memmove(&buf[mvl], &buf[0], NDIG-mvl-1);
+ p1 += mvl;
+ *--p1 = (int) ((fj + .03) * 10) + '0';
+ }
r2++;
}
while (p1 < &buf[NDIG])