1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

De-duplicate some error-output code in shell.c.in as part of tracking down the cause of [forum:5647ca2af1|forum post 5647ca2af1].

FossilOrigin-Name: fd5904495e0c775174f9380bc6877fb9def3d30dec1c9315979ad4503a18d70b
This commit is contained in:
stephan
2024-08-21 09:56:45 +00:00
parent 8c58fd78c3
commit fb7d0c3c01
3 changed files with 28 additions and 23 deletions

View File

@ -6343,12 +6343,17 @@ static int shell_dbinfo_command(ShellState *p, int nArg, char **azArg){
}
#endif /* SQLITE_SHELL_HAVE_RECOVER */
/*
** Print the given string as an error message.
*/
static void shellEmitError(const char *zErr){
eputf("Error: %s\n", zErr);
}
/*
** Print the current sqlite3_errmsg() value to stderr and return 1.
*/
static int shellDatabaseError(sqlite3 *db){
const char *zErr = sqlite3_errmsg(db);
eputf("Error: %s\n", zErr);
shellEmitError(sqlite3_errmsg(db));
return 1;
}
@ -6893,7 +6898,7 @@ static int arErrorMsg(ArCommand *pAr, const char *zFmt, ...){
va_start(ap, zFmt);
z = sqlite3_vmprintf(zFmt, ap);
va_end(ap);
eputf("Error: %s\n", z);
shellEmitError(z);
if( pAr->fromCmdLine ){
eputz("Use \"-A\" for more help\n");
}else{
@ -8124,7 +8129,7 @@ static int do_meta_command(char *zLine, ShellState *p){
open_db(p, 0);
pBackup = sqlite3_backup_init(pDest, "main", p->db, zDb);
if( pBackup==0 ){
eputf("Error: %s\n", sqlite3_errmsg(pDest));
shellDatabaseError(pDest);
close_db(pDest);
return 1;
}
@ -8133,7 +8138,7 @@ static int do_meta_command(char *zLine, ShellState *p){
if( rc==SQLITE_DONE ){
rc = 0;
}else{
eputf("Error: %s\n", sqlite3_errmsg(pDest));
shellDatabaseError(pDest);
rc = 1;
}
close_db(pDest);
@ -8309,7 +8314,7 @@ static int do_meta_command(char *zLine, ShellState *p){
open_db(p, 0);
rc = sqlite3_prepare_v2(p->db, "PRAGMA database_list", -1, &pStmt, 0);
if( rc ){
eputf("Error: %s\n", sqlite3_errmsg(p->db));
shellDatabaseError(p->db);
rc = 1;
}else{
while( sqlite3_step(pStmt)==SQLITE_ROW ){
@ -9005,7 +9010,7 @@ static int do_meta_command(char *zLine, ShellState *p){
zSql = 0;
if( rc ){
if (pStmt) sqlite3_finalize(pStmt);
eputf("Error: %s\n", sqlite3_errmsg(p->db));
shellDatabaseError(p->db);
import_cleanup(&sCtx);
rc = 1;
goto meta_command_exit;
@ -9049,7 +9054,7 @@ static int do_meta_command(char *zLine, ShellState *p){
sqlite3_free(zSql);
zSql = 0;
if( rc ){
eputf("Error: %s\n", sqlite3_errmsg(p->db));
shellDatabaseError(p->db);
if (pStmt) sqlite3_finalize(pStmt);
import_cleanup(&sCtx);
rc = 1;
@ -9343,7 +9348,7 @@ static int do_meta_command(char *zLine, ShellState *p){
open_db(p, 0);
rc = sqlite3_load_extension(p->db, zFile, zProc, &zErrMsg);
if( rc!=SQLITE_OK ){
eputf("Error: %s\n", zErrMsg);
shellEmitError(zErrMsg);
sqlite3_free(zErrMsg);
rc = 1;
}
@ -9965,7 +9970,7 @@ static int do_meta_command(char *zLine, ShellState *p){
open_db(p, 0);
pBackup = sqlite3_backup_init(p->db, zDb, pSrc, "main");
if( pBackup==0 ){
eputf("Error: %s\n", sqlite3_errmsg(p->db));
shellDatabaseError(p->db);
close_db(pSrc);
return 1;
}
@ -9983,7 +9988,7 @@ static int do_meta_command(char *zLine, ShellState *p){
eputz("Error: source database is busy\n");
rc = 1;
}else{
eputf("Error: %s\n", sqlite3_errmsg(p->db));
shellDatabaseError(p->db);
rc = 1;
}
close_db(pSrc);
@ -10080,7 +10085,7 @@ static int do_meta_command(char *zLine, ShellState *p){
rc = sqlite3_prepare_v2(p->db, "SELECT name FROM pragma_database_list",
-1, &pStmt, 0);
if( rc ){
eputf("Error: %s\n", sqlite3_errmsg(p->db));
shellDatabaseError(p->db);
sqlite3_finalize(pStmt);
rc = 1;
goto meta_command_exit;
@ -10149,7 +10154,7 @@ static int do_meta_command(char *zLine, ShellState *p){
freeText(&sSelect);
}
if( zErrMsg ){
eputf("Error: %s\n", zErrMsg);
shellEmitError(zErrMsg);
sqlite3_free(zErrMsg);
rc = 1;
}else if( rc != SQLITE_OK ){
@ -12728,7 +12733,7 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
open_db(&data, 0);
rc = shell_exec(&data, z, &zErrMsg);
if( zErrMsg!=0 ){
eputf("Error: %s\n", zErrMsg);
shellEmitError(zErrMsg);
if( bail_on_error ) return rc!=0 ? rc : 1;
}else if( rc!=0 ){
eputf("Error: unable to process SQL \"%s\"\n", z);
@ -12782,7 +12787,7 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
rc = shell_exec(&data, azCmd[i], &zErrMsg);
if( zErrMsg || rc ){
if( zErrMsg!=0 ){
eputf("Error: %s\n", zErrMsg);
shellEmitError(zErrMsg);
}else{
eputf("Error: unable to process SQL: %s\n", azCmd[i]);
}