freebsd-ports/databases/mysqltcl/files/patch-aa
Steve Price ea94f608b4 Update to use Tcl version 8.3.
PR:		19874
Submitted by:	maintainer
2000-07-16 19:57:01 +00:00

172 lines
4.9 KiB
Text

--- mysqltcl.c Mon Jul 6 11:35:17 1998
+++ mysqltcl.c Wed Jul 12 17:46:20 2000
@@ -34,7 +34,7 @@
#include <string.h>
#include <ctype.h>
#include <unistd.h>
-
+#include <stdlib.h>
#define MYSQL_HANDLES 15 /* Default number of handles available. */
#define MYSQL_BUFF_SIZE 1024 /* Conversion buffer size for various needs. */
@@ -60,7 +60,7 @@
#define MYSQL_HPREFIX_LEN 5
/* Array for status info, and its elements. */
-static char *MysqlStatusArr = "mysqlstatus";
+#define MysqlStatusArr "mysqlstatus"
#define MYSQL_STATUS_CODE "code"
#define MYSQL_STATUS_CMD "command"
#define MYSQL_STATUS_MSG "message"
@@ -686,7 +686,6 @@
Mysqltcl_Init (interp)
Tcl_Interp *interp;
{
- int i;
char nbuf[MYSQL_SMALL_SIZE];
/*
@@ -742,7 +739,7 @@
* If this message appears you must change the source code and recompile.
*/
if (strlen (MysqlHandlePrefix) == MYSQL_HPREFIX_LEN)
- return TCL_OK;
+ return Tcl_PkgProvide(interp, "mysql", "1.53");
else
{
fprintf (stderr, "*** mysqltcl (mysqltcl.c): handle prefix inconsistency!\n") ;
@@ -921,13 +917,13 @@
if ((MysqlHandle[hand].result = mysql_store_result (MysqlHandle[hand].mysql)) == NULL)
{
- (void)strcpy (interp->result, "-1") ;
+ Tcl_SetObjResult(interp, Tcl_NewIntObj(-1));
}
else
{
MysqlHandle[hand].res_count = mysql_num_rows (MysqlHandle[hand].result) ;
MysqlHandle[hand].col_count = mysql_num_fields (MysqlHandle[hand].result) ;
- (void)sprintf (interp->result, "%d", MysqlHandle[hand].res_count) ;
+ Tcl_SetObjResult(interp, Tcl_NewIntObj(MysqlHandle[hand].res_count));
}
return TCL_OK;
@@ -1073,7 +1069,7 @@
MysqlHandle[hand].res_count = total - row;
}
- (void)sprintf (interp->result, "%d", MysqlHandle[hand].res_count) ;
+ Tcl_SetObjResult(interp, Tcl_NewIntObj(MysqlHandle[hand].res_count));
return TCL_OK;
}
@@ -1244,7 +1240,7 @@
{
case MYSQL_INFNAME_OPT:
case MYSQL_INFNAMEQ_OPT:
- strcpy (interp->result, MysqlHandle[hand].database) ;
+ Tcl_SetResult(interp, MysqlHandle[hand].database, TCL_STATIC);
break ;
case MYSQL_INFTABLES_OPT:
if ((list = mysql_list_tables (MysqlHandle[hand].mysql,(char*)NULL)) == NULL)
@@ -1259,7 +1255,7 @@
break ;
case MYSQL_INFHOST_OPT:
case MYSQL_INFHOSTQ_OPT:
- strcpy (interp->result, MysqlHandle[hand].host) ;
+ Tcl_SetResult(interp, MysqlHandle[hand].host, TCL_STATIC);
break ;
case MYSQL_INFLIST_OPT:
if ((list = mysql_list_dbs (MysqlHandle[hand].mysql,(char*)NULL)) == NULL)
@@ -1299,8 +1295,6 @@
int count ;
int hand ;
int idx ;
- MYSQL_RES* list ;
- MYSQL_ROW row ;
/* We can't fully check the handle at this stage. */
@@ -1342,19 +1336,20 @@
{
case MYSQL_RESROWS_OPT:
case MYSQL_RESROWSQ_OPT:
- sprintf (interp->result, "%d", MysqlHandle[hand].res_count) ;
+ count = MysqlHandle[hand].res_count;
break ;
case MYSQL_RESCOLS_OPT:
case MYSQL_RESCOLSQ_OPT:
- sprintf (interp->result, "%d", MysqlHandle[hand].col_count) ;
+ count = MysqlHandle[hand].col_count;
break ;
case MYSQL_RESCUR_OPT:
case MYSQL_RESCURQ_OPT:
- sprintf (interp->result, "%d", mysql_num_rows (MysqlHandle[hand].result)
- - MysqlHandle[hand].res_count) ;
+ count = mysql_num_rows (MysqlHandle[hand].result)
+ - MysqlHandle[hand].res_count;
default:
- ;
+ return TCL_OK; /* none of the above -- return without touching result */
}
+ Tcl_SetObjResult(interp, Tcl_NewIntObj(count));
return TCL_OK ;
}
@@ -1500,8 +1495,12 @@
int hi;
char* hp ;
int numeric ;
- char* res ;
-
+ register short res;
+
+ static const char *states[] = {
+ "NOT_A_HANDLE", "UNCONNECTED", "CONNECTED", "IN_USE", "RESULT_PENDING"
+ };
+
if (mysql_prologue(interp, argc, argv, 2, NULL, "?-numeric? handle") < 0)
return TCL_ERROR;
@@ -1511,17 +1510,18 @@
hp = (numeric)?argv[2]:argv[1] ;
if (HSYNTAX(hp,hi) < 0)
- res = (numeric)?"0":"NOT_A_HANDLE" ;
+ res = 0;
else if (MysqlHandle[hi].connection == 0)
- res = (numeric)?"1":"UNCONNECTED" ;
+ res = 1;
else if (MysqlHandle[hi].database[0] == '\0')
- res = (numeric)?"2":"CONNECTED" ;
+ res = 2;
else if (MysqlHandle[hi].result == NULL)
- res = (numeric)?"3":"IN_USE" ;
+ res = 3;
else
- res = (numeric)?"4":"RESULT_PENDING" ;
+ res = 4;
- (void)strcpy (interp->result, res) ;
+ if (numeric) Tcl_SetObjResult(interp, Tcl_NewIntObj(res));
+ else Tcl_SetResult(interp, (char *)states[res], TCL_STATIC);
return TCL_OK ;
}
@@ -1543,7 +1543,6 @@
char **argv;
{
int hand;
- char* res ;
MYSQL* mysql;
if ((hand = mysql_prologue(interp, argc, argv, 2, get_handle_conn,
@@ -1552,7 +1551,7 @@
mysql = MysqlHandle[hand].mysql;
- (void)sprintf (interp->result, "%d", mysql_insert_id(mysql)) ;
+ Tcl_SetObjResult(interp, Tcl_NewIntObj(mysql_insert_id(mysql)));
return TCL_OK;
}