summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormwesdorp <mwesdorp>2013-08-22 19:54:33 +0000
committermwesdorp <mwesdorp>2013-08-22 19:54:33 +0000
commit11cfd8e91d68cb1f96968043fb270343133e8f5b (patch)
tree9f9c383c35cc9caa933187a955ff1e499cc72008 /src
parentb3ccfe4a46d1ae0028a9c275ffbf68c198a29635 (diff)
sqsh-2.4 New features and bugfixes
Diffstat (limited to 'src')
-rw-r--r--src/cmd_connect.c16
-rw-r--r--src/var.h2
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);
}
}
diff --git a/src/var.h b/src/var.h
index bdc3caf..ff180ba 100644
--- a/src/var.h
+++ b/src/var.h
@@ -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 */