From: drh Date: Sun, 26 Nov 2017 02:14:18 +0000 (+0000) Subject: Fix an CSV output quoting problem in the command-line shell on Windows. X-Git-Tag: version-3.22.0~178 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b7affc451d41afd060dd98b7b76605e92787142;p=thirdparty%2Fsqlite.git Fix an CSV output quoting problem in the command-line shell on Windows. FossilOrigin-Name: 6500cdbd36b0169f37fe363c49182b3e30477a51bb521c2a964555cd086a5589 --- diff --git a/manifest b/manifest index fa07b8e660..d1e9d5f842 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 45ca11ffc8..9e0d368055 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -24d7058e2799133dd681d2fef341025ca50554861bb4cd39e93ee87ae1d8a605 \ No newline at end of file +6500cdbd36b0169f37fe363c49182b3e30477a51bb521c2a964555cd086a5589 \ No newline at end of file diff --git a/src/shell.c.in b/src/shell.c.in index f41e7438ed..daa887ef5d 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -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); }