diff options
author | mwesdorp <mwesdorp> | 2013-05-05 19:50:43 +0000 |
---|---|---|
committer | mwesdorp <mwesdorp> | 2013-05-05 19:50:43 +0000 |
commit | e7c7fd04e1c17ea1bea0fd5c717211dfd314350c (patch) | |
tree | a752524b8a511c09e7f7a4183746b4937e40f2e9 /src | |
parent | 8b28efa84989620a2d5260ba3cecd69d03add566 (diff) |
sqsh-2.2.0 last minute modifications.
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd_bcp.c | 23 | ||||
-rw-r--r-- | src/cmd_connect.c | 59 | ||||
-rw-r--r-- | src/sqsh_debug.c | 4 | ||||
-rw-r--r-- | src/sqsh_readline.c | 9 |
4 files changed, 67 insertions, 28 deletions
diff --git a/src/cmd_bcp.c b/src/cmd_bcp.c index ef0f791..e38caa5 100644 --- a/src/cmd_bcp.c +++ b/src/cmd_bcp.c @@ -40,7 +40,7 @@ /*-- Current Version --*/ #if !defined(lint) && !defined(__LINT__) -static char RCS_Id[] = "$Id: cmd_bcp.c,v 1.16 2013/04/26 09:16:34 mwesdorp Exp $"; +static char RCS_Id[] = "$Id: cmd_bcp.c,v 1.17 2013/05/05 19:50:43 mwesdorp Exp $"; USE(RCS_Id) #endif /* !defined(lint) */ @@ -192,8 +192,10 @@ int cmd_bcp( argc, argv ) int batchsize = -1; /* Copy all rows in one batch */ int have_error = False; CS_BOOL have_identity = CS_FALSE; - CS_BOOL char_convert = CS_FALSE; +#if defined (CS_NOCHARSETCNV_REQD) && defined (BLK_CONV) + CS_BOOL char_convert = CS_FALSE; /* Used with -T option (transit) */ CS_BOOL transit = CS_FALSE; /* Disable client character conversion */ +#endif /* * sqsh-2.1.9 - Feature BCP execute an initialization command @@ -270,7 +272,12 @@ int cmd_bcp( argc, argv ) break; case 'T' : +#if defined (CS_NOCHARSETCNV_REQD) && defined (BLK_CONV) transit = CS_TRUE; +#else + fprintf(stderr, "\\bcp: -T: Transit option is not supported by bulkcopy library\n"); + fprintf(stderr, "\\bcp: -T: Parameter will be ignored\n"); +#endif break; case 'U' : @@ -616,10 +623,10 @@ int cmd_bcp( argc, argv ) #endif } -#if defined (CS_NOCHARSETCNV_REQD) +#if defined (CS_NOCHARSETCNV_REQD) && defined (BLK_CONV) /* - * sqsh-2.2.0 - Disable character set conversion on client - * when in transit (-T option) + * sqsh-2.2.0 - Disable character set conversion by client + * when in transit bulk transfer is requested (-T option) */ if (transit == CS_TRUE) { @@ -812,10 +819,10 @@ int cmd_bcp( argc, argv ) } } -#if defined (BLK_CONV) +#if defined (CS_NOCHARSETCNV_REQD) && defined (BLK_CONV) /* - * sqsh-2.2.0 - Disable character set conversion on client - * when in transit (-T option) + * sqsh-2.2.0 - Disable character set conversion by client + * when in transit bulk transfer is requested (-T option) */ if (transit == CS_TRUE) { diff --git a/src/cmd_connect.c b/src/cmd_connect.c index 6393e64..964e659 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.30 2013/05/03 11:19:38 mwesdorp Exp $"; +static char RCS_Id[] = "$Id: cmd_connect.c,v 1.31 2013/05/05 19:50:43 mwesdorp Exp $"; USE(RCS_Id) #endif /* !defined(lint) */ @@ -151,8 +151,6 @@ int cmd_connect( argc, argv ) char *password ; char *server ; char *interfaces ; - char *colsep ; - char *width ; char *packet_size ; char *autouse ; char *session ; @@ -190,9 +188,12 @@ int cmd_connect( argc, argv ) CS_INT SybTimeOut; CS_BOOL NetAuthRequired; varbuf_t *exp_buf = NULL; - /* sqsh-2.2.0 - New variables */ + + /* sqsh-2.2.0 - New variables for TDS debugging with ct_debug() */ +#if defined (DEBUG) && defined (CS_SET_DBG_FILE) && defined (CS_SET_PROTOCOL_FILE) char *debug_tds_logdata; char *debug_tds_capture; +#endif #if defined(CTLIB_SIGPOLL_BUG) && defined(F_SETOWN) int ctlib_fd; @@ -227,11 +228,19 @@ int cmd_connect( argc, argv ) /* * Parse the command line options. * sqsh-2.1.6 - New options added and case evaluation neatly ordered. + * sqsh-2.2.0 - -J option added. -I requires an optarg. */ - while ((c = sqsh_getopt( argc, argv, "cD:I;K:n:N:P;Q:R:S:T:U:V;XZ;" )) != EOF) + while ((c = sqsh_getopt( argc, argv, "A:cD:G:I:J:K:n:N:P;Q:R:S:T:U:V;XZ;z:" )) != EOF) { switch( c ) { + case 'A' : /* sqsh-2.2.0 - Option added */ + if (env_put( g_env, "packet_size", sqsh_optarg, ENV_F_TRAN ) == False) + { + fprintf( stderr, "\\connect: -A: %s\n", sqsh_get_errstr() ); + have_error = True; + } + break; case 'c' : preserve_context = False ; break ; @@ -242,6 +251,13 @@ int cmd_connect( argc, argv ) have_error = True; } break; + case 'G' : /* sqsh-2.2.0 - Option added */ + if (env_put( g_env, "tds_version", sqsh_optarg, ENV_F_TRAN ) == False) + { + fprintf( stderr, "\\connect: -G: %s\n", sqsh_get_errstr() ); + have_error = True; + } + break; case 'I' : if (env_put( g_env, "interfaces", sqsh_optarg, ENV_F_TRAN ) == False) { @@ -249,6 +265,13 @@ int cmd_connect( argc, argv ) have_error = True; } break ; + case 'J' : /* sqsh-2.2.0 - Option added */ + if (env_put( g_env, "charset", sqsh_optarg, ENV_F_TRAN ) == False) + { + fprintf( stderr, "\\connect: -J: %s\n", sqsh_get_errstr() ); + have_error = True; + } + break ; case 'K' : /* sqsh-2.1.6 */ if (env_put( g_env, "keytab_file", sqsh_optarg, ENV_F_TRAN ) == False) { @@ -335,6 +358,13 @@ int cmd_connect( argc, argv ) have_error = True; } break ; + case 'z' : /* sqsh-2.2.0 - Option added */ + if (env_put( g_env, "language", sqsh_optarg, ENV_F_TRAN ) == False) + { + fprintf( stderr, "\\connect: -z: %s\n", sqsh_get_errstr() ); + have_error = True; + } + break ; case 'Z' : /* sqsh-2.1.6 */ if (sqsh_optarg == NULL || *sqsh_optarg == '\0') return_code = env_put( g_env, "secmech", "default", ENV_F_TRAN); @@ -355,17 +385,17 @@ int cmd_connect( argc, argv ) } /* - * If there are any options left on the end of the line, then - * we have an error. + * If there are any options left on the end of the line, then we have an error. * sqsh-2.1.6 - New options added to the list. + * sqsh-2.2.0 - -J charset added to the list. */ if( have_error || sqsh_optind != argc ) { fprintf( stderr, - "Use: \\connect [-c] [-I interfaces] [-U username] [-P pwd] [-S server]\n" - " [-D database ] [-N appname] [-n {on|off}] [-Q query_timeout]\n" - " [-T login_timeout] [-K keytab_file] [-R principal]\n" - " [-V [bcdimoqru]] [-X] [-Z [secmech|default|none]]\n" + "Use: \\connect [-A packet size] [-c] [-I interfaces] [-U username] [-P pwd] [-S server]\n" + " [-D database ] [-G tds version] [-J charset] [-N appname] [-n {on|off}]\n" + " [-Q query_timeout] [-T login_timeout] [-K keytab_file] [-R principal]\n" + " [-V [bcdimoqru]] [-X] [-z language] [-Z [secmech|default|none]]\n" ) ; env_rollback( g_env ); @@ -381,8 +411,6 @@ int cmd_connect( argc, argv ) env_get( g_env, "username", &username ) ; env_get( g_env, "DSQUERY", &server ) ; env_get( g_env, "interfaces", &interfaces ) ; - env_get( g_env, "width", &width ) ; - env_get( g_env, "colsep", &colsep ) ; env_get( g_env, "packet_size", &packet_size ) ; env_get( g_env, "autouse", &autouse ) ; env_get( g_env, "database", &database ) ; @@ -988,12 +1016,13 @@ int cmd_connect( argc, argv ) CS_SET_DBG_FILE, /* Action */ CS_UNUSED, /* Flag */ cp, /* Buffer value */ - strlen(cp) /* Buffer length */ + CS_NULLTERM /* String '\0' terminated */ ) != CS_SUCCEED) fprintf (stderr, "\\connect: ct_debug - Unable to set CS_SET_DBG_FILE to %s\n", cp); else { fprintf (stdout, "\\connect: ct_debug - Successfully set CS_SET_DBG_FILE to %s\n", cp); + if (ct_debug ( g_context, /* Context */ g_connection, /* Connection */ CS_SET_FLAG, /* Action */ @@ -1027,7 +1056,7 @@ int cmd_connect( argc, argv ) CS_SET_PROTOCOL_FILE, /* Action */ CS_UNUSED, /* Flag */ cp, /* Buffer value */ - strlen(cp) /* Buffer length */ + CS_NULLTERM /* String '\0' terminated */ ) != CS_SUCCEED) fprintf (stderr, "\\connect: ct_debug - Unable to set CS_SET_PROTOCOL_FILE to %s\n", cp); else diff --git a/src/sqsh_debug.c b/src/sqsh_debug.c index b45eb8f..a91ebbc 100644 --- a/src/sqsh_debug.c +++ b/src/sqsh_debug.c @@ -34,7 +34,7 @@ #endif #if !defined(lint) && !defined(__LINT__) -static char RCS_Id[] = "$Id: sqsh_debug.c,v 1.2 2013/04/18 11:54:43 mwesdorp Exp $" ; +static char RCS_Id[] = "$Id: sqsh_debug.c,v 1.3 2013/05/05 19:50:43 mwesdorp Exp $" ; USE(RCS_Id) #endif @@ -104,6 +104,8 @@ int sqsh_debug_show( debug_mask ) return True; else return False; +#else + return False; #endif /* DEBUG */ } diff --git a/src/sqsh_readline.c b/src/sqsh_readline.c index 1347724..11e812e 100644 --- a/src/sqsh_readline.c +++ b/src/sqsh_readline.c @@ -36,7 +36,7 @@ /*-- Current Version --*/ #if !defined(lint) && !defined(__LINT__) -static char RCS_Id[] = "$Id: sqsh_readline.c,v 1.9 2013/05/03 13:02:46 mwesdorp Exp $" ; +static char RCS_Id[] = "$Id: sqsh_readline.c,v 1.10 2013/05/05 19:50:43 mwesdorp Exp $" ; USE(RCS_Id) #endif /* !defined(lint) */ @@ -60,7 +60,7 @@ static int DynColnameLoad _ANSI_ARGS(( char* )) ; /* * sqsh-2.2.0 - Function prototypes for new feature readline_histignore. */ -static int regex_match _ANSI_ARGS(( char*, char* )) ; +static int regex_match _ANSI_ARGS(( char*, char* )) ; /* * If GNU Readline support is compiled in, this data structure is @@ -1329,8 +1329,9 @@ static int DynColnameLoad (objname) * * Return 0 for match, not 0 for no match. */ -static int -regex_match (char *pattern, char *string) +static int regex_match (pattern, string) + char *pattern; + char *string; { regex_t re; int status; |