-C If\sno\sKEY\sis\sspecified\son\sATTACH,\scopy\sthe\smain\sschema\skey\sif\sthe\skey\ssize\nis\snon-zero.\s\sIn\sother\swords,\sallow\sfor\s-1\sas\sa\svalid\skey\ssize\sin\ssupport\nof\sthe\s--textkey\sto\sSEE.
-D 2016-09-16T19:42:47.592
+C Fix\stypo\sin\sthe\sname\sof\sa\sWin32\sstring\sconversion\sroutine.\s\sReplace\sseveral\suses\sof\sraw_printf()\swith\sutf8_printf()\sin\sthe\sshell.
+D 2016-09-16T20:39:21.872
F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc e1aa788e84f926e42239ee167c53f785bedacacd
F src/resolve.c 3c3cf0dc719cd2a32ab5c1e10c26481dd565492e
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
F src/select.c 244f9cc5e4662987cd2ef5c22d1b7027560f3425
-F src/shell.c 131978e994157b3925efd6fdf0e0c4ed9ab2cf91
+F src/shell.c b80396d2fadce4681397707e30078bf416e1dec2
F src/sqlite.h.in 46ed821aeed0ba45559fb15597d9a400083154a2
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P e660402e5e654b7f37ad2ce201df5cbb2b9eb9a6
-R 229c67ed88dfee6249671d401c7e5ca7
-U drh
-Z 23da9c0621ec24a2fd4b8d5523827e43
+P 03573887dbf357f8aa54e4a1cd03b82b0ded8139
+R cbd23b2be6d6c200e751cfcfa4ecc2e3
+U mistachkin
+Z d5990f30391f700f012fd4fd2aa1ad1b
extern char *sqlite3_win32_unicode_to_utf8(LPCWSTR);
extern char *sqlite3_win32_mbcs_to_utf8_v2(const char *, int);
extern char *sqlite3_win32_utf8_to_mbcs_v2(const char *, int);
+extern LPWSTR sqlite3_win32_utf8_to_unicode(const char *zText);
#endif
/* On Windows, we normally run with output mode of TEXT so that \n characters
az[1] = zA2;
az[2] = zA3;
az[3] = zA4;
- raw_printf(p->out, "authorizer: %s", azAction[op]);
+ utf8_printf(p->out, "authorizer: %s", azAction[op]);
for(i=0; i<4; i++){
raw_printf(p->out, " ");
if( az[i] ){
return SQLITE_OK;
}
#endif
-
+
/*
** This is the callback routine that the shell
for(i=0; i<ArraySize(aTrans); i++){
int n = (int)strlen(aTrans[i].zPattern);
if( strncmp(aTrans[i].zPattern, z, n)==0 ){
- raw_printf(out, "%-36s %s", aTrans[i].zDesc, &z[n]);
+ utf8_printf(out, "%-36s %s", aTrans[i].zDesc, &z[n]);
break;
}
}
" tcl TCL list elements\n"
".nullvalue STRING Use STRING in place of NULL values\n"
".once FILENAME Output for the next SQL command only to FILENAME\n"
- ".open ?-new? ?FILE? Close existing database and reopen FILE\n"
+ ".open ?--new? ?FILE? Close existing database and reopen FILE\n"
" The --new starts with an empty file\n"
".output ?FILENAME? Send output to FILENAME or stdout\n"
".print STRING... Print literal STRING\n"
int shellDeleteFile(const char *zFilename){
int rc;
#ifdef _WIN32
- wchar_t *z = sqlite3_utf8_to_path(zFilename, 0);
+ wchar_t *z = sqlite3_win32_utf8_to_unicode(zFilename);
rc = _wunlink(z);
sqlite3_free(z);
#else
raw_printf(stderr, "Error: cannot read 'testcase-out.txt'\n");
rc = 2;
}else if( testcase_glob(azArg[1],zRes)==0 ){
- raw_printf(stderr,
+ utf8_printf(stderr,
"testcase-%s FAILED\n Expected: [%s]\n Got: [%s]\n",
p->zTestcase, azArg[1], zRes);
rc = 2;
}else{
- raw_printf(stdout, "testcase-%s ok\n", p->zTestcase);
+ utf8_printf(stdout, "testcase-%s ok\n", p->zTestcase);
p->nCheck++;
}
sqlite3_free(zRes);
}else if( z[0]=='-' ){
utf8_printf(stderr, "unknown option: %s\n", z);
rc = 1;
+ goto meta_command_exit;
}
}
/* If a filename is specified, try to open it first */