@@ -68,9 +68,11 @@ PHP_INI_BEGIN()
6868    PHP_INI_ENTRY ("redis.clusters.read_timeout" , "" , PHP_INI_ALL , NULL )
6969PHP_INI_END ()
7070
71+ /** Argument info for any function expecting 0 args */ 
7172ZEND_BEGIN_ARG_INFO_EX (arginfo_void , 0 , 0 , 0 )
7273ZEND_END_ARG_INFO ()
7374
75+ /** {{{ Argument info for commands in redis 1.0 */ 
7476ZEND_BEGIN_ARG_INFO_EX (arginfo_connect , 0 , 0 , 2 )
7577    ZEND_ARG_INFO (0 , host )
7678    ZEND_ARG_INFO (0 , port )
@@ -99,12 +101,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_set, 0, 0, 2)
99101    ZEND_ARG_INFO (0 , opt )
100102ZEND_END_ARG_INFO ()
101103
102- ZEND_BEGIN_ARG_INFO_EX (arginfo_setex , 0 , 0 , 3 )
103-     ZEND_ARG_INFO (0 , key )
104-     ZEND_ARG_INFO (0 , expire )
105-     ZEND_ARG_INFO (0 , value )
106- ZEND_END_ARG_INFO ()
107- 
108104ZEND_BEGIN_ARG_INFO_EX (arginfo_key_expire_value , 0 , 0 , 3 )
109105    ZEND_ARG_INFO (0 , key )
110106    ZEND_ARG_INFO (0 , expire )
@@ -126,7 +122,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_mget, 0, 0, 1)
126122ZEND_END_ARG_INFO ()
127123
128124ZEND_BEGIN_ARG_INFO_EX (arginfo_del , 0 , 0 , 1 )
125+     ZEND_ARG_INFO (0 , key )
126+ #if  PHP_VERSION_ID  >= 50600 
127+     ZEND_ARG_VARIADIC_INFO (0 , other_keys )
128+ #else 
129129    ZEND_ARG_INFO (0 , ...)
130+ #endif 
130131ZEND_END_ARG_INFO ()
131132
132133ZEND_BEGIN_ARG_INFO_EX (arginfo_key_start_end , 0 , 0 , 3 )
@@ -165,8 +166,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_generic_sort, 0, 0, 1)
165166ZEND_END_ARG_INFO ()
166167
167168ZEND_BEGIN_ARG_INFO_EX (arginfo_blrpop , 0 , 0 , 2 )
168-     ZEND_ARG_INFO (0 , ...)
169-     ZEND_ARG_INFO (0 , timeout )
169+     ZEND_ARG_INFO (0 , key )
170+     ZEND_ARG_INFO (0 , timeout_or_key )
171+ // Can't have variadic keys before timeout. 
172+ #if  PHP_VERSION_ID  >= 50600 
173+     ZEND_ARG_VARIADIC_INFO (0 , extra_args )
174+ #endif 
170175ZEND_END_ARG_INFO ()
171176
172177ZEND_BEGIN_ARG_INFO_EX (arginfo_lrem , 0 , 0 , 3 )
@@ -217,13 +222,17 @@ ZEND_END_ARG_INFO()
217222
218223ZEND_BEGIN_ARG_INFO_EX (arginfo_nkeys , 0 , 0 , 1 )
219224    ZEND_ARG_INFO (0 , key )
220-     ZEND_ARG_INFO (0 , ...)
225+ #if  PHP_VERSION_ID  >= 50600 
226+     ZEND_ARG_VARIADIC_INFO (0 , other_keys )
227+ #endif 
221228ZEND_END_ARG_INFO ()
222229
223230ZEND_BEGIN_ARG_INFO_EX (arginfo_dst_nkeys , 0 , 0 , 2 )
224231    ZEND_ARG_INFO (0 , dst )
225232    ZEND_ARG_INFO (0 , key )
226-     ZEND_ARG_INFO (0 , ...)
233+ #if  PHP_VERSION_ID  >= 50600 
234+     ZEND_ARG_VARIADIC_INFO (0 , other_keys )
235+ #endif 
227236ZEND_END_ARG_INFO ()
228237
229238ZEND_BEGIN_ARG_INFO_EX (arginfo_set_timeout , 0 , 0 , 2 )
@@ -234,6 +243,59 @@ ZEND_END_ARG_INFO()
234243ZEND_BEGIN_ARG_INFO_EX (arginfo_auth , 0 , 0 , 1 )
235244    ZEND_ARG_INFO (0 , password )
236245ZEND_END_ARG_INFO ()
246+ 
247+ ZEND_BEGIN_ARG_INFO_EX (arginfo_info , 0 , 0 , 0 )
248+     ZEND_ARG_INFO (0 , option )
249+ ZEND_END_ARG_INFO ()
250+ 
251+ ZEND_BEGIN_ARG_INFO_EX (arginfo_select , 0 , 0 , 1 )
252+     ZEND_ARG_INFO (0 , dbindex )
253+ ZEND_END_ARG_INFO ()
254+ 
255+ ZEND_BEGIN_ARG_INFO_EX (arginfo_move , 0 , 0 , 2 )
256+     ZEND_ARG_INFO (0 , key )
257+     ZEND_ARG_INFO (0 , dbindex )
258+ ZEND_END_ARG_INFO ()
259+ 
260+ ZEND_BEGIN_ARG_INFO_EX (arginfo_slaveof , 0 , 0 , 0 )
261+     ZEND_ARG_INFO (0 , host )
262+     ZEND_ARG_INFO (0 , port )
263+ ZEND_END_ARG_INFO ()
264+ 
265+ ZEND_BEGIN_ARG_INFO_EX (arginfo_object , 0 , 0 , 2 )
266+     ZEND_ARG_INFO (0 , field )
267+     ZEND_ARG_INFO (0 , key )
268+ ZEND_END_ARG_INFO ()
269+ 
270+ ZEND_BEGIN_ARG_INFO_EX (arginfo_bitop , 0 , 0 , 3 )
271+     ZEND_ARG_INFO (0 , operation )
272+     ZEND_ARG_INFO (0 , ret_key )
273+     ZEND_ARG_INFO (0 , key )
274+ #if  PHP_VERSION_ID  >= 50600 
275+     ZEND_ARG_VARIADIC_INFO (0 , other_keys )
276+ #endif 
277+ ZEND_END_ARG_INFO ()
278+ 
279+ ZEND_BEGIN_ARG_INFO_EX (arginfo_bitpos , 0 , 0 , 2 )
280+     ZEND_ARG_INFO (0 , key )
281+     ZEND_ARG_INFO (0 , bit )
282+     ZEND_ARG_INFO (0 , start )
283+     ZEND_ARG_INFO (0 , end )
284+ ZEND_END_ARG_INFO ()
285+ 
286+ ZEND_BEGIN_ARG_INFO_EX (arginfo_eval , 0 , 0 , 1 )
287+     ZEND_ARG_INFO (0 , script )
288+     ZEND_ARG_INFO (0 , args )
289+     ZEND_ARG_INFO (0 , num_keys )
290+ ZEND_END_ARG_INFO ()
291+ 
292+ ZEND_BEGIN_ARG_INFO_EX (arginfo_evalsha , 0 , 0 , 1 )
293+     ZEND_ARG_INFO (0 , script_sha )
294+     ZEND_ARG_INFO (0 , args )
295+     ZEND_ARG_INFO (0 , num_keys )
296+ ZEND_END_ARG_INFO ()
297+ /* }}} */ 
298+ 
237299/** 
238300 * Argument info for the SCAN proper 
239301 */ 
@@ -336,15 +398,15 @@ static zend_function_entry redis_functions[] = {
336398     PHP_ME (Redis , ttl , arginfo_key , ZEND_ACC_PUBLIC )
337399     PHP_ME (Redis , pttl , arginfo_key , ZEND_ACC_PUBLIC )
338400     PHP_ME (Redis , persist , arginfo_key , ZEND_ACC_PUBLIC )
339-      PHP_ME (Redis , info , NULL , ZEND_ACC_PUBLIC )
340-      PHP_ME (Redis , select , NULL , ZEND_ACC_PUBLIC )
341-      PHP_ME (Redis , move , NULL , ZEND_ACC_PUBLIC )
401+      PHP_ME (Redis , info , arginfo_info , ZEND_ACC_PUBLIC )
402+      PHP_ME (Redis , select , arginfo_select , ZEND_ACC_PUBLIC )
403+      PHP_ME (Redis , move , arginfo_move , ZEND_ACC_PUBLIC )
342404     PHP_ME (Redis , bgrewriteaof , arginfo_void , ZEND_ACC_PUBLIC )
343-      PHP_ME (Redis , slaveof , NULL , ZEND_ACC_PUBLIC )
344-      PHP_ME (Redis , object , NULL , ZEND_ACC_PUBLIC )
345-      PHP_ME (Redis , bitop , NULL , ZEND_ACC_PUBLIC )
346-      PHP_ME (Redis , bitcount , NULL , ZEND_ACC_PUBLIC )
347-      PHP_ME (Redis , bitpos , NULL , ZEND_ACC_PUBLIC )
405+      PHP_ME (Redis , slaveof , arginfo_slaveof , ZEND_ACC_PUBLIC )
406+      PHP_ME (Redis , object , arginfo_object , ZEND_ACC_PUBLIC )
407+      PHP_ME (Redis , bitop , arginfo_bitop , ZEND_ACC_PUBLIC )
408+      PHP_ME (Redis , bitcount , arginfo_key , ZEND_ACC_PUBLIC )
409+      PHP_ME (Redis , bitpos , arginfo_bitpos , ZEND_ACC_PUBLIC )
348410
349411     /* 1.1 */ 
350412     PHP_ME (Redis , mset , NULL , ZEND_ACC_PUBLIC )
@@ -404,19 +466,19 @@ static zend_function_entry redis_functions[] = {
404466     PHP_ME (Redis , unsubscribe , NULL , ZEND_ACC_PUBLIC )
405467     PHP_ME (Redis , punsubscribe , NULL , ZEND_ACC_PUBLIC )
406468
407-      PHP_ME (Redis , time , NULL , ZEND_ACC_PUBLIC )
469+      PHP_ME (Redis , time , arginfo_void , ZEND_ACC_PUBLIC )
408470     PHP_ME (Redis , role , NULL , ZEND_ACC_PUBLIC )
409-      PHP_ME (Redis , eval , NULL , ZEND_ACC_PUBLIC )
410-      PHP_ME (Redis , evalsha , NULL , ZEND_ACC_PUBLIC )
471+      PHP_ME (Redis , eval , arginfo_eval , ZEND_ACC_PUBLIC )
472+      PHP_ME (Redis , evalsha , arginfo_evalsha , ZEND_ACC_PUBLIC )
411473     PHP_ME (Redis , script , NULL , ZEND_ACC_PUBLIC )
412474
413475     PHP_ME (Redis , debug , NULL , ZEND_ACC_PUBLIC )
414476     PHP_ME (Redis , dump , NULL , ZEND_ACC_PUBLIC )
415477     PHP_ME (Redis , restore , NULL , ZEND_ACC_PUBLIC )
416478     PHP_ME (Redis , migrate , NULL , ZEND_ACC_PUBLIC )
417479
418-      PHP_ME (Redis , getLastError , NULL , ZEND_ACC_PUBLIC )
419-      PHP_ME (Redis , clearLastError , NULL , ZEND_ACC_PUBLIC )
480+      PHP_ME (Redis , getLastError , arginfo_void , ZEND_ACC_PUBLIC )
481+      PHP_ME (Redis , clearLastError , arginfo_void , ZEND_ACC_PUBLIC )
420482
421483     PHP_ME (Redis , _prefix , NULL , ZEND_ACC_PUBLIC )
422484     PHP_ME (Redis , _serialize , NULL , ZEND_ACC_PUBLIC )
@@ -458,24 +520,25 @@ static zend_function_entry redis_functions[] = {
458520     PHP_ME (Redis , georadiusbymember , NULL , ZEND_ACC_PUBLIC )
459521
460522     /* introspection */ 
461-      PHP_ME (Redis , getHost , NULL , ZEND_ACC_PUBLIC )
462-      PHP_ME (Redis , getPort , NULL , ZEND_ACC_PUBLIC )
463-      PHP_ME (Redis , getDBNum , NULL , ZEND_ACC_PUBLIC )
464-      PHP_ME (Redis , getTimeout , NULL , ZEND_ACC_PUBLIC )
465-      PHP_ME (Redis , getReadTimeout , NULL , ZEND_ACC_PUBLIC )
466-      PHP_ME (Redis , getPersistentID , NULL , ZEND_ACC_PUBLIC )
467-      PHP_ME (Redis , getAuth , NULL , ZEND_ACC_PUBLIC )
468-      PHP_ME (Redis , isConnected , NULL , ZEND_ACC_PUBLIC )
523+      PHP_ME (Redis , getHost , arginfo_void , ZEND_ACC_PUBLIC )
524+      PHP_ME (Redis , getPort , arginfo_void , ZEND_ACC_PUBLIC )
525+      PHP_ME (Redis , getDBNum , arginfo_void , ZEND_ACC_PUBLIC )
526+      PHP_ME (Redis , getTimeout , arginfo_void , ZEND_ACC_PUBLIC )
527+      PHP_ME (Redis , getReadTimeout , arginfo_void , ZEND_ACC_PUBLIC )
528+      PHP_ME (Redis , getPersistentID , arginfo_void , ZEND_ACC_PUBLIC )
529+      PHP_ME (Redis , getAuth , arginfo_void , ZEND_ACC_PUBLIC )
530+      PHP_ME (Redis , isConnected , arginfo_void , ZEND_ACC_PUBLIC )
531+      /* TODO: document getMode() and wait() in README? */ 
469532     PHP_ME (Redis , getMode , NULL , ZEND_ACC_PUBLIC )
470533     PHP_ME (Redis , wait , NULL , ZEND_ACC_PUBLIC )
471534     PHP_ME (Redis , pubsub , NULL , ZEND_ACC_PUBLIC )
472535
473536     /* aliases */ 
474-      PHP_MALIAS (Redis , open , connect , NULL , ZEND_ACC_PUBLIC )
475-      PHP_MALIAS (Redis , popen , pconnect , NULL , ZEND_ACC_PUBLIC )
537+      PHP_MALIAS (Redis , open , connect , arginfo_connect , ZEND_ACC_PUBLIC )
538+      PHP_MALIAS (Redis , popen , pconnect , arginfo_pconnect , ZEND_ACC_PUBLIC )
476539     PHP_MALIAS (Redis , lLen , lSize , NULL , ZEND_ACC_PUBLIC )
477540     PHP_MALIAS (Redis , sGetMembers , sMembers , NULL , ZEND_ACC_PUBLIC )
478-      PHP_MALIAS (Redis , mget , getMultiple , NULL , ZEND_ACC_PUBLIC )
541+      PHP_MALIAS (Redis , mget , getMultiple , arginfo_mget , ZEND_ACC_PUBLIC )
479542     PHP_MALIAS (Redis , expire , setTimeout , NULL , ZEND_ACC_PUBLIC )
480543     PHP_MALIAS (Redis , zunionstore , zUnion , NULL , ZEND_ACC_PUBLIC )
481544     PHP_MALIAS (Redis , zinterstore , zInter , NULL , ZEND_ACC_PUBLIC )
@@ -486,9 +549,9 @@ static zend_function_entry redis_functions[] = {
486549     PHP_MALIAS (Redis , zRemRangeByScore , zDeleteRangeByScore , NULL , ZEND_ACC_PUBLIC )
487550     PHP_MALIAS (Redis , zRemRangeByRank , zDeleteRangeByRank , NULL , ZEND_ACC_PUBLIC )
488551     PHP_MALIAS (Redis , zSize , zCard , NULL , ZEND_ACC_PUBLIC )
489-      PHP_MALIAS (Redis , substr , getRange , NULL , ZEND_ACC_PUBLIC )
490-      PHP_MALIAS (Redis , rename , renameKey , NULL , ZEND_ACC_PUBLIC )
491-      PHP_MALIAS (Redis , del , delete , NULL , ZEND_ACC_PUBLIC )
552+      PHP_MALIAS (Redis , substr , getRange , arginfo_key_start_end , ZEND_ACC_PUBLIC )
553+      PHP_MALIAS (Redis , rename , renameKey , arginfo_key_newkey , ZEND_ACC_PUBLIC )
554+      PHP_MALIAS (Redis , del , delete , arginfo_del , ZEND_ACC_PUBLIC )
492555     PHP_MALIAS (Redis , keys , getKeys , NULL , ZEND_ACC_PUBLIC )
493556     PHP_MALIAS (Redis , lrem , lRemove , NULL , ZEND_ACC_PUBLIC )
494557     PHP_MALIAS (Redis , ltrim , listTrim , NULL , ZEND_ACC_PUBLIC )
@@ -499,10 +562,10 @@ static zend_function_entry redis_functions[] = {
499562     PHP_MALIAS (Redis , sismember , sContains , NULL , ZEND_ACC_PUBLIC )
500563     PHP_MALIAS (Redis , zReverseRange , zRevRange , NULL , ZEND_ACC_PUBLIC )
501564
502-      PHP_MALIAS (Redis , sendEcho , echo , NULL , ZEND_ACC_PUBLIC )
565+      PHP_MALIAS (Redis , sendEcho , echo , arginfo_echo , ZEND_ACC_PUBLIC )
503566
504-      PHP_MALIAS (Redis , evaluate , eval , NULL , ZEND_ACC_PUBLIC )
505-      PHP_MALIAS (Redis , evaluateSha , evalsha , NULL , ZEND_ACC_PUBLIC )
567+      PHP_MALIAS (Redis , evaluate , eval , arginfo_eval , ZEND_ACC_PUBLIC )
568+      PHP_MALIAS (Redis , evaluateSha , evalsha , arginfo_evalsha , ZEND_ACC_PUBLIC )
506569     PHP_FE_END 
507570};
508571
@@ -1317,11 +1380,13 @@ PHP_METHOD(Redis, getRange)
13171380}
13181381/* }}} */ 
13191382
1383+ /* {{{ proto string Redis::setRange(string key, long start, string value) */ 
13201384PHP_METHOD (Redis , setRange )
13211385{
13221386    REDIS_PROCESS_KW_CMD ("SETRANGE" , redis_key_long_str_cmd ,
13231387        redis_long_response );
13241388}
1389+ /* }}} */ 
13251390
13261391/* {{{ proto long Redis::getbit(string key, long idx) */ 
13271392PHP_METHOD (Redis , getBit )
@@ -1330,10 +1395,12 @@ PHP_METHOD(Redis, getBit)
13301395}
13311396/* }}} */ 
13321397
1398+ /* {{{ proto long Redis::setbit(string key, long idx, bool|int value) */ 
13331399PHP_METHOD (Redis , setBit )
13341400{
13351401    REDIS_PROCESS_CMD (setbit , redis_long_response );
13361402}
1403+ /* }}} */ 
13371404
13381405/* {{{ proto long Redis::strlen(string key) */ 
13391406PHP_METHOD (Redis , strlen )
0 commit comments