mboeren Wed Apr 18 05:31:08 2001 EDT Modified files: /php4/ext/dbx dbx.c dbx.h Log: Added DBX_CMP_TEXT and DBX_CMP_NUMBER constants and support for them in the dbx_cmp_desc and dbx_cmp_asc functions. The old method of passing a string "number" is now no longer valid. (Mc) Index: php4/ext/dbx/dbx.c diff -u php4/ext/dbx/dbx.c:1.9 php4/ext/dbx/dbx.c:1.10 --- php4/ext/dbx/dbx.c:1.9 Wed Apr 11 01:14:57 2001 +++ php4/ext/dbx/dbx.c Wed Apr 18 05:31:08 2001 @@ -138,6 +138,8 @@ REGISTER_LONG_CONSTANT("DBX_RESULT_INFO", DBX_RESULT_INFO, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("DBX_RESULT_INDEX", DBX_RESULT_INDEX, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("DBX_RESULT_ASSOC", DBX_RESULT_ASSOC, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBX_CMP_TEXT", DBX_CMP_TEXT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBX_CMP_NUMBER", DBX_CMP_NUMBER, CONST_CS | +CONST_PERSISTENT); return SUCCESS; } @@ -498,7 +500,7 @@ int min_number_of_arguments=3; int max_number_of_arguments=4; int number_of_arguments=-1; - int comparison_type=0; + long comparison_type; double dtemp; long ltemp; zval ** arguments[4]; @@ -516,10 +518,10 @@ RETURN_LONG(0); } convert_to_string_ex(arguments[2]); /*/ field name /*/ - comparison_type = 0; // default, text + comparison_type = DBX_CMP_TEXT; if (number_of_arguments>3) { - convert_to_string_ex(arguments[3]); /*/ comparison type /*/ - if (!strcmp((*arguments[3])->value.str.val, "number")) comparison_type=1; + convert_to_long_ex(arguments[3]); /*/ comparison type /*/ + comparison_type=(*arguments[3])->value.lval; } if (zend_hash_find((*arguments[0])->value.ht, (*arguments[2])->value.str.val, (*arguments[2])->value.str.len+1, (void **) &zv_a)==FAILURE @@ -529,13 +531,13 @@ } switch (comparison_type) { - case 0: + case DBX_CMP_TEXT: convert_to_string_ex(zv_a); convert_to_string_ex(zv_b); ltemp = strcmp((*zv_a)->value.str.val, (*zv_b)->value.str.val); result = (ltemp==0?0: (ltemp>0?1:-1)); break; - case 1: + case DBX_CMP_NUMBER: convert_to_double_ex(zv_a); convert_to_double_ex(zv_b); dtemp = ((*zv_a)->value.dval - (*zv_b)->value.dval); @@ -557,7 +559,7 @@ int min_number_of_arguments=3; int max_number_of_arguments=4; int number_of_arguments=-1; - int comparison_type=0; + long comparison_type; double dtemp; long ltemp; zval ** arguments[4]; @@ -575,10 +577,10 @@ RETURN_LONG(0); } convert_to_string_ex(arguments[2]); /*/ field name /*/ - comparison_type = 0; // default, text + comparison_type = DBX_CMP_TEXT; if (number_of_arguments>3) { - convert_to_string_ex(arguments[3]); /*/ comparison type /*/ - if (!strcmp((*arguments[3])->value.str.val, "number")) comparison_type=1; + convert_to_long_ex(arguments[3]); /*/ comparison type /*/ + comparison_type=(*arguments[3])->value.lval; } if (zend_hash_find((*arguments[0])->value.ht, (*arguments[2])->value.str.val, (*arguments[2])->value.str.len+1, (void **) &zv_a)==FAILURE @@ -588,13 +590,13 @@ } switch (comparison_type) { - case 0: + case DBX_CMP_TEXT: convert_to_string_ex(zv_a); convert_to_string_ex(zv_b); ltemp = strcmp((*zv_b)->value.str.val, (*zv_a)->value.str.val); result = (ltemp==0?0: (ltemp>0?1:-1)); break; - case 1: + case DBX_CMP_NUMBER: convert_to_double_ex(zv_a); convert_to_double_ex(zv_b); dtemp = ((*zv_b)->value.dval - (*zv_a)->value.dval); Index: php4/ext/dbx/dbx.h diff -u php4/ext/dbx/dbx.h:1.2 php4/ext/dbx/dbx.h:1.3 --- php4/ext/dbx/dbx.h:1.2 Fri Mar 23 02:23:58 2001 +++ php4/ext/dbx/dbx.h Wed Apr 18 05:31:08 2001 @@ -33,6 +33,8 @@ #define DBX_RESULT_INFO 1 #define DBX_RESULT_INDEX 2 #define DBX_RESULT_ASSOC 4 +#define DBX_CMP_TEXT 0 +#define DBX_CMP_NUMBER 1 #define MOVE_RETURNED_TO_RV(rv, returned_zval) { **rv = *returned_zval; zval_copy_ctor(*rv); zval_ptr_dtor(&returned_zval); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]