From: Harald Radi Date: Sun, 13 May 2001 14:15:26 +0000 (+0000) Subject: @added an additional parameter to dotnet_load to specify the codepage (phanto) X-Git-Tag: PRE_GRANULAR_GARBAGE_FIX~443 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=04a5d124aa527e689974d5f5c0c0607ecfe712c1;p=php @added an additional parameter to dotnet_load to specify the codepage (phanto) --- diff --git a/ext/dotnet/dotnet.cpp b/ext/dotnet/dotnet.cpp index 0e65bfe630..f99b6935ad 100644 --- a/ext/dotnet/dotnet.cpp +++ b/ext/dotnet/dotnet.cpp @@ -13,6 +13,7 @@ | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Sam Ruby | + | Harald Radi | +----------------------------------------------------------------------+ */ @@ -101,21 +102,32 @@ void dotnet_term() { pDomain = 0; } -/* {{{ proto int dotnet_load(string module_name) +/* {{{ proto int dotnet_load(string assembly_name [, string datatype_name, int codepage]) Loads a DOTNET module */ -PHP_FUNCTION(DOTNET_load) +PHP_FUNCTION(dotnet_load) { HRESULT hr; - pval *assembly_name, *datatype_name; + pval *assembly_name, *datatype_name, *code_page; OLECHAR *assembly, *datatype; i_dispatch *obj; - if (ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT; - - /* should be made configurable like in ext/com */ - codepage = CP_ACP; + switch(ZEND_NUM_ARGS()) + { + case 2: + getParameters(ht, 2, &assembly_name, &datatype_name); + codepage = CP_ACP; + break; + case 3: + getParameters(ht, 3, &assembly_name, &datatype_name, &code_page); + + convert_to_long(code_page); + codepage = code_page->value.lval; + break; + default: + WRONG_PARAM_COUNT; + break; + } - getParameters(ht, 2, &assembly_name, &datatype_name); convert_to_string(assembly_name); assembly = php_char_to_OLECHAR(assembly_name->value.str.val, assembly_name->value.str.len, codepage); @@ -156,7 +168,7 @@ void php_DOTNET_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_propert && !strcmp(function_name->element.value.str.val, "dotnet")) { /* constructor */ pval *object_handle; - PHP_FN(DOTNET_load)(INTERNAL_FUNCTION_PARAM_PASSTHRU); + PHP_FN(dotnet_load)(INTERNAL_FUNCTION_PARAM_PASSTHRU); if (!zend_is_true(return_value)) { var_reset(object); return; diff --git a/ext/rpc/dotnet/dotnet.cpp b/ext/rpc/dotnet/dotnet.cpp index 0e65bfe630..f99b6935ad 100644 --- a/ext/rpc/dotnet/dotnet.cpp +++ b/ext/rpc/dotnet/dotnet.cpp @@ -13,6 +13,7 @@ | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Sam Ruby | + | Harald Radi | +----------------------------------------------------------------------+ */ @@ -101,21 +102,32 @@ void dotnet_term() { pDomain = 0; } -/* {{{ proto int dotnet_load(string module_name) +/* {{{ proto int dotnet_load(string assembly_name [, string datatype_name, int codepage]) Loads a DOTNET module */ -PHP_FUNCTION(DOTNET_load) +PHP_FUNCTION(dotnet_load) { HRESULT hr; - pval *assembly_name, *datatype_name; + pval *assembly_name, *datatype_name, *code_page; OLECHAR *assembly, *datatype; i_dispatch *obj; - if (ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT; - - /* should be made configurable like in ext/com */ - codepage = CP_ACP; + switch(ZEND_NUM_ARGS()) + { + case 2: + getParameters(ht, 2, &assembly_name, &datatype_name); + codepage = CP_ACP; + break; + case 3: + getParameters(ht, 3, &assembly_name, &datatype_name, &code_page); + + convert_to_long(code_page); + codepage = code_page->value.lval; + break; + default: + WRONG_PARAM_COUNT; + break; + } - getParameters(ht, 2, &assembly_name, &datatype_name); convert_to_string(assembly_name); assembly = php_char_to_OLECHAR(assembly_name->value.str.val, assembly_name->value.str.len, codepage); @@ -156,7 +168,7 @@ void php_DOTNET_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_propert && !strcmp(function_name->element.value.str.val, "dotnet")) { /* constructor */ pval *object_handle; - PHP_FN(DOTNET_load)(INTERNAL_FUNCTION_PARAM_PASSTHRU); + PHP_FN(dotnet_load)(INTERNAL_FUNCTION_PARAM_PASSTHRU); if (!zend_is_true(return_value)) { var_reset(object); return;