Diff
Not logged in

Differences From:

File src/db.c part of check-in [d5e7891b07] - Add a more advanced commit-hook mechanism that allows us to specify multiple procedures in a particular order prior to commit. Continuing work toward getting tickets going. by drh on 2007-11-18 20:48:07. [view]

To:

File src/db.c part of check-in [f9f7cf5684] - The autosync setting understands values like "on", "off", "true", and "false" in addition to 0 and 1. Updates to the documentation. by drh on 2007-11-24 02:45:39. [view]

@@ -951,8 +951,21 @@
   if( globalFlag && g.repositoryOpen ){
     db_multi_exec("DELETE FROM config WHERE name=%Q", zName);
   }
   db_end_transaction(0);
+}
+int db_get_boolean(const char *zName, int dflt){
+  static const char *azOn[] = { "on", "yes", "true", "1" };
+  static const char *azOff[] = { "off", "no", "false", "0" };
+  int i;
+  char *zVal = db_get(zName, dflt ? "on" : "off");
+  for(i=0; i<sizeof(azOn)/sizeof(azOn[0]); i++){
+    if( strcmp(zVal,azOn[i])==0 ) return 1;
+  }
+  for(i=0; i<sizeof(azOff)/sizeof(azOff[0]); i++){
+    if( strcmp(zVal,azOff[i])==0 ) return 0;
+  }
+  return dflt;
 }
 char *db_lget(const char *zName, char *zDefault){
   return db_text((char*)zDefault,
                  "SELECT value FROM vvar WHERE name=%Q", zName);