aboutsummaryrefslogtreecommitdiff
path: root/devel/clanlib-devel/files/patch-Sources_Util_fcvt.c
diff options
context:
space:
mode:
Diffstat (limited to 'devel/clanlib-devel/files/patch-Sources_Util_fcvt.c')
-rw-r--r--devel/clanlib-devel/files/patch-Sources_Util_fcvt.c145
1 files changed, 0 insertions, 145 deletions
diff --git a/devel/clanlib-devel/files/patch-Sources_Util_fcvt.c b/devel/clanlib-devel/files/patch-Sources_Util_fcvt.c
deleted file mode 100644
index ed8898b293af..000000000000
--- a/devel/clanlib-devel/files/patch-Sources_Util_fcvt.c
+++ /dev/null
@@ -1,145 +0,0 @@
-
-$FreeBSD$
-
---- /dev/null Wed Jan 10 00:32:20 2001
-+++ Sources/Util/fcvt.c Wed Jan 10 00:31:59 2001
-@@ -0,0 +1,139 @@
-+/* Compatibility functions for floating point formatting, reentrant versions.
-+ Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA. */
-+
-+#include <ctype.h>
-+#include <errno.h>
-+#include <float.h>
-+#include <math.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <sys/param.h>
-+
-+extern int errno;
-+
-+#if DBL_MANT_DIG == 53
-+# define NDIGIT_MAX 17
-+#else
-+/*
-+ * See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a
-+ * compile time constant here, so we cannot use it.
-+ */
-+# error "NDIGIT_MAX must be precomputed"
-+# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0)))
-+#endif
-+#define MAXDIG (NDIGIT_MAX + 3)
-+#define signbit(x) (((x)<(0))?(1):(0))
-+
-+static char *FCVT_BUFFER[MAXDIG];
-+
-+static int fcvt_r(double value, int ndigit, int *decpt, int *sign, char *buf, \
-+ size_t len)
-+{
-+ int n, i;
-+ int left;
-+
-+ if (buf == NULL)
-+ {
-+ errno = EINVAL;
-+ return -1;
-+ }
-+
-+ left = 0;
-+ if (finite(value))
-+ {
-+ *sign = signbit(value) != 0;
-+ if (*sign)
-+ value = -value;
-+
-+ if (ndigit < 0)
-+ {
-+
-+ while (ndigit < 0)
-+ {
-+ double new_value = value * 0.1;
-+
-+ if (new_value < 1.0)
-+ {
-+ ndigit = 0;
-+ break;
-+ }
-+
-+ value = new_value;
-+ ++left;
-+ ++ndigit;
-+ }
-+ }
-+ }
-+ else
-+ *sign = 0;
-+
-+ n = snprintf(buf, len, "%.*f", MIN(ndigit, NDIGIT_MAX), value);
-+
-+ if (n >= len)
-+ return -1;
-+
-+ i = 0;
-+ while (i < n && isdigit(buf[i]))
-+ ++i;
-+ *decpt = i;
-+
-+ if (i == 0)
-+ return 0;
-+
-+ if (i < n)
-+ {
-+ do
-+ ++i;
-+ while (i < n && !isdigit(buf[i]));
-+
-+ if (*decpt == 1 && buf[0] == '0' && value != 0.0)
-+ {
-+ --*decpt;
-+
-+ while (i < n && buf[i] == '0')
-+ {
-+ --*decpt;
-+ ++i;
-+ }
-+ }
-+
-+ memmove(&buf[MAX(*decpt, 0)], &buf[i], n - i);
-+ buf[n - (i - MAX(*decpt, 0))] = '\0';
-+ }
-+
-+ if (left)
-+ {
-+ *decpt += left;
-+ if (--len > n)
-+ {
-+ while (left-- > 0 && n < len)
-+ buf[n++] = '0';
-+ buf[n] = '\0';
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+char *fcvt(double value, int ndigit, int *decpt, int *sign)
-+{
-+ fcvt_r(value, ndigit, decpt, sign, (char *)FCVT_BUFFER, MAXDIG);
-+ return (char *)FCVT_BUFFER;
-+}
-+