]> granicus.if.org Git - php/commitdiff
- Made Interbase compile under Win32, cleaned warnings
authorZeev Suraski <zeev@php.net>
Mon, 17 Jul 2000 20:51:47 +0000 (20:51 +0000)
committerZeev Suraski <zeev@php.net>
Mon, 17 Jul 2000 20:51:47 +0000 (20:51 +0000)
@- Added Win32 project for the Interbase module (Zeev)

ext/interbase/interbase.c
ext/interbase/interbase.dsp [new file with mode: 0644]
ext/interbase/php_interbase.h

index 140caabffad3de5b90a3bd33d78b44755cbe2aa5..e5d05fc7419d53935041cdb644b7c25644da5d9e 100644 (file)
@@ -442,11 +442,10 @@ static void _php_ibase_free_blob(ibase_blob_handle *ib_blob)
 /* {{{ _php_ibase_free_trans() */
 static void _php_ibase_free_trans(ibase_tr_link *ib_trans)
 {
-       zval **dummy;
        ibase_db_link *ib_link;
        IBLS_FETCH();
 
-       ib_link = (ibase_db_link *) zend_fetch_resource(dummy, ib_trans->link_rsrc, "InterBase link", NULL, 2, IBG(le_link), IBG(le_plink));
+       ib_link = (ibase_db_link *) zend_fetch_resource(NULL, ib_trans->link_rsrc, "InterBase link", NULL, 2, IBG(le_link), IBG(le_plink));
        
        if (ib_link) {
                if (ib_link->trans[ib_trans->trans_num] != NULL) {
@@ -663,7 +662,7 @@ static int _php_ibase_attach_db(char *server, char *uname, char *passwd, char *c
 
        dpb_length = dpb - dpb_buffer;
 
-       if (isc_attach_database(IB_STATUS, strlen(server), server, db, dpb_length, dpb_buffer)) {
+       if (isc_attach_database(IB_STATUS, (short) strlen(server), server, db, (short) dpb_length, dpb_buffer)) {
                _php_ibase_error();
                return FAILURE;
        }
@@ -788,7 +787,7 @@ static void _php_ibase_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
 
                        ib_link = (ibase_db_link *) malloc(sizeof(ibase_db_link));
                        ib_link->link = db_handle;
-                       ib_link->dialect = (ib_dialect ? strtoul(ib_dialect, NULL, 10) : SQL_DIALECT_CURRENT);
+                       ib_link->dialect = (ib_dialect ? (unsigned short) strtoul(ib_dialect, NULL, 10) : SQL_DIALECT_CURRENT);
                        for (i = 0; i < IBASE_TRANS_ON_LINK; i++)
                                ib_link->trans[i] = NULL;
                        
@@ -849,7 +848,7 @@ static void _php_ibase_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
 
                ib_link = (ibase_db_link *) emalloc(sizeof(ibase_db_link));
                ib_link->link = db_handle;
-               ib_link->dialect = (ib_dialect ? strtoul(ib_dialect, NULL, 10) : SQL_DIALECT_CURRENT);
+               ib_link->dialect = (ib_dialect ? (unsigned short) strtoul(ib_dialect, NULL, 10) : SQL_DIALECT_CURRENT);
                for (i = 0; i < IBASE_TRANS_ON_LINK; i++)
                        ib_link->trans[i] = NULL;
 
@@ -1021,7 +1020,7 @@ static int _php_ibase_alloc_array(ibase_array **ib_arrayp, int *array_cntp,
 
 /* {{{ _php_ibase_alloc_query() */
 /* allocate and prepare query */
-static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, isc_tr_handle trans, char *query, int dialect)
+static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, isc_tr_handle trans, char *query, unsigned short dialect)
 {
 #define IB_QUERY (*ib_queryp)
        IBLS_FETCH();
@@ -1043,7 +1042,7 @@ static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, i
                goto _php_ibase_alloc_query_error;
        }
 
-       IB_QUERY->out_sqlda = emalloc(XSQLDA_LENGTH(0));
+       IB_QUERY->out_sqlda = (XSQLDA *) emalloc(XSQLDA_LENGTH(0));
        IB_QUERY->out_sqlda->sqln = 0;
        IB_QUERY->out_sqlda->version = SQLDA_VERSION1;
 
@@ -1434,7 +1433,6 @@ _php_ibase_exec_error:             /* I'm a bad boy... */
 PHP_FUNCTION(ibase_trans)
 {
        pval ***args;
-       zval **dummy;
        char tpb[20], *tpbp = NULL;
        long trans_argl = 0;
        int tpb_len = 0, argn, link_id, trans_n = 0, i;
@@ -1474,7 +1472,7 @@ PHP_FUNCTION(ibase_trans)
        }
 
        if (argn < 2) {
-               ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, dummy, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
+               ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, NULL, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
        }
 
        if (trans_argl ) {
@@ -1726,7 +1724,7 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca
                case SQL_LONG:
                        if (scale) {
                                int j, f = 1;
-                               float n = *(long *)(data);
+                               float n = (float) *(long *)(data);
                                
                                for (j = 0; j < -scale; j++)
                                        f *= 10;
@@ -1763,8 +1761,8 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca
                case SQL_INT64:
                        val->type = IS_STRING;
                        val->value.str.len = sprintf(string_data, "%Ld.%Ld",
-                                                                                (ISC_INT64) (*(ISC_INT64 *)data / (int) pow(10.0, (double) -scale)),
-                                                                                (ISC_INT64) abs((*(ISC_INT64 *)data % (int) pow(10.0, (double) -scale))));
+                                                                                (ISC_INT64) (*((ISC_INT64 *)data) / (int) pow(10.0, (double) -scale)),
+                                                                                (ISC_INT64) abs((int) (*((ISC_INT64 *)data) % (int) pow(10.0, (double) -scale))));
                        val->value.str.val = estrdup(string_data);
                        break;
 #endif
@@ -1989,8 +1987,9 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type)
                                                
                                                /* find total length of blob's data */
                                                for (p = bl_info; *p != isc_info_end && p < bl_info+sizeof(bl_info);) {
-                                                       int item_len, item = *p++;
-                                                       item_len = (short)isc_vax_integer(p, 2);
+                                                       unsigned short item_len, item = *p++;
+
+                                                       item_len = (short) isc_vax_integer(p, 2);
                                                        p += 2;
                                                        if (item == isc_info_blob_total_length)
                                                                max_len = isc_vax_integer(p, item_len);
@@ -2000,7 +1999,8 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type)
                                                bl_data = emalloc(max_len+1);
                                                
                                                for (cur_len = stat = 0; stat == 0 && cur_len < max_len; ) {
-                                                       unsigned short seg_len, max_seg = max_len-cur_len > USHRT_MAX ? USHRT_MAX : max_len-cur_len;
+                                                       unsigned short seg_len;
+                                                       unsigned short max_seg = (unsigned short) (max_len - cur_len > USHRT_MAX ? USHRT_MAX : max_len-cur_len);
                                                        stat = isc_get_segment(IB_STATUS, &bl_handle, &seg_len, max_seg, &bl_data[cur_len]);
                                                        cur_len += seg_len;
                                                        if (cur_len > max_len) { /* never!*/
@@ -2160,7 +2160,7 @@ PHP_FUNCTION(ibase_prepare)
                                RETURN_FALSE;
                        }
                        link_id = IBG(default_link);
-                       ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, link_arg, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
+                       ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, NULL, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
                        break;
                case 2:
                        if (zend_get_parameters_ex(2, &link_arg, &query_arg) == FAILURE) {
@@ -2463,7 +2463,9 @@ static int _php_ibase_blob_info(isc_blob_handle bl_handle,IBASE_BLOBINFO *bl_inf
        }
 
        for (p = bl_inf; *p != isc_info_end && p < bl_inf+sizeof(bl_inf);) {
-               int item_len, item = *p++;
+               unsigned short item_len;
+               int item = *p++;
+
                item_len = (short)isc_vax_integer(p, 2);
                p += 2;
                switch (item) {
@@ -2508,7 +2510,7 @@ PHP_FUNCTION(ibase_blob_create)
        switch (ZEND_NUM_ARGS()) {
                case 0:
                        link_id = IBG(default_link);
-                       ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, link_arg, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
+                       ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, NULL, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
                        break;
                case 1:
                        if (zend_get_parameters_ex(1, &link_arg) == FAILURE) {
@@ -2598,7 +2600,7 @@ PHP_FUNCTION(ibase_blob_add)
        
        convert_to_string(string_arg);
 
-       if (isc_put_segment(IB_STATUS, &ib_blob->bl_handle, string_arg->value.str.len, string_arg->value.str.val)) {
+       if (isc_put_segment(IB_STATUS, &ib_blob->bl_handle, (unsigned short) string_arg->value.str.len, string_arg->value.str.val)) {
                _php_ibase_error();
                RETURN_FALSE;
        }
@@ -2625,7 +2627,7 @@ PHP_FUNCTION(ibase_blob_get)
        }
 
        convert_to_long(len_arg);
-       max_len = len_arg->value.lval;
+       max_len = (unsigned short) len_arg->value.lval;
 
        GET_BLOB_HANDLE_ARG(blob_arg, ib_blob);
 
@@ -2634,7 +2636,7 @@ PHP_FUNCTION(ibase_blob_get)
                bl_data = emalloc(max_len+1);
 
                for (cur_len = stat = 0; stat == 0; ) {
-                       stat = isc_get_segment(IB_STATUS, &ib_blob->bl_handle, &seg_len, max_len-cur_len, &bl_data[cur_len]);
+                       stat = isc_get_segment(IB_STATUS, &ib_blob->bl_handle, &seg_len, (unsigned short) (max_len-cur_len), &bl_data[cur_len]);
                        cur_len += seg_len;
                        if (cur_len > max_len) { /* never!*/
                                efree(bl_data);
@@ -2855,7 +2857,8 @@ extern int wsa_fp;
 PHP_FUNCTION(ibase_blob_import)
 {
        zval **link_arg, **file_arg;
-       int trans_n = 0, link_id = 0, trans_id = 0, size, b;
+       int trans_n = 0, link_id = 0, trans_id = 0, size;
+       unsigned short b;
        int issock=0, socketd=0;
        ibase_blob_handle ib_blob;
        ibase_db_link *ib_link;
@@ -2871,7 +2874,7 @@ PHP_FUNCTION(ibase_blob_import)
                                RETURN_FALSE;
                        }
                        link_id = IBG(default_link);
-                       ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, link_arg, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
+                       ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, NULL, link_id, "InterBase link", IBG(le_link), IBG(le_plink));
                        break;
                case 2:
                        if (zend_get_parameters_ex(2, &link_arg, &file_arg) == FAILURE) {
diff --git a/ext/interbase/interbase.dsp b/ext/interbase/interbase.dsp
new file mode 100644 (file)
index 0000000..78ea26f
--- /dev/null
@@ -0,0 +1,101 @@
+# Microsoft Developer Studio Project File - Name="interbase" - Package Owner=<4>\r
+# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102\r
+\r
+CFG=interbase - Win32 Debug\r
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+!MESSAGE use the Export Makefile command and run\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "interbase.mak".\r
+!MESSAGE \r
+!MESSAGE You can specify a configuration when running NMAKE\r
+!MESSAGE by defining the macro CFG on the command line. For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "interbase.mak" CFG="interbase - Win32 Debug"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "interbase - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")\r
+!MESSAGE "interbase - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+CPP=cl.exe\r
+MTL=midl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "interbase - Win32 Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "Release"\r
+# PROP BASE Intermediate_Dir "Release"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "Release"\r
+# PROP Intermediate_Dir "Release"\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "INTERBASE_EXPORTS" /YX /FD /c\r
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "INTERBASE_EXPORTS" /YX /FD /c\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x40d /d "NDEBUG"\r
+# ADD RSC /l 0x40d /d "NDEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386\r
+\r
+!ELSEIF  "$(CFG)" == "interbase - Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "Debug"\r
+# PROP BASE Intermediate_Dir "Debug"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "Debug"\r
+# PROP Intermediate_Dir "Debug"\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "INTERBASE_EXPORTS" /YX /FD /GZ  /c\r
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "INTERBASE_EXPORTS" /YX /FD /GZ  /c\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x40d /d "_DEBUG"\r
+# ADD RSC /l 0x40d /d "_DEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "interbase - Win32 Release"\r
+# Name "interbase - Win32 Debug"\r
+# Begin Group "Source Files"\r
+\r
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+# End Group\r
+# Begin Group "Header Files"\r
+\r
+# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+# End Group\r
+# Begin Group "Resource Files"\r
+\r
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+# End Group\r
+# End Target\r
+# End Project\r
index 83bd174a03ec09caa7f5e7167a50c3149d8ffc6c..aa85e83a1b625ee4c3adcb2963af48cdc6d2985b 100644 (file)
@@ -96,7 +96,7 @@ ZEND_END_MODULE_GLOBALS(ibase)
 typedef struct {
        isc_tr_handle trans[IBASE_TRANS_ON_LINK];
        isc_db_handle link;
-       int dialect;
+       unsigned short dialect;
 } ibase_db_link;
 
 typedef struct {
@@ -126,7 +126,7 @@ typedef struct {
        XSQLDA *in_sqlda, *out_sqlda;
        ibase_array *in_array, *out_array;
        int in_array_cnt, out_array_cnt;
-       int dialect;
+       unsigned short dialect;
        int cursor_open;
 } ibase_query;