]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Cause the command-line shell to issue an error message if you give something
authordrh <drh@noemail.net>
Mon, 28 Jan 2013 18:18:26 +0000 (18:18 +0000)
committerdrh <drh@noemail.net>
Mon, 28 Jan 2013 18:18:26 +0000 (18:18 +0000)
that does not look like a boolean value to a dot-command that wants a boolean
argument.

FossilOrigin-Name: b4d94947fc11bd63180cbc27554b3bbb60abe7ff

manifest
manifest.uuid
src/shell.c
test/shell1.test

index c7b5f36123322da517d0e4f1aa203f2a3f25a497..9307d630d359f3d242fb5d728763b5270ba8b94c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sa\ssingle\stest\scase\sto\sfts4unicode.test\sto\sverify\sthat\stitle-case\nmaps\sto\slower\scase.
-D 2013-01-26T19:31:42.851
+C Cause\sthe\scommand-line\sshell\sto\sissue\san\serror\smessage\sif\syou\sgive\ssomething\nthat\sdoes\snot\slook\slike\sa\sboolean\svalue\sto\sa\sdot-command\sthat\swants\sa\sboolean\nargument.
+D 2013-01-28T18:18:26.777
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in a48faa9e7dd7d556d84f5456eabe5825dd8a6282
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -175,7 +175,7 @@ F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
 F src/resolve.c 0bca3bf694f14f96a13873d87f62d6a6f38f913f
 F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
 F src/select.c 395e458a6dc611cbe1179f424753f0c344957607
-F src/shell.c 215278ae0c4d06a373f885a030b8a522ccb34423
+F src/shell.c 266791241d7add796ccce2317977ae6c3c67d77f
 F src/sqlite.h.in 39cc33bb08897c748fe3383c29ccf56585704177
 F src/sqlite3.rc fea433eb0a59f4c9393c8e6d76a6e2596b1fe0c0
 F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
@@ -715,7 +715,7 @@ F test/shared8.test b27befbefbe7f4517f1d6b7ff8f64a41ec74165d
 F test/shared9.test 5f2a8f79b4d6c7d107a01ffa1ed05ae7e6333e21
 F test/shared_err.test 0079c05c97d88cfa03989b7c20a8b266983087aa
 F test/sharedlock.test ffa0a3c4ac192145b310f1254f8afca4d553eabf
-F test/shell1.test b9b45c3591b892dcda59687f0b23606d065aeee0
+F test/shell1.test 4a2f57952719972c6f862134463f8712e953c038
 F test/shell2.test 037d6ad16e873354195d30bb2dc4b5321788154a
 F test/shell3.test 9196c42772d575685e722c92b4b39053c6ebba59
 F test/shell4.test aa4eef8118b412d1a01477a53426ece169ea86a9
@@ -1034,7 +1034,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P 7813b17d8b9fe48ddc841fe1c4bb75f7747073de
-R 2d27720c240fd9feb8b6d8ff72484bc3
+P 955a9459dabad231aa8d6282676975ab7fba244e
+R 66b9882bd300b48db89596b4965fc6ad
 U drh
-Z 8f172a225fdae03e0e13eca34bff7bb5
+Z 250538fa0a3f3f5cd6c8e21a5b90ee24
index 4e94bd8fc4b016c51e18a25eb744f121a99056e3..166b1140501a5560c05fe12801013628a34bc7b4 100644 (file)
@@ -1 +1 @@
-955a9459dabad231aa8d6282676975ab7fba244e
\ No newline at end of file
+b4d94947fc11bd63180cbc27554b3bbb60abe7ff
\ No newline at end of file
index 0fb463c50dd98755714ac6a878fa772ebdcade82..1428a45f0cc4a2680c652ca272a1a2ec5c8f4a56 100644 (file)
@@ -1537,17 +1537,18 @@ static void resolve_backslashes(char *z){
 ** Interpret zArg as a boolean value.  Return either 0 or 1.
 */
 static int booleanValue(char *zArg){
-  int val = atoi(zArg);
-  int j;
-  for(j=0; zArg[j]; j++){
-    zArg[j] = ToLower(zArg[j]);
+  int i;
+  for(i=0; zArg[i]>='0' && zArg[i]<='9'; i++){}
+  if( i>0 && zArg[i]==0 ) return atoi(zArg);
+  if( sqlite3_stricmp(zArg, "on")==0 || sqlite3_stricmp(zArg,"yes")==0 ){
+    return 1;
   }
-  if( strcmp(zArg,"on")==0 ){
-    val = 1;
-  }else if( strcmp(zArg,"yes")==0 ){
-    val = 1;
+  if( sqlite3_stricmp(zArg, "off")==0 || sqlite3_stricmp(zArg,"no")==0 ){
+    return 0;
   }
-  return val;
+  fprintf(stderr, "ERROR: Not a boolean value: \"%s\". Assuming \"no\".\n",
+          zArg);
+  return 0;
 }
 
 /*
index ba3be3b096dd01fd9a75abcc5e524424a81e5be5..c60f3af7026a02e11863be5229471ecb7ec2bd09 100644 (file)
@@ -220,7 +220,7 @@ do_test shell1-2.3.2 {
 } {0 {}}
 do_test shell1-2.3.3 {
   catchcmd "test.db" ".explain \"1 2 3\""
-} {0 {}}
+} {1 {ERROR: Not a boolean value: "1 2 3". Assuming "no".}}
 do_test shell1-2.3.4 {
   catchcmd "test.db" ".explain \"OFF\""
 } {0 {}}