]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the ".cd" command to the command-line shell.
authordrh <drh@noemail.net>
Mon, 22 May 2017 18:00:34 +0000 (18:00 +0000)
committerdrh <drh@noemail.net>
Mon, 22 May 2017 18:00:34 +0000 (18:00 +0000)
FossilOrigin-Name: 5fe28e15b1d6d8a588fcaf93c6035c0e0ab7bcad1067c7933cd430d2e04bbbd8

manifest
manifest.uuid
src/shell.c

index 6a1309feb76e846d66ad0c6c46e54cbabce89108..7a8007036c841f0ffe6a902056a03c8414e0233e 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Increase\sthe\sversion\snumber\sto\s3.20\sfor\sthe\snext\srelease\scycle.
-D 2017-05-22T17:39:37.473
+C Add\sthe\s".cd"\scommand\sto\sthe\scommand-line\sshell.
+D 2017-05-22T18:00:34.366
 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 8eeb80162074004e906b53d7340a12a14c471a83743aab975947e95ce061efcc
@@ -404,7 +404,7 @@ F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c 3e518b962d932a997fae373366880fc028c75706
 F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
 F src/select.c d74b1cde1d9ca6d08bec50b60a5be19440273646bc8ae16648d748c38161d5b7
-F src/shell.c a37d96b20b3644d0eb905df5aa7a0fcf9f6e73c15898337230c760a24a8df794
+F src/shell.c 9235003e7269ca95e6357393cee03450e7e89ba74470e5ee698d3a8cb1a7deea
 F src/sqlite.h.in 8dd468837a4f6d76713e3a4cc65bea48095009038593d41040ab46c1b351197f
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 58fd0676d3111d02e62e5a35992a7d3da5d3f88753acc174f2d37b774fbbdd28
@@ -1580,7 +1580,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 e6ba2a93a8d28074ff134dd43c142315de291b7c0a38ecc692863c33975c71c7
-R b87e78030e97fb428f8ad5e879fef2db
+P ab471f61ef7d9ed1bf937d5e458f720d12209712a015786434edc818a98168c9
+R cac670b792c55b8eecc1a284a755f203
 U drh
-Z 92879950245201965bacd6d4a4abcb0c
+Z c2c82ac037c73e1a656500d3e1322e3f
index 372a24a9a629acc291f056ee393a1e9c97105300..b9752fa7151db76616f5681710dea37b276b43ac 100644 (file)
@@ -1 +1 @@
-ab471f61ef7d9ed1bf937d5e458f720d12209712a015786434edc818a98168c9
\ No newline at end of file
+5fe28e15b1d6d8a588fcaf93c6035c0e0ab7bcad1067c7933cd430d2e04bbbd8
\ No newline at end of file
index d36f1fdd19beb76e8702d2f8310a42d82456d17a..468d82379ba01764dd1df1d3882a39bb82fcd7db 100644 (file)
@@ -3234,6 +3234,7 @@ static char zHelp[] =
   ".backup ?DB? FILE      Backup DB (default \"main\") to FILE\n"
   ".bail on|off           Stop after hitting an error.  Default OFF\n"
   ".binary on|off         Turn binary output on or off.  Default OFF\n"
+  ".cd DIRECTORY          Change the working directory to DIRECTORY\n"
   ".changes on|off        Show number of rows changed by SQL\n"
   ".check GLOB            Fail if output since .testcase does not match\n"
   ".clone NEWDB           Clone data into NEWDB from the existing database\n"
@@ -4731,6 +4732,25 @@ static int do_meta_command(char *zLine, ShellState *p){
     }
   }else
 
+  if( c=='c' && strcmp(azArg[0],"cd")==0 ){
+    if( nArg==2 ){
+#if defined(_WIN32) || defined(WIN32)
+      wchar_t *z = sqlite3_win32_utf8_to_unicode(azArg[1]);
+      rc = !SetCurrentDirectoryW(z);
+      sqlite3_free(z);
+#else
+      rc = chdir(azArg[1]);
+#endif
+      if( rc ){
+        utf8_printf(stderr, "Cannot change to directory \"%s\"\n", azArg[1]);
+        rc = 1;
+      }
+    }else{
+      raw_printf(stderr, "Usage: .cd DIRECTORY\n");
+      rc = 1;
+    }
+  }else
+
   /* The undocumented ".breakpoint" command causes a call to the no-op
   ** routine named test_breakpoint().
   */