From 00729cba46c0b51d5001027f139b596ab81497da Mon Sep 17 00:00:00 2001
From: drh <drh@noemail.net>
Date: Sat, 4 Oct 2014 11:59:33 +0000
Subject: [PATCH] Updates to documentation and requirements marks.  No code
 changes.

FossilOrigin-Name: 0f8102d71a0ee828629f037775ad86fe2a544120
---
 manifest        | 18 +++++++++---------
 manifest.uuid   |  2 +-
 src/global.c    |  7 +++++++
 src/main.c      | 11 +++++++++--
 src/sqlite.h.in | 13 ++++++-------
 test/e_uri.test |  3 +++
 6 files changed, 35 insertions(+), 19 deletions(-)

diff --git a/manifest b/manifest
index 1c0365b036..ec8a762863 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\srequirements\smarks\son\sthe\ssqlite3_db_status()\sinterface\simplementation.\nFix\sa\stypo\sin\sthe\sdocumentation.\s\sFix\sthe\snew\ssqlite3_result_text64()\sroutine\nso\sthat\sit\sworks\scorrectly\swith\san\sencoding\sparameter\sof\sSQLITE_UTF16.
-D 2014-10-03T16:00:51.115
+C Updates\sto\sdocumentation\sand\srequirements\smarks.\s\sNo\scode\schanges.
+D 2014-10-04T11:59:33.912
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -185,7 +185,7 @@ F src/expr.c fc204d08af06437ddaffe5a1b1f1f6f9e1a55d6d
 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
 F src/fkey.c da985ae673efef2c712caef825a5d2edb087ead7
 F src/func.c ba47c1671ab3cfdafa6e9d6ee490939ea578adee
-F src/global.c 5110fa12e09729b84eee0191c984ec4008e21937
+F src/global.c 01c1f36ecfcf10770db648422a8852c222308bb9
 F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
 F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094
 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
@@ -194,7 +194,7 @@ F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
 F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
 F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770
 F src/loadext.c de741e66e5ddc1598d904d7289239696e40ed994
-F src/main.c 4a507a467cc20979579e4320ca6466b8ed0be268
+F src/main.c bbe872b0ac0007bed0ebe1936fc493b039ad4f51
 F src/malloc.c 7cf86b4f2310898675d8a962342e5650779dfb3f
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c faf615aafd8be74a71494dfa027c113ea5c6615f
@@ -229,7 +229,7 @@ F src/resolve.c a3466128b52a86c466e47ac1a19e2174f7b5cf89
 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
 F src/select.c f11533162b57ed5ed37f549add34cbcdf51f6712
 F src/shell.c 38f627b0885191357f55902a3ac199de90d79715
-F src/sqlite.h.in a0b09ea5f73f3629c20b9788e0cde2a70f1703f5
+F src/sqlite.h.in 7e5a6b5cce31f0b4844376566b9374fabc4985f9
 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
 F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d
 F src/sqliteInt.h 5a430c5443717d7c5e2c224f9dcc2534348dc3f6
@@ -461,7 +461,7 @@ F test/e_resolve.test dcce9308fb13b934ce29591105d031d3e14fbba6
 F test/e_select.test 52692ff3849541e828ad4661fe3773a9b8711763
 F test/e_select2.test aceb80ab927d46fba5ce7586ebabf23e2bb0604f
 F test/e_update.test 312cb8f5ccfe41515a6bb092f8ea562a9bd54d52
-F test/e_uri.test a2c92d80093a7efdcfbb11093651cbea87097b6b
+F test/e_uri.test 5ae33760fb2039c61aa2d90886f1664664173585
 F test/e_vacuum.test 5bfbdc21b65c0abf24398d0ba31dc88d93ca77a9
 F test/enc.test e54531cd6bf941ee6760be041dff19a104c7acea
 F test/enc2.test 83437a79ba1545a55fb549309175c683fb334473
@@ -1201,7 +1201,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 440705b98a3429b830ea85e71cc1e414bc6d8058
-R 8a35df4f3d17b4f437ae0dc791626bd3
+P d2fc322728331ae2d147c8496129df5e3c655eb5
+R 48a7506351fd9c89c269926766fa27eb
 U drh
-Z 3c9270c816943439d7ab9b669a742153
+Z 0614c4bed4c215b7b30b213ff48ceb06
diff --git a/manifest.uuid b/manifest.uuid
index 4d17ba50dd..de0530ba8a 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-d2fc322728331ae2d147c8496129df5e3c655eb5
\ No newline at end of file
+0f8102d71a0ee828629f037775ad86fe2a544120
\ No newline at end of file
diff --git a/src/global.c b/src/global.c
index 22b990699b..e769eb425f 100644
--- a/src/global.c
+++ b/src/global.c
@@ -129,6 +129,13 @@ const unsigned char sqlite3CtypeMap[256] = {
 };
 #endif
 
+/* EVIDENCE-OF: R-02982-34736 In order to maintain full backwards
+** compatibility for legacy applications, the URI filename capability is
+** disabled by default.
+**
+** EVIDENCE-OF: R-38799-08373 URI filenames can be enabled or disabled
+** using the SQLITE_USE_URI=1 or SQLITE_USE_URI=0 compile-time options.
+*/
 #ifndef SQLITE_USE_URI
 # define  SQLITE_USE_URI 0
 #endif
diff --git a/src/main.c b/src/main.c
index dc17917796..ea03f2639f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -476,6 +476,11 @@ int sqlite3_config(int op, ...){
       break;
     }
 
+    /* EVIDENCE-OF: R-55548-33817 The compile-time setting for URI filenames
+    ** can be changed at start-time using the
+    ** sqlite3_config(SQLITE_CONFIG_URI,1) or
+    ** sqlite3_config(SQLITE_CONFIG_URI,0) configuration calls.
+    */
     case SQLITE_CONFIG_URI: {
       sqlite3GlobalConfig.bOpenUri = va_arg(ap, int);
       break;
@@ -2213,7 +2218,7 @@ int sqlite3ParseUri(
   assert( *pzErrMsg==0 );
 
   if( ((flags & SQLITE_OPEN_URI) || sqlite3GlobalConfig.bOpenUri) 
-   && nUri>=5 && memcmp(zUri, "file:", 5)==0 
+   && nUri>=5 && memcmp(zUri, "file:", 5)==0 /* IMP: R-57884-37496 */
   ){
     char *zOpt;
     int eState;                   /* Parser state when parsing URI */
@@ -2443,7 +2448,9 @@ static int openDatabase(
   testcase( (1<<(flags&7))==0x02 ); /* READONLY */
   testcase( (1<<(flags&7))==0x04 ); /* READWRITE */
   testcase( (1<<(flags&7))==0x40 ); /* READWRITE | CREATE */
-  if( ((1<<(flags&7)) & 0x46)==0 ) return SQLITE_MISUSE_BKPT;
+  if( ((1<<(flags&7)) & 0x46)==0 ){
+    return SQLITE_MISUSE_BKPT;  /* IMP: R-65497-44594 */
+  }
 
   if( sqlite3GlobalConfig.bCoreMutex==0 ){
     isThreadsafe = 0;
diff --git a/src/sqlite.h.in b/src/sqlite.h.in
index cc7bcd620e..d8e99c13e1 100644
--- a/src/sqlite.h.in
+++ b/src/sqlite.h.in
@@ -2754,13 +2754,14 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
 ** then it is interpreted as an absolute path. ^If the path does not begin 
 ** with a '/' (meaning that the authority section is omitted from the URI)
 ** then the path is interpreted as a relative path. 
-** ^On windows, the first component of an absolute path 
-** is a drive specification (e.g. "C:").
+** ^(On windows, the first component of an absolute path 
+** is a drive specification (e.g. "C:").)^
 **
 ** [[core URI query parameters]]
 ** The query component of a URI may contain parameters that are interpreted
 ** either by SQLite itself, or by a [VFS | custom VFS implementation].
-** SQLite interprets the following three query parameters:
+** SQLite and its built-in [VFSes] interpret the
+** following query parameters:
 **
 ** <ul>
 **   <li> <b>vfs</b>: ^The "vfs" parameter may be used to specify the name of
@@ -2795,11 +2796,9 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
 **     a URI filename, its value overrides any behavior requested by setting
 **     SQLITE_OPEN_PRIVATECACHE or SQLITE_OPEN_SHAREDCACHE flag.
 **
-**  <li> <b>psow</b>: ^The psow parameter may be "true" (or "on" or "yes" or
-**     "1") or "false" (or "off" or "no" or "0") to indicate that the
+**  <li> <b>psow</b>: ^The psow parameter indicates whether or not the
 **     [powersafe overwrite] property does or does not apply to the
-**     storage media on which the database file resides.  ^The psow query
-**     parameter only works for the built-in unix and Windows VFSes.
+**     storage media on which the database file resides.
 **
 **  <li> <b>nolock</b>: ^The nolock parameter is a boolean query parameter
 **     which if set disables file locking in rollback journal modes.  This
diff --git a/test/e_uri.test b/test/e_uri.test
index a8865cad28..d1590e4108 100644
--- a/test/e_uri.test
+++ b/test/e_uri.test
@@ -125,6 +125,9 @@ if {$tcl_platform(platform) == "unix"} {
 sqlite3_shutdown
 sqlite3_config_uri 1
 
+# EVIDENCE-OF: R-06842-00595 If the URI contains an authority, then it
+# must be either an empty string or the string "localhost".
+#
 # EVIDENCE-OF: R-17482-00398 If the authority is not an empty string or
 # "localhost", an error is returned to the caller.
 #