Module Name:    src
Committed By:   martin
Date:           Thu Feb 14 17:12:24 UTC 2013

Modified Files:
        src/external/public-domain/sqlite/bin: Makefile
        src/external/public-domain/sqlite/dist: sqlite3.c

Log Message:
When converting long double values to decimal, convert to int via a call
to floor(), so the conversion does not depend on current rounding mode.
Fixes PR port-sparc64/47535.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/public-domain/sqlite/bin/Makefile
cvs rdiff -u -r1.6 -r1.7 src/external/public-domain/sqlite/dist/sqlite3.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/public-domain/sqlite/bin/Makefile
diff -u src/external/public-domain/sqlite/bin/Makefile:1.3 src/external/public-domain/sqlite/bin/Makefile:1.4
--- src/external/public-domain/sqlite/bin/Makefile:1.3	Sun Dec 16 20:31:07 2012
+++ src/external/public-domain/sqlite/bin/Makefile	Thu Feb 14 17:12:23 2013
@@ -1,11 +1,11 @@
-# $NetBSD: Makefile,v 1.3 2012/12/16 20:31:07 christos Exp $
+# $NetBSD: Makefile,v 1.4 2013/02/14 17:12:23 martin Exp $
 
 PROG=		sqlite3
 
 SRCS=		shell.c
 
 DPADD+=		${LIBSQLITE3} ${LIBEDIT} ${LIBTERIMINFO}
-LDADD+=		-lsqlite3 -ledit -lterminfo
+LDADD+=		-lsqlite3 -ledit -lterminfo -lm
 
 BINDIR=		/usr/bin
 

Index: src/external/public-domain/sqlite/dist/sqlite3.c
diff -u src/external/public-domain/sqlite/dist/sqlite3.c:1.6 src/external/public-domain/sqlite/dist/sqlite3.c:1.7
--- src/external/public-domain/sqlite/dist/sqlite3.c:1.6	Mon Feb  6 17:24:49 2012
+++ src/external/public-domain/sqlite/dist/sqlite3.c	Thu Feb 14 17:12:23 2013
@@ -19422,11 +19422,14 @@ static const et_info fmtinfo[] = {
 ** 16 (the number of significant digits in a 64-bit float) '0' is
 ** always returned.
 */
+#ifdef SQLITE_HAVE_ISNAN
+# include <math.h>
+#endif
 static char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){
   int digit;
   LONGDOUBLE_TYPE d;
   if( (*cnt)++ >= 16 ) return '0';
-  digit = (int)*val;
+  digit = (int)floor(*val);
   d = digit;
   digit += '0';
   *val = (*val - d)*10.0;
@@ -20998,9 +21001,6 @@ SQLITE_PRIVATE void sqlite3UtfSelfTest(v
 **
 */
 /* #include <stdarg.h> */
-#ifdef SQLITE_HAVE_ISNAN
-# include <math.h>
-#endif
 
 /*
 ** Routine needed to support the testcase() macro.
@@ -132872,7 +132872,7 @@ SQLITE_API int sqlite3_extension_init(
 **    May you share freely, never taking more than you give.
 **
 *************************************************************************
-** $Id: sqlite3.c,v 1.6 2012/02/06 17:24:49 matt Exp $
+** $Id: sqlite3.c,v 1.7 2013/02/14 17:12:23 martin Exp $
 **
 ** This file implements an integration between the ICU library 
 ** ("International Components for Unicode", an open-source library 

Reply via email to