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]

Reply via email to