cvs: /php4 ChangeLog /php4/ext/standard basic_functions.c basic_functions.h

From: 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);

« previous php.version4 (#4746) next »