From d041982a9cf997be970d65b3955ad7895dc0c44f Mon Sep 17 00:00:00 2001 From: Harald Radi Date: Tue, 14 Aug 2001 00:28:54 +0000 Subject: [PATCH] make next() return a single value instead of an array with one element --- ext/com/COM.c | 9 +++++++++ ext/rpc/com/com_wrapper.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/ext/com/COM.c b/ext/com/COM.c index 0063f426b18..aeae84ddcfe 100644 --- a/ext/com/COM.c +++ b/ext/com/COM.c @@ -741,6 +741,15 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval ** } } + /* return a single element if next() was called without count */ + if((arg_count == 0) && (count == 1)) + { + long index[] = {1}; + + SafeArrayGetElement(pSA, index, var_result); + SafeArrayDestroy(pSA); + } + return SUCCESS; } else if(C_HASENUM(obj) && strstr(Z_STRVAL_P(function_name), "reset")) diff --git a/ext/rpc/com/com_wrapper.c b/ext/rpc/com/com_wrapper.c index 0063f426b18..aeae84ddcfe 100644 --- a/ext/rpc/com/com_wrapper.c +++ b/ext/rpc/com/com_wrapper.c @@ -741,6 +741,15 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval ** } } + /* return a single element if next() was called without count */ + if((arg_count == 0) && (count == 1)) + { + long index[] = {1}; + + SafeArrayGetElement(pSA, index, var_result); + SafeArrayDestroy(pSA); + } + return SUCCESS; } else if(C_HASENUM(obj) && strstr(Z_STRVAL_P(function_name), "reset"))