From ef140f17526792de3802106fa9e150b1fa9c6103 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周日, 19 4月 2015 23:38:16 +0800
Subject: [PATCH] Merge branch 'andrey-nakin-master'

---
 libscpi/inc/scpi/config.h |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/libscpi/inc/scpi/config.h b/libscpi/inc/scpi/config.h
index 703465d..ca9ee89 100644
--- a/libscpi/inc/scpi/config.h
+++ b/libscpi/inc/scpi/config.h
@@ -63,6 +63,12 @@
 #define HAVE_STRNICMP           0
 #endif
 
+/* AVR libc */
+#if defined(__AVR__)
+#include <stdlib.h>
+#define HAVE_DTOSTRE            1
+#endif
+
 /* ======== test strnlen ======== */
 #ifndef HAVE_STRNLEN
 #define HAVE_STRNLEN            1
@@ -92,6 +98,31 @@
 #define SCPI_strncasecmp(s1, s2, l)	OUR_strncasecmp((s1), (s2), (l))
 #endif
 
+#if HAVE_DTOSTRE
+char * dtostre(
+	double __val,
+	char * __s,
+	unsigned char __prec,
+	unsigned char __flags);
+
+#ifndef DTOSTR_ALWAYS_SIGN
+#define	DTOSTR_ALWAYS_SIGN 0x01
+#endif
+
+#ifndef DTOSTR_PLUS_SIGN
+#define	DTOSTR_PLUS_SIGN 0x02
+#endif
+
+#ifndef DTOSTR_UPPERCASE
+#define	DTOSTR_UPPERCASE 0x04
+#endif
+
+#define SCPI_doubleToStr(v, s, l) strlen(dtostre((v), (s), 6, DTOSTR_PLUS_SIGN | DTOSTR_ALWAYS_SIGN | DTOSTR_UPPERCASE))
+#else
+#define SCPI_doubleToStr(v, s, l) snprintf((s), (l), "%lg", (v))
+#endif
+
+
 #ifdef	__cplusplus
 }
 #endif

--
Gitblit v1.9.1