diff options
author | mwesdorp <mwesdorp> | 2013-08-22 19:54:33 +0000 |
---|---|---|
committer | mwesdorp <mwesdorp> | 2013-08-22 19:54:33 +0000 |
commit | 11cfd8e91d68cb1f96968043fb270343133e8f5b (patch) | |
tree | 9f9c383c35cc9caa933187a955ff1e499cc72008 /src | |
parent | b3ccfe4a46d1ae0028a9c275ffbf68c198a29635 (diff) |
sqsh-2.4 New features and bugfixes
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd_connect.c | 16 | ||||
-rw-r--r-- | src/var.h | 2 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/cmd_connect.c b/src/cmd_connect.c index 5b4d1b4..fd9c09b 100644 --- a/src/cmd_connect.c +++ b/src/cmd_connect.c @@ -42,7 +42,7 @@ /*-- Current Version --*/ #if !defined(lint) && !defined(__LINT__) -static char RCS_Id[] = "$Id: cmd_connect.c,v 1.33 2013/08/21 11:16:39 mwesdorp Exp $"; +static char RCS_Id[] = "$Id: cmd_connect.c,v 1.34 2013/08/22 19:54:34 mwesdorp Exp $"; USE(RCS_Id) #endif /* !defined(lint) */ @@ -165,6 +165,8 @@ int cmd_connect( argc, argv ) char *cp; extern char *sqsh_optarg ; extern int sqsh_optind ; + char use_database[128] ; + char *usedbcheck ; int c ; int have_error = False ; int preserve_context = True ; @@ -562,8 +564,9 @@ int cmd_connect( argc, argv ) */ if( preserve_context && database != NULL && *database != '\0' ) { - env_put ( g_env, "autouse", database, ENV_F_TRAN ) ; - env_get ( g_env, "autouse", &autouse ) ; + strncpy( use_database, database, sizeof(use_database)-1 ) ; + use_database[sizeof(use_database)-1] = '\0'; + autouse = use_database ; } /* @@ -1276,10 +1279,11 @@ int cmd_connect( argc, argv ) * Otherwise, abort to prevent script execution in wrong default * database. */ - env_get ( g_env, "database", &database ) ; - if (g_interactive != True && strcmp (autouse, database) != 0) + env_get ( g_env, "database", &database ) ; /* Need to refresh var pointer */ + env_get ( g_env, "usedbcheck", &usedbcheck ) ; + if (g_interactive != True && *usedbcheck == '1' && strcmp (autouse, database) != 0) { - fprintf (stderr, "sqsh: ERROR: Unable to use database %s in batch mode\n", autouse); + fprintf (stderr, "sqsh: ERROR: Unable to use database '%s' in batch mode\n", autouse); sqsh_exit(254); } } @@ -207,6 +207,8 @@ static var_entry_t sg_var_entry[] = { { "tds_version", NULL, var_set_nullstr, NULL }, /* sqsh-2.3 - New variable */ { "localeconv", "0", var_set_lconv, NULL }, + /* sqsh-2.4 - New variable */ + { "usedbcheck", "0", var_set_bool, NULL }, } ; #endif /* SQSH_INIT */ |