summaryrefslogtreecommitdiff
path: root/nuttx/lib
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-04-05 23:21:13 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-04-05 23:21:13 +0000
commitc0d8ad0f16f6e77ddb4dfd1791f6c93b1aa0ce62 (patch)
treec760d74a8cf34a03ebc19ecc05f248e1944ec296 /nuttx/lib
parent559f6b32a41c0f2a8f90cb1a70d4f94c5aabb42b (diff)
downloadpx4-nuttx-c0d8ad0f16f6e77ddb4dfd1791f6c93b1aa0ce62.tar.gz
px4-nuttx-c0d8ad0f16f6e77ddb4dfd1791f6c93b1aa0ce62.tar.bz2
px4-nuttx-c0d8ad0f16f6e77ddb4dfd1791f6c93b1aa0ce62.zip
Fix compilation errors with floating point is enabled and field widths are disabled (I don't know why you would do that, but the code was wrong)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4562 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/lib')
-rw-r--r--[-rwxr-xr-x]nuttx/lib/misc/lib_crc32.c0
-rw-r--r--[-rwxr-xr-x]nuttx/lib/stdio/lib_dtoa.c0
-rw-r--r--[-rwxr-xr-x]nuttx/lib/stdio/lib_libdtoa.c0
-rw-r--r--nuttx/lib/stdio/lib_libvsprintf.c42
-rw-r--r--[-rwxr-xr-x]nuttx/lib/string/lib_strtod.c0
5 files changed, 27 insertions, 15 deletions
diff --git a/nuttx/lib/misc/lib_crc32.c b/nuttx/lib/misc/lib_crc32.c
index f851598e0..f851598e0 100755..100644
--- a/nuttx/lib/misc/lib_crc32.c
+++ b/nuttx/lib/misc/lib_crc32.c
diff --git a/nuttx/lib/stdio/lib_dtoa.c b/nuttx/lib/stdio/lib_dtoa.c
index 894af4f42..894af4f42 100755..100644
--- a/nuttx/lib/stdio/lib_dtoa.c
+++ b/nuttx/lib/stdio/lib_dtoa.c
diff --git a/nuttx/lib/stdio/lib_libdtoa.c b/nuttx/lib/stdio/lib_libdtoa.c
index 3bfe70aea..3bfe70aea 100755..100644
--- a/nuttx/lib/stdio/lib_libdtoa.c
+++ b/nuttx/lib/stdio/lib_libdtoa.c
diff --git a/nuttx/lib/stdio/lib_libvsprintf.c b/nuttx/lib/stdio/lib_libvsprintf.c
index 341c055c6..dd2c5f83f 100644
--- a/nuttx/lib/stdio/lib_libvsprintf.c
+++ b/nuttx/lib/stdio/lib_libvsprintf.c
@@ -1,8 +1,8 @@
/****************************************************************************
* lib/stdio/lib_libvsprintf.c
*
- * Copyright (C) 2007-2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ * Copyright (C) 2007-2012 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -49,16 +49,17 @@
#include "lib_internal.h"
/****************************************************************************
- * Pre-processor oDefinitions
+ * Pre-processor Definitions
****************************************************************************/
+/* If you have floating point but no fieldwidth, then use a fixed (but
+ * configurable) floating point precision.
+ */
-enum
-{
- FMT_RJUST = 0, /* Default */
- FMT_LJUST,
- FMT_RJUST0,
- FMT_CENTER
-};
+#if defined(CONFIG_LIBC_FLOATINGPOINT) && \
+ defined(CONFIG_NOPRINTF_FIELDWIDTH) && \
+ !defined(CONFIG_LIBC_FIXEDPRECISION)
+# define CONFIG_LIBC_FIXEDPRECISION 3
+#endif
#define FLAG_SHOWPLUS 0x01
#define FLAG_ALTFORM 0x02
@@ -129,6 +130,14 @@ enum
* Private Type Declarations
****************************************************************************/
+enum
+{
+ FMT_RJUST = 0, /* Default */
+ FMT_LJUST,
+ FMT_RJUST0,
+ FMT_CENTER
+};
+
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
@@ -1549,9 +1558,8 @@ int lib_vsprintf(FAR struct lib_outstream_s *obj, FAR const char *src, va_list a
#ifdef CONFIG_LIBC_FLOATINGPOINT
else if (strchr("eEfgG", FMT_CHAR))
{
+#ifdef CONFIG_NOPRINTF_FIELDWIDTH
double dblval = va_arg(ap, double);
-
-#ifndef CONFIG_NOPRINTF_FIELDWIDTH
int dblsize;
/* Get the width of the output */
@@ -1561,21 +1569,25 @@ int lib_vsprintf(FAR struct lib_outstream_s *obj, FAR const char *src, va_list a
/* Perform left field justification actions */
prejustify(obj, fmt, flags, width, dblsize);
-#endif
/* Output the number */
lib_dtoa(obj, FMT_CHAR, trunc, flags, dblval);
-#ifndef CONFIG_NOPRINTF_FIELDWIDTH
/* Perform right field justification actions */
postjustify(obj, fmt, flags, width, dblsize);
- }
+#else
+ /* Output the number with a fixed precision */
+
+ double dblval = va_arg(ap, double);
+ lib_dtoa(obj, FMT_CHAR, CONFIG_LIBC_FIXEDPRECISION, flags, dblval);
#endif
+ }
#endif /* CONFIG_LIBC_FLOATINGPOINT */
}
return obj->nput;
}
+
diff --git a/nuttx/lib/string/lib_strtod.c b/nuttx/lib/string/lib_strtod.c
index 86719c510..86719c510 100755..100644
--- a/nuttx/lib/string/lib_strtod.c
+++ b/nuttx/lib/string/lib_strtod.c