cvs: /php4 ChangeLog /php4/ext/standard basic_functions.c basic_functions.h
| From: | Thies C . Arntzen | Date: | Tue, 21 Sep 1999 14:36:41 +0000 |
| Subject: | cvs: /php4 ChangeLog /php4/ext/standard basic_functions.c basic_functions.h | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-4746@lists.php.net to get a copy of this message | ||
thies Tue Sep 21 10:36:41 1999 EDT
Modified files:
/php4 ChangeLog
/php4/ext/standard basic_functions.c basic_functions.h
Log:
added krsort() function
Index: php4/ChangeLog
diff -u php4/ChangeLog:1.123 php4/ChangeLog:1.124
--- php4/ChangeLog:1.123 Tue Sep 21 03:32:50 1999
+++ php4/ChangeLog Tue Sep 21 10:36:39 1999
@@ -2,6 +2,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ?? 1999, Version 4.0 Beta 3
+- Added krsort() function (Thies)
- Added func_num_args(), func_get_arg() and func_get_args() for standard
access to variable number of arguments functions (Zeev)
- Added FTP support (Andrew Skalski)
Index: php4/ext/standard/basic_functions.c
diff -u php4/ext/standard/basic_functions.c:1.91 php4/ext/standard/basic_functions.c:1.92
--- php4/ext/standard/basic_functions.c:1.91 Mon Sep 20 17:29:41 1999
+++ php4/ext/standard/basic_functions.c Tue Sep 21 10:36:41 1999
@@ -82,6 +82,7 @@
PHP_FE(usleep, NULL)
PHP_FE(ksort, first_arg_force_ref)
+ PHP_FE(krsort, first_arg_force_ref)
PHP_FE(asort, first_arg_force_ref)
PHP_FE(arsort, first_arg_force_ref)
PHP_FE(sort, first_arg_force_ref)
@@ -620,6 +621,10 @@
pval_copy_constructor(return_value);
}
+static int array_reverse_key_compare(const void *a, const void *b)
+{ return array_key_compare(a,b)*-1;
+}
+
static int array_key_compare(const void *a, const void *b)
{
Bucket *first;
@@ -644,6 +649,29 @@
}
}
+
+PHP_FUNCTION(krsort)
+{
+ pval *array;
+ HashTable *target_hash;
+
+ if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &array) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+ target_hash = HASH_OF(array);
+ if (!target_hash) {
+ php_error(E_WARNING, "Wrong datatype in krsort() call");
+ return;
+ }
+ if (!ParameterPassedByReference(ht,1)) {
+ php_error(E_WARNING, "Array not passed by reference in call to krsort()");
+ return;
+ }
+ if (zend_hash_sort(target_hash, array_reverse_key_compare,0) == FAILURE) {
+ return;
+ }
+ RETURN_TRUE;
+}
PHP_FUNCTION(ksort)
{
Index: php4/ext/standard/basic_functions.h
diff -u php4/ext/standard/basic_functions.h:1.17 php4/ext/standard/basic_functions.h:1.18
--- php4/ext/standard/basic_functions.h:1.17 Mon Sep 20 17:29:41 1999
+++ php4/ext/standard/basic_functions.h Tue Sep 21 10:36:41 1999
@@ -29,7 +29,7 @@
*/
-/* $Id: basic_functions.h,v 1.17 1999/09/20 21:29:41 andi Exp $ */
+/* $Id: basic_functions.h,v 1.18 1999/09/21 14:36:41 thies Exp $ */
#ifndef _BASIC_FUNCTIONS_H
#define _BASIC_FUNCTIONS_H
@@ -51,6 +51,7 @@
PHP_FUNCTION(sleep);
PHP_FUNCTION(usleep);
PHP_FUNCTION(ksort);
+PHP_FUNCTION(krsort);
PHP_FUNCTION(asort);
PHP_FUNCTION(arsort);
PHP_FUNCTION(sort);