mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-05 04:30:38 +03:00
Add the ".cd" command to the command-line shell.
FossilOrigin-Name: 5fe28e15b1d6d8a588fcaf93c6035c0e0ab7bcad1067c7933cd430d2e04bbbd8
This commit is contained in:
20
src/shell.c
20
src/shell.c
@@ -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().
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user