]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an CSV output quoting problem in the command-line shell on Windows.
authordrh <drh@noemail.net>
Sun, 26 Nov 2017 02:14:18 +0000 (02:14 +0000)
committerdrh <drh@noemail.net>
Sun, 26 Nov 2017 02:14:18 +0000 (02:14 +0000)
FossilOrigin-Name: 6500cdbd36b0169f37fe363c49182b3e30477a51bb521c2a964555cd086a5589

manifest
manifest.uuid
src/shell.c.in

index fa07b8e66021fac808c8bab4297fa47b4dae3624..d1e9d5f8424bfaecd849739cf4856d77b2ec6fb9 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\s"^"\ssyntax\sfrom\sfts3/4\sto\sfts5.
-D 2017-11-24T19:24:44.918
+C Fix\san\sCSV\soutput\squoting\sproblem\sin\sthe\scommand-line\sshell\son\sWindows.
+D 2017-11-26T02:14:18.907
 F Makefile.in 6a879cbf01e37f9eac131414955f71774b566502d9a57ded1b8585b507503cb8
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc e5d7606238f55816da99f719969598df5b091aa2e9a6935c9412fcae8f53fc44
@@ -472,7 +472,7 @@ F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c bbee7e31d369a18a2f4836644769882e9c5d40ef4a3af911db06410b65cb3730
 F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
 F src/select.c 17e220191860a64a18c084141e1a8b7309e166a6f2d42c02021af27ea080d157
-F src/shell.c.in cb1b5e41ef9c081b2b8927ae32c9c384a9ec110ada808ebfe083ba7c8a19bbb8
+F src/shell.c.in c441d7ddfbb8120cd8a7cde838ca5c9167311a7e400b1077c3ae6090aa420be8
 F src/sqlite.h.in 8fd97993d48b50b9bade38c52f12d175942c9497c960905610c7b03a3e4b5818
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h c02d628cca67f3889c689d82d25c3eb45e2c155db08e4c6089b5840d64687d34
@@ -1678,7 +1678,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P e3b6e22049caf78bc4153ded8dc295fe30ad320323d921f16bd794ef30f1b115
-R dd0642a6cc4628ee924c556518e62685
-U dan
-Z b13dcd2f6b4a5ff1701c0fa74c45ed53
+P 24d7058e2799133dd681d2fef341025ca50554861bb4cd39e93ee87ae1d8a605
+R 8e5988afe15fc17639c16180584a05a2
+U drh
+Z 78b26e27b3171f1fcd46be47e5730c56
index 45ca11ffc8d0c04bc665bff6a09a3ed75f45e453..9e0d3680554e86aceda01284533eaf84e1c810dc 100644 (file)
@@ -1 +1 @@
-24d7058e2799133dd681d2fef341025ca50554861bb4cd39e93ee87ae1d8a605
\ No newline at end of file
+6500cdbd36b0169f37fe363c49182b3e30477a51bb521c2a964555cd086a5589
\ No newline at end of file
index f41e7438edd8513b88c4e8fa84aeebfcfc6db416..daa887ef5d9b99b72d28a81d726b808ae5d0e0ec 100644 (file)
@@ -1190,12 +1190,9 @@ static void output_csv(ShellState *p, const char *z, int bSep){
       }
     }
     if( i==0 ){
-      putc('"', out);
-      for(i=0; z[i]; i++){
-        if( z[i]=='"' ) putc('"', out);
-        putc(z[i], out);
-      }
-      putc('"', out);
+      char *zQuoted = sqlite3_mprintf("\"%w\"", z);
+      utf8_printf(out, "%s", zQuoted);
+      sqlite3_free(zQuoted);
     }else{
       utf8_printf(out, "%s", z);
     }