diff options
author | Hans-Christoph Steiner <hans@eds.org> | 2013-01-17 14:18:26 -0500 |
---|---|---|
committer | Hans-Christoph Steiner <hans@eds.org> | 2013-01-17 14:18:26 -0500 |
commit | 1b5ba8e022836fa8ab93bc90df1b34a29ea6e134 (patch) | |
tree | e2a832468ccbf52965f18c37b3c4e692fe97ed06 /src/func.c | |
parent | 487e15dc239ccdb3344d1c99ce120e872bab4a74 (diff) |
Imported Upstream version 2.1.1
Diffstat (limited to 'src/func.c')
-rw-r--r-- | src/func.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -863,8 +863,19 @@ static void quoteFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ assert( argc==1 ); UNUSED_PARAMETER(argc); switch( sqlite3_value_type(argv[0]) ){ - case SQLITE_INTEGER: case SQLITE_FLOAT: { + double r1, r2; + char zBuf[50]; + r1 = sqlite3_value_double(argv[0]); + sqlite3_snprintf(sizeof(zBuf), zBuf, "%!.15g", r1); + sqlite3AtoF(zBuf, &r2, 20, SQLITE_UTF8); + if( r1!=r2 ){ + sqlite3_snprintf(sizeof(zBuf), zBuf, "%!.20e", r1); + } + sqlite3_result_text(context, zBuf, -1, SQLITE_TRANSIENT); + break; + } + case SQLITE_INTEGER: { sqlite3_result_value(context, argv[0]); break; } |