summaryrefslogtreecommitdiff
path: root/databases/sybtcl/files/patch-generic_sybtcl.c
diff options
context:
space:
mode:
authorAdam Weinberger <adamw@FreeBSD.org>2014-07-28 15:51:59 +0000
committerAdam Weinberger <adamw@FreeBSD.org>2014-07-28 15:51:59 +0000
commit94fc3edbb6fa1ed9320a80a0b030a511e991c94f (patch)
treec1caf082123c76b0ce8dff00101329af71b9c7e3 /databases/sybtcl/files/patch-generic_sybtcl.c
parent- Update to 2014.07.27 (diff)
Rename databases/ patch-xy patches to reflect the files they modify.
Notes
Notes: svn path=/head/; revision=363190
Diffstat (limited to 'databases/sybtcl/files/patch-generic_sybtcl.c')
-rw-r--r--databases/sybtcl/files/patch-generic_sybtcl.c342
1 files changed, 342 insertions, 0 deletions
diff --git a/databases/sybtcl/files/patch-generic_sybtcl.c b/databases/sybtcl/files/patch-generic_sybtcl.c
new file mode 100644
index 000000000000..84acf3f29041
--- /dev/null
+++ b/databases/sybtcl/files/patch-generic_sybtcl.c
@@ -0,0 +1,342 @@
+--- generic/sybtcl.c 2000-08-30 20:24:18.000000000 -0400
++++ generic/sybtcl.c 2007-10-12 16:54:36.000000000 -0400
+@@ -178,5 +178,6 @@
+ #endif
+
+-#include "tcl.h"
++#include <strings.h>
++#include <tcl.h>
+
+
+@@ -279,4 +280,12 @@
+ #endif
+
++#ifndef CS_INTERNAL
++#define CS_INTERNAL /* Not defined by FreeTDS */
++#endif
++
++#ifndef TDS_DEF_CHARSET
++#define TDS_DEF_CHARSET "iso_1" /* Not defined by Sybase */
++#endif
++
+ typedef struct SybTclProcs { /* struct for handle entries */
+ int in_use; /* if this entry is opened */
+@@ -393,5 +402,5 @@
+ #else
+
+-extern void * malloc();
++#include <stdlib.h>
+
+ #endif
+@@ -428,22 +437,22 @@
+ /* prototypes for all tcl command functions */
+
+-EXTERN Sybtcl_Init _ANSI_ARGS_((Tcl_Interp *interp));
+-EXTERN Sybtcl_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
++EXTERN int Sybtcl_Init _ANSI_ARGS_((Tcl_Interp *interp));
++EXTERN int Sybtcl_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
+
+-extern Tcl_ObjCmdProc Sybtcl_Connect;
+-extern Tcl_ObjCmdProc Sybtcl_ErrHandler;
+-extern Tcl_ObjCmdProc Sybtcl_MsgHandler;
+-extern Tcl_ObjCmdProc Sybtcl_Money;
+-extern Tcl_ObjCmdProc Sybtcl_Use;
+-extern Tcl_ObjCmdProc Sybtcl_Sql;
+-extern Tcl_ObjCmdProc Sybtcl_Poll;
+-extern Tcl_ObjCmdProc Sybtcl_Next;
+-extern Tcl_ObjCmdProc Sybtcl_Cols;
+-extern Tcl_ObjCmdProc Sybtcl_Cancel;
+-extern Tcl_ObjCmdProc Sybtcl_Close;
+-extern Tcl_ObjCmdProc Sybtcl_Retval;
+-extern Tcl_ObjCmdProc Sybtcl_Wrtext;
+-extern Tcl_ObjCmdProc Sybtcl_Rdtext;
+-extern Tcl_ObjCmdProc Sybtcl_Event;
++static Tcl_ObjCmdProc Sybtcl_Connect;
++static Tcl_ObjCmdProc Sybtcl_ErrHandler;
++static Tcl_ObjCmdProc Sybtcl_MsgHandler;
++static Tcl_ObjCmdProc Sybtcl_Money;
++static Tcl_ObjCmdProc Sybtcl_Use;
++static Tcl_ObjCmdProc Sybtcl_Sql;
++static Tcl_ObjCmdProc Sybtcl_Poll;
++static Tcl_ObjCmdProc Sybtcl_Next;
++static Tcl_ObjCmdProc Sybtcl_Cols;
++static Tcl_ObjCmdProc Sybtcl_Cancel;
++static Tcl_ObjCmdProc Sybtcl_Close;
++static Tcl_ObjCmdProc Sybtcl_Retval;
++static Tcl_ObjCmdProc Sybtcl_Wrtext;
++static Tcl_ObjCmdProc Sybtcl_Rdtext;
++static Tcl_ObjCmdProc Sybtcl_Event;
+
+
+@@ -461,8 +470,10 @@
+ Tcl_Interp *interp));
+
++#ifdef POLLED_EVENTS
+ static int dbEventProc _ANSI_ARGS_((Tcl_Event *evPtr, int flags));
+ static void dbSetupProc _ANSI_ARGS_((ClientData cd_hand, int flags));
+ static void dbCheckProc _ANSI_ARGS_((ClientData cd_hand, int flags));
+-void Sybtcl_Kill _ANSI_ARGS_((ClientData clientData));
++#endif
++static void Sybtcl_Kill _ANSI_ARGS_((ClientData clientData));
+ static int CS_INTERNAL syb_tcl_err_handler _ANSI_ARGS_((
+ DBPROCESS *db_proc,
+@@ -496,4 +507,5 @@
+
+
++#ifdef POLLED_EVENTS /* { */
+ /*
+ *----------------------------------------------------------------------
+@@ -566,5 +578,5 @@
+ }
+ }
+-
++#endif /* POLLED_EVENTS } */
+
+
+@@ -609,5 +621,4 @@
+ {
+ dbState *statePtr = (dbState *) instanceData;
+- int hand = statePtr->hand;
+
+ #ifdef POLLED_EVENTS
+@@ -641,5 +652,5 @@
+ dbState *statePtr = (dbState *) instanceData;
+
+- *handlePtr = (ClientData)statePtr->fd;
++ *handlePtr = (ClientData)(intptr_t)statePtr->fd;
+ return TCL_OK;
+ }
+@@ -661,5 +672,5 @@
+ }
+
+-Tcl_Channel
++static Tcl_Channel
+ dbMakeChannel (sock, hand, channelName)
+ int sock;
+@@ -1167,9 +1178,9 @@
+ */
+
++CALLBACK_SCOPE Tcl_ChannelProc callback_handler;
+ static void
+ remove_handler (hand)
+ int hand;
+ {
+- CALLBACK_SCOPE Tcl_ChannelProc callback_handler;
+ if (SybProcs[hand].callBackScript != NULL) {
+ Tcl_DecrRefCount(SybProcs[hand].callBackScript);
+@@ -1177,8 +1188,8 @@
+ if (SybProcs[hand].sybChan != NULL) {
+ Tcl_DeleteChannelHandler(SybProcs[hand].sybChan,
+- callback_handler, (ClientData) hand);
++ callback_handler, (ClientData)(intptr_t)hand);
+ }
+ #ifdef POLLED_EVENTS
+- Tcl_DeleteEventSource( dbSetupProc, dbCheckProc, (ClientData) hand);
++ Tcl_DeleteEventSource( dbSetupProc, dbCheckProc, (ClientData)(intptr_t)hand);
+ #endif
+ }
+@@ -1451,4 +1462,16 @@
+ &dateinfo,(DBDATETIME *) col_ptr);
+ j=0;
++#if defined(MSDBLIB) && !defined(dateyear)
++# define dateyear year
++# define datemonth month
++# define datedmonth day
++# define datedyear dayofyear
++# define datedweek weekday
++# define datehour hour
++# define dateminute minute
++# define datesecond second
++# define datemsecond millisecond
++# define datetzone tzone
++#endif
+ while((unsigned int) j < strlen(date_str)) {
+ if (!strncmp(&(date_str[j]),"YYYY",4)) {
+@@ -1669,6 +1692,8 @@
+
+
+-#ifdef DBVERSION_100
++#ifdef SYBBOUNDARY
+ case SYBBOUNDARY:
++#endif
++#ifdef SYBSENSITIVITY
+ case SYBSENSITIVITY:
+ #endif
+@@ -1694,5 +1719,5 @@
+ */
+
+-void
++static void
+ Sybtcl_Kill (clientData)
+ ClientData clientData;
+@@ -1776,5 +1801,5 @@
+ */
+
+-void
++static void
+ Sybtcl_DeleteInterp (clientData, interp)
+ ClientData clientData;
+@@ -2429,5 +2454,5 @@
+ */
+
+-int
++static int
+ Sybtcl_ErrHandler (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -2466,5 +2491,5 @@
+ */
+
+-int
++static int
+ Sybtcl_MsgHandler (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -2505,5 +2530,5 @@
+ */
+
+-int
++static int
+ Sybtcl_Connect (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -2556,5 +2581,7 @@
+
+ DBSETLUSER(login,Tcl_GetStringFromObj(objv[1],NULL));
+- DBSETLPWD(login, Tcl_GetStringFromObj(objv[2],NULL));
++ server_str = Tcl_GetStringFromObj(objv[2],&len);
++ if (len > 0)
++ DBSETLPWD(login, server_str);
+
+ /* check for server optional parameter */
+@@ -2594,8 +2621,8 @@
+ DBSETLCHARSET(login, charset_str);
+ } else {
+- DBSETLCHARSET(login, NULL);
++ DBSETLCHARSET(login, TDS_DEF_CHARSET);
+ }
+ } else {
+- DBSETLCHARSET(login, NULL);
++ DBSETLCHARSET(login, TDS_DEF_CHARSET);
+ }
+
+@@ -2607,5 +2634,6 @@
+ if (SybProcs[hand].dbproc == NULL) {
+ Sybtcl_AppendObjResult (interp, CMD_STR,
+- ": sybconnect failed in dbopen", (char *) NULL);
++ ": sybconnect to ", server_str ? server_str : "(DEFAULT)",
++ " failed in dbopen", (char *) NULL);
+ return TCL_ERROR;
+ }
+@@ -2673,4 +2701,5 @@
+ */
+
++static int
+ Sybtcl_Money (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -2788,4 +2817,5 @@
+ */
+
++static int
+ Sybtcl_Use (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -2850,4 +2880,5 @@
+ */
+
++static int
+ Sybtcl_Sql (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -2909,5 +2940,5 @@
+ if (SybProcs[hand].last_text != SybOptions[i].maxtext) {
+ SybProcs[hand].last_text = SybOptions[i].maxtext;
+- sprintf(conv_buf,"%d",SybOptions[i].maxtext);
++ sprintf(conv_buf,"%ld",SybOptions[i].maxtext);
+ dbsetopt(SybProcs[hand].dbproc, DBTEXTSIZE, conv_buf, -1);
+ dbsqlexec(SybProcs[hand].dbproc); /* execute dbsetopt() */
+@@ -3022,4 +3053,5 @@
+ */
+
++static int
+ Sybtcl_Poll (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -3551,4 +3583,5 @@
+ */
+
++static int
+ Sybtcl_Next (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -3819,4 +3852,5 @@
+ */
+
++static int
+ Sybtcl_Cols (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -3972,4 +4006,5 @@
+ */
+
++static int
+ Sybtcl_Cancel (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -4020,4 +4055,5 @@
+ */
+
++static int
+ Sybtcl_Retval (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -4091,4 +4127,5 @@
+ */
+
++static int
+ Sybtcl_Close (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -4167,4 +4204,5 @@
+ */
+
++static int
+ Sybtcl_Wrtext (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -4190,5 +4228,5 @@
+ int obj_parm;
+ int isvar = 0;
+- Tcl_Channel fd;
++ Tcl_Channel fd = NULL;
+ #ifndef MAC_TCL
+ struct stat stat_buf;
+@@ -4305,5 +4343,6 @@
+ txtptr = dbtxptr(SybProcs[hand].dbproc,col);
+ if (txtptr == NULL) {
+- Tcl_Close (NULL,fd);
++ if (fd != NULL)
++ Tcl_Close (NULL,fd);
+ Sybtcl_AppendObjResult (interp, CMD_STR,
+ ": dbtxptr failed ", (char *) NULL);
+@@ -4448,5 +4487,5 @@
+ */
+
+-
++static int
+ Sybtcl_Rdtext (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -4638,5 +4677,5 @@
+ int mask;
+ {
+- int hand = (int) cd_hand;
++ int hand = (int)(intptr_t)cd_hand;
+ Tcl_Interp *interp = SybProcs[hand].interp;
+ DBPROCESS *readyproc;
+@@ -4754,5 +4793,5 @@
+ */
+
+-
++static int
+ Sybtcl_Event (clientData, interp, objc, objv)
+ ClientData clientData;
+@@ -4791,9 +4830,9 @@
+ /* create handler */
+ Tcl_CreateChannelHandler(SybProcs[hand].sybChan, TCL_READABLE,
+- callback_handler, (ClientData) hand);
++ callback_handler, (ClientData)(intptr_t)hand);
+
+ #ifdef POLLED_EVENTS
+ Tcl_CreateEventSource(dbSetupProc, dbCheckProc,
+- (ClientData) hand);
++ (ClientData)(intptr_t)hand);
+ #endif
+