This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 1883b91e3c libc: Remove the unused lib_libdtoa.c
1883b91e3c is described below

commit 1883b91e3c3cfdce1f88800a5b0512168b46b1de
Author: Xiang Xiao <[email protected]>
AuthorDate: Sun Oct 22 04:06:39 2023 +0800

    libc: Remove the unused lib_libdtoa.c
    
    __dtoa is not used because currently NuttX uses other
    function called __dtoa_engine() to do the same thing
    
    Signed-off-by: Xiang Xiao <[email protected]>
---
 LICENSE                       |  38 ----
 libs/libc/libc.h              |   7 -
 libs/libc/stdio/lib_libdtoa.c | 397 ------------------------------------------
 3 files changed, 442 deletions(-)

diff --git a/LICENSE b/LICENSE
index 0381c0f7be..2247c20b2e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -6094,44 +6094,6 @@ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN
 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
 
-libs/libc/stdio/lib_libdtoa.c
-================================
-
-Copyright (c) 1990, 1993
-     The Regents of the University of California.  All rights reserved.
-
-This code is derived from software contributed to Berkeley by
-Chris Torek.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
-   must display the following acknowledgement:
-     This product includes software developed by the University of
-     California, Berkeley and its contributors.
-4. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
 libs/libc/stdio/lib_libvsprintf.c
 ====================================
 
diff --git a/libs/libc/libc.h b/libs/libc/libc.h
index 332556feb7..178fa44737 100644
--- a/libs/libc/libc.h
+++ b/libs/libc/libc.h
@@ -178,13 +178,6 @@ extern "C"
  * Public Function Prototypes
  ****************************************************************************/
 
-/* Defined in lib_dtoa.c */
-
-#ifdef CONFIG_LIBC_FLOATINGPOINT
-FAR char *__dtoa(double d, int mode, int ndigits, FAR int *decpt,
-                 FAR int *sign, FAR char **rve);
-#endif
-
 /* Defined in lib_getfullpath.c */
 
 int lib_getfullpath(int dirfd, FAR const char *path,
diff --git a/libs/libc/stdio/lib_libdtoa.c b/libs/libc/stdio/lib_libdtoa.c
deleted file mode 100644
index e9f6336651..0000000000
--- a/libs/libc/stdio/lib_libdtoa.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/****************************************************************************
- * libs/libc/stdio/lib_libdtoa.c
- *
- * This file was ported to NuttX by Yolande Cates.
- *
- * Copyright (c) 1990, 1993
- *      The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Chris Torek.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed by the University of
- *      California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <sys/param.h>
-#include <math.h>
-#include <assert.h>
-
-#include <nuttx/arch.h>
-
-#include "libc.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/* Use the maximim precision with %g format if no precision is specified.
- * NOTE:  This may result in numbers with precision that exceeds the
- * precision of type double.
- */
-
-#define DOUBLE_PRECISON_MAX 15
-
-/* Use a default precision of 6 for the %f format if no precision is
- * specified.
- */
-
-#define DEFAULT_PRECISON    6
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: zeroes
- *
- * Description:
- *   Print the specified number of zeres
- *
- ****************************************************************************/
-
-static void zeroes(FAR struct lib_outstream_s *obj, int nzeroes)
-{
-  int i;
-
-  for (i = nzeroes; i > 0; i--)
-    {
-      lib_stream_putc(obj, '0');
-    }
-}
-
-/****************************************************************************
- * Name: truncate_zeroes
- *
- * Description:
- *   Adjust the string length to eliminate zeros in the fractional part of
- *   the string.
- *
- ****************************************************************************/
-
-static inline int truncate_zeroes(FAR char *digits, int expt, int numlen)
-{
-  for (; numlen > expt && digits[numlen - 1] == '0'; numlen--)
-    {
-    }
-
-  return numlen;
-}
-
-/****************************************************************************
- * Name: lib_dtoa_string
- *
- * Description:
- *   Print the specified string
- *
- ****************************************************************************/
-
-static void lib_dtoa_string(FAR struct lib_outstream_s *obj, const char *str)
-{
-  while (*str)
-    {
-      lib_stream_putc(obj, *str++);
-    }
-}
-
-/****************************************************************************
- * Name: lib_dtoa
- *
- * Description:
- *   This is part of lib_vsprintf().  It handles the floating point formats.
- *   This version supports only the %f (with precision).  If no precision
- *   was provided in the format, this will use precision == 0 which is
- *   probably not what you want.
- *
- * Input Parameters:
- *   obj   - The output stream object
- *   fmt   - The format character.  Not used 'f' is always assumed
- *   prec  - The number of digits to the right of the decimal point. If no
- *           precision is provided in the format, this will be zero.  And,
- *           unfortunately in this case, it will be treated literally as
- *           a precision of zero.
- *   flags - Only ALTFORM and SHOWPLUS flags are supported.  ALTFORM only
- *           applies if prec == 0 which is not supported anyway.
- *   value - The floating point value to convert.
- *
- ****************************************************************************/
-
-static void lib_dtoa(FAR struct lib_outstream_s *obj, int fmt, int prec,
-                     uint16_t flags, double value)
-{
-  FAR char *digits;     /* String returned by __dtoa */
-  FAR char *rve;        /* Points to the end of the return value */
-  bool notrailing;      /* True:  No trailing zeros */
-  int  expt;            /* Integer value of exponent */
-  int  numlen;          /* Actual number of digits returned by cvt */
-  int  nchars;          /* Number of characters to print */
-  int  dsgn;            /* Unused sign indicator */
-  int  i;
-
-  /* Set to default precision if none specified */
-
-  notrailing = false;
-  if (!IS_HASDOT(flags) && prec == 0)
-    {
-      if (IS_NOTRAILINGZERO(flags))
-        {
-          prec       = DOUBLE_PRECISON_MAX;
-          notrailing = true;
-        }
-      else
-        {
-          prec       = DEFAULT_PRECISON;
-        }
-    }
-
-  /* Special handling for NaN and Infinity */
-
-  if (isnan(value))
-    {
-      lib_dtoa_string(obj, "NaN");
-      return;
-    }
-
-  if (isinf(value))
-    {
-      if (value < 0.0)
-        {
-          lib_stream_putc(obj, '-');
-        }
-
-      lib_dtoa_string(obj, "Infinity");
-      return;
-    }
-
-  /* Non-zero... positive or negative */
-
-  if (value < 0)
-    {
-      value = -value;
-      SET_NEGATE(flags);
-    }
-
-  /* Perform the conversion */
-
-  digits = __dtoa(value, 3, prec, &expt, &dsgn, &rve);
-  numlen = rve - digits;
-
-  /* If we are going to truncate trailing zeros, then make sure we have not
-   * exceeded the precision of type double.
-   */
-
-  if (notrailing && numlen > DOUBLE_PRECISON_MAX)
-    {
-      /* Make sure there are fractional digits to truncate */
-
-      if (expt <= DOUBLE_PRECISON_MAX)
-        {
-          numlen = DOUBLE_PRECISON_MAX;
-        }
-      else
-        {
-          numlen = expt;
-        }
-
-      /* Shortening the string probably now exposes some trailing zeroes */
-
-      numlen =  truncate_zeroes(digits, expt, numlen);
-    }
-
-  /* Avoid precision error from missing trailing zeroes */
-
-  numlen = MAX(expt, numlen);
-
-  if (IS_NEGATE(flags))
-    {
-      lib_stream_putc(obj, '-');
-    }
-  else if (IS_SHOWPLUS(flags))
-    {
-      lib_stream_putc(obj, '+');
-    }
-
-  /* Special case exact zero or the case where the number is smaller than
-   * the print precision.
-   */
-
-  if (value == 0.0 || (expt < (notrailing ? 0 : -prec)))
-    {
-      /* kludge for __dtoa irregularity */
-
-      lib_stream_putc(obj, '0');
-
-      /* A decimal point is printed only in the alternate form or if a
-       * particular precision is requested.
-       */
-
-      if ((prec > 0 && !notrailing) || IS_ALTFORM(flags))
-        {
-          lib_stream_putc(obj, '.');
-
-          /* Always print at least one digit to the right of the decimal
-           * point.
-           */
-
-          if (notrailing)
-            {
-              prec = MAX(1, numlen);
-            }
-          else
-            {
-              prec = MAX(1, prec);
-            }
-        }
-    }
-
-  /* A non-zero value will be printed */
-
-  else
-    {
-      /* Handle the case where the value is less than 1.0 (in magnitude) and
-       * will need a leading zero.
-       */
-
-      if (expt <= 0)
-        {
-          /* Print a single zero to the left of the decimal point */
-
-          lib_stream_putc(obj, '0');
-
-          /* Print the decimal point */
-
-          lib_stream_putc(obj, '.');
-
-          /* Print any leading zeros to the right of the decimal point */
-
-          if (expt < 0 || !notrailing)
-            {
-              nchars = MIN(-expt, prec);
-              zeroes(obj, nchars);
-              prec -= nchars;
-            }
-        }
-
-      /* Handle the general case where the value is greater than 1.0 (in
-       * magnitude).
-       */
-
-      else
-        {
-          /* Print the integer part to the left of the decimal point */
-
-          for (i = expt; i > 0; i--)
-            {
-              if (*digits != '\0')
-                {
-                  lib_stream_putc(obj, *digits);
-                  digits++;
-                }
-              else
-                {
-                  lib_stream_putc(obj, '0');
-                }
-            }
-
-          /* Get the length of the fractional part */
-
-          numlen -= expt;
-
-          /* If there is no fractional part, then a decimal point is printed
-           * only in the alternate form or if a particular precision is
-           * requested.
-           */
-
-          if (numlen > 0 || (prec > 0 && !notrailing) ||
-              IS_ALTFORM(flags))
-            {
-              /* Print the decimal point */
-
-              lib_stream_putc(obj, '.');
-
-              /* Always print at least one digit to the right of the decimal
-               * point.
-               */
-
-              if (notrailing)
-                {
-                  prec = MAX(1, numlen);
-                }
-              else
-                {
-                  prec = MAX(1, prec);
-                }
-            }
-        }
-
-      /* If a precision was specified, then limit the number digits to the
-       * right of the decimal point.
-       */
-
-      if (prec > 0)
-        {
-          nchars = MIN(numlen, prec);
-        }
-      else
-        {
-          nchars = numlen;
-        }
-
-      /* Print the fractional part to the right of the decimal point */
-
-      for (i = nchars; i > 0; i--)
-        {
-          lib_stream_putc(obj, *digits);
-          digits++;
-        }
-
-      /* Decrement to get the number of trailing zeroes to print */
-
-      prec -= nchars;
-    }
-
-  /* Finally, print any trailing zeroes */
-
-  if (!notrailing)
-    {
-      zeroes(obj, prec);
-    }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/

Reply via email to