[PHP-CVS] cvs: php4 /ext/iconv iconv.c
andiWed Apr 18 21:02:03 2001 EDT Modified files: /php4/ext/iconv iconv.c Log: - WS Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.10 php4/ext/iconv/iconv.c:1.11 --- php4/ext/iconv/iconv.c:1.10 Thu Mar 29 01:37:09 2001 +++ php4/ext/iconv/iconv.c Wed Apr 18 21:02:03 2001 @@ -106,7 +106,8 @@ DISPLAY_INI_ENTRIES(); } -int php_iconv_string(char *in_p, char **out, char *in_charset, char *out_charset) { +int php_iconv_string(char *in_p, char **out, char *in_charset, char *out_charset) +{ unsigned int in_size, out_size; char *out_buffer, *out_p; iconv_t cd; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP-CVS] cvs: php4 /ext/iconv iconv.c
wez Thu Mar 29 01:37:09 2001 EDT Modified files: /php4/ext/iconv iconv.c Log: Fixed leak in php_iconv_string. Also returns FAILURE on failure, rather than -1 Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.9 php4/ext/iconv/iconv.c:1.10 --- php4/ext/iconv/iconv.c:1.9 Thu Mar 15 12:45:49 2001 +++ php4/ext/iconv/iconv.c Thu Mar 29 01:37:09 2001 @@ -126,15 +126,15 @@ php_error(E_WARNING, "iconv: cannot convert from `%s' to `%s'", in_charset, out_charset); efree(out_buffer); - return -1; + return FAILURE; } result = icv(cd, (const char **) &in_p, &in_size, (char **) &out_p, &out_size); if (result == (size_t)(-1)) { -sprintf(out_buffer, "???") ; - return -1; +efree(out_buffer); + return FAILURE; } icv_close(cd); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP-CVS] cvs: php4 /ext/iconv iconv.c
dbeuThu Mar 15 12:45:50 2001 EDT Modified files: /php4/ext/iconv iconv.c Log: fix win32 build Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.8 php4/ext/iconv/iconv.c:1.9 --- php4/ext/iconv/iconv.c:1.8 Fri Mar 9 18:03:25 2001 +++ php4/ext/iconv/iconv.c Thu Mar 15 12:45:49 2001 @@ -19,7 +19,6 @@ #include "php.h" #include "php_ini.h" -#include "php_config.h" #if HAVE_ICONV @@ -178,6 +177,7 @@ int coding; char *out_buffer; zval **zv_string; + SLS_FETCH(); ICONVLS_FETCH(); if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &zv_string)==FAILURE) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP-CVS] cvs: php4 /ext/iconv iconv.c /ext/pdf pdf.c
hirokawaFri Mar 9 18:03:26 2001 EDT Modified files: /php4/ext/iconv iconv.c /php4/ext/pdf pdf.c Log: initialized some strings in global variable structure. Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.7 php4/ext/iconv/iconv.c:1.8 --- php4/ext/iconv/iconv.c:1.7 Mon Feb 26 07:41:38 2001 +++ php4/ext/iconv/iconv.c Fri Mar 9 18:03:25 2001 @@ -18,10 +18,11 @@ */ #include "php.h" +#include "php_ini.h" +#include "php_config.h" #if HAVE_ICONV -#include "php_ini.h" #include "php_iconv.h" #include "ext/standard/info.h" @@ -76,10 +77,17 @@ STD_PHP_INI_ENTRY("iconv.internal_encoding", ICONV_INTERNAL_ENCODING,PHP_INI_ALL,OnUpdateString, internal_encoding, zend_iconv_globals, iconv_globals) PHP_INI_END() +static void +php_iconv_init_globals(zend_iconv_globals *iconv_globals) +{ + iconv_globals->input_encoding = NULL; + iconv_globals->output_encoding = NULL; + iconv_globals->internal_encoding = NULL; +} PHP_MINIT_FUNCTION(iconv) { - ZEND_INIT_MODULE_GLOBALS(iconv, NULL, NULL); + ZEND_INIT_MODULE_GLOBALS(iconv, php_iconv_init_globals, NULL); REGISTER_INI_ENTRIES(); return SUCCESS; } Index: php4/ext/pdf/pdf.c diff -u php4/ext/pdf/pdf.c:1.75 php4/ext/pdf/pdf.c:1.76 --- php4/ext/pdf/pdf.c:1.75 Mon Mar 5 08:18:50 2001 +++ php4/ext/pdf/pdf.c Fri Mar 9 18:03:26 2001 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: pdf.c,v 1.75 2001/03/05 16:18:50 rjs Exp $ */ +/* $Id: pdf.c,v 1.76 2001/03/10 02:03:26 hirokawa Exp $ */ /* Id: pdf.c,v 1.73 2001/02/26 06:07:11 andi Exp */ /* pdflib 2.02 ... 3.0x is subject to the ALADDIN FREE PUBLIC LICENSE. @@ -27,6 +27,7 @@ #include "php.h" #include "php_ini.h" #include "php_globals.h" +#include "php_config.h" #include "ext/standard/head.h" #include "ext/standard/info.h" #include "ext/standard/file.h" @@ -293,7 +294,7 @@ #else php_info_print_table_row(2, "PDFlib GmbH Version", tmp ); #endif - php_info_print_table_row(2, "Revision", "$Revision: 1.75 $" ); + php_info_print_table_row(2, "Revision", "$Revision: 1.76 $" ); php_info_print_table_end(); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP-CVS] cvs: php4 /ext/iconv iconv.c
hirokawaMon Feb 26 07:41:38 2001 EDT Modified files: /php4/ext/iconv iconv.c Log: ob_iconv_handler changed to use for text data only. Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.6 php4/ext/iconv/iconv.c:1.7 --- php4/ext/iconv/iconv.c:1.6 Sun Feb 25 22:06:57 2001 +++ php4/ext/iconv/iconv.c Mon Feb 26 07:41:38 2001 @@ -176,7 +176,8 @@ ZEND_WRONG_PARAM_COUNT(); } - if (php_iconv_string(Z_STRVAL_PP(zv_string), &out_buffer, + if (SG(sapi_headers).send_default_content_type && + php_iconv_string(Z_STRVAL_PP(zv_string), &out_buffer, ICONVG(internal_encoding), ICONVG(output_encoding))==SUCCESS) { RETVAL_STRING(out_buffer, 0); @@ -189,29 +190,39 @@ } /* }}} */ -/* {{{ proto bool iconv_set_encoding(string int_charset, string out_charset) +/* {{{ proto bool iconv_set_encoding(string type, string charset) Sets internal encoding and output encoding for ob_iconv_handler() */ PHP_FUNCTION(iconv_set_encoding) { - zval **int_charset, **out_charset; + zval **type, **charset; + int argc = ZEND_NUM_ARGS(); ICONVLS_FETCH(); - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &int_charset, &out_charset) == FAILURE) { + if (argc != 2 || zend_get_parameters_ex(2, &type, &charset) == FAILURE) { WRONG_PARAM_COUNT; } - - convert_to_string_ex(int_charset); - convert_to_string_ex(out_charset); - if (ICONVG(internal_encoding)) { - free(ICONVG(internal_encoding)); - } - ICONVG(internal_encoding) = estrndup(Z_STRVAL_PP(int_charset), Z_STRLEN_PP(int_charset)); + convert_to_string_ex(type); + convert_to_string_ex(charset); - if (ICONVG(output_encoding)) { - free(ICONVG(output_encoding)); + if(!strcasecmp("input_encoding",Z_STRVAL_PP(type))) { + if (ICONVG(input_encoding)) { + free(ICONVG(input_encoding)); + } + ICONVG(input_encoding) = estrndup(Z_STRVAL_PP(charset), +Z_STRLEN_PP(charset)); + } else if(!strcasecmp("output_encoding",Z_STRVAL_PP(type))) { + if (ICONVG(output_encoding)) { + free(ICONVG(output_encoding)); + } + ICONVG(output_encoding) = estrndup(Z_STRVAL_PP(charset), +Z_STRLEN_PP(charset)); + } else if(!strcasecmp("internal_encoding",Z_STRVAL_PP(type))) { + if (ICONVG(internal_encoding)) { + free(ICONVG(internal_encoding)); + } + ICONVG(internal_encoding) = estrndup(Z_STRVAL_PP(charset), +Z_STRLEN_PP(charset)); + } else { + RETURN_FALSE; } - ICONVG(output_encoding) = estrndup(Z_STRVAL_PP(out_charset),Z_STRLEN_PP(out_charset)); RETURN_TRUE; } @@ -235,10 +246,14 @@ if (array_init(return_value) == FAILURE) { RETURN_FALSE; } + add_assoc_string(return_value, "input_encoding", +ICONVG(input_encoding), 1); add_assoc_string(return_value, "output_encoding", ICONVG(output_encoding), 1); add_assoc_string(return_value, "internal_encoding", ICONVG(internal_encoding), 1); + } else if (!strcasecmp("input_encoding",Z_STRVAL_PP(type))) { + RETVAL_STRING(ICONVG(input_encoding), 1); } else if (!strcasecmp("output_encoding",Z_STRVAL_PP(type))) { RETVAL_STRING(ICONVG(output_encoding), 1); } else if (!strcasecmp("internal_encoding",Z_STRVAL_PP(type))) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP-CVS] cvs: php4 /ext/iconv iconv.c iconv.dsp
dbeuWed Jan 31 08:57:00 2001 EDT Added files: /php4/ext/iconv iconv.dsp Modified files: /php4/ext/iconv iconv.c Log: make iconv compile under win32 using libiconv # http://clisp.cons.org/~haible/packages-libiconv.html Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.4 php4/ext/iconv/iconv.c:1.5 --- php4/ext/iconv/iconv.c:1.4 Sat Jan 13 23:40:16 2001 +++ php4/ext/iconv/iconv.c Wed Jan 31 08:57:00 2001 @@ -18,16 +18,27 @@ */ #include "php.h" -#include "php_config.h" #if HAVE_ICONV #include "php_ini.h" #include "php_iconv.h" +#include "ext/standard/info.h" ZEND_DECLARE_MODULE_GLOBALS(iconv) +#if HAVE_LIBICONV +#define icv_open(a,b) libiconv_open(a,b) +#define icv_close(a) libiconv_close(a) +#define icv(a,b,c,d,e) libiconv(a,b,c,d,e) +#else +#define icv_open(a,b) iconv_open(a,b) +#define icv_close(a) iconv_close(a) +#define icv(a,b,c,d,e) iconv(a,b,c,d,e) +#endif + + /* True global resources - no need for thread safety here */ static int le_iconv; @@ -68,6 +79,7 @@ PHP_MINIT_FUNCTION(iconv) { + ZEND_INIT_MODULE_GLOBALS(iconv, NULL, NULL); REGISTER_INI_ENTRIES(); return SUCCESS; } @@ -101,7 +113,7 @@ *out = out_buffer; out_p = out_buffer; -cd = iconv_open(out_charset, in_charset); +cd = icv_open(out_charset, in_charset); if (cd == (iconv_t)(-1)) { php_error(E_WARNING, "iconv: cannot convert from `%s' to `%s'", @@ -110,7 +122,7 @@ return -1; } - result = iconv(cd, (const char **) &in_p, &in_size, (char **) + result = icv(cd, (const char **) &in_p, &in_size, (char **) &out_p, &out_size); if (result == (size_t)(-1)) { @@ -118,10 +130,11 @@ return -1; } -iconv_close(cd); +icv_close(cd); return SUCCESS; } + /* {{{ proto string iconv(string in_charset, string out_charset, string str) Returns str converted to the out_charset character set */ Index: php4/ext/iconv/iconv.dsp +++ php4/ext/iconv/iconv.dsp # Microsoft Developer Studio Project File - Name="iconv" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 CFG=iconv - Win32 Debug_TS !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "iconv.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "iconv.mak" CFG="iconv - Win32 Debug_TS" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "iconv - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE "iconv - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "iconv - Win32 Release_TS" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release_TS" # PROP BASE Intermediate_Dir "Release_TS" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release_TS" # PROP Intermediate_Dir "Release_TS" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ICONV_EXPORTS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\main" /I "..\..\win32" /D "WIN32" /D "PHP_EXPORTS" /D "COMPILE_DL_ICONV" /D "HAVE_ICONV" /D ZEND_DEBUG=0 /D "NDEBUG" /D "_WINDOWS" /D "ZEND_WIN32" /D "PHP_WIN32" /D ZTS=1 /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x407 /d "NDEBUG" # ADD RSC /l 0x407 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD LINK32 php4ts.lib iconv.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Release_TS/php_iconv.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline" !ELSEIF "$(CFG)" == "iconv - Win32 Debug_TS" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug_TS" # PROP BASE Intermediate_Dir "Debug_TS" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug_TS" # PROP Intermediate_Dir "Debug_TS" # PROP Ignore_Ex
[PHP-CVS] cvs: php4 /ext/iconv iconv.c php_iconv.h
hirokawaSat Jan 13 23:40:16 2001 EDT Modified files: /php4/ext/iconv iconv.c php_iconv.h Log: added iconv_get_encoding and supported initialization from php.ini Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.3 php4/ext/iconv/iconv.c:1.4 --- php4/ext/iconv/iconv.c:1.3 Tue Jan 9 07:53:09 2001 +++ php4/ext/iconv/iconv.c Sat Jan 13 23:40:16 2001 @@ -18,6 +18,7 @@ */ #include "php.h" +#include "php_config.h" #if HAVE_ICONV @@ -35,6 +36,7 @@ function_entry iconv_functions[] = { PHP_FE(iconv, NULL) PHP_FE(ob_iconv_handler, NULL) +PHP_FE(iconv_get_encoding, NULL) PHP_FE(iconv_set_encoding, NULL) {NULL, NULL, NULL} }; @@ -57,48 +59,22 @@ int php_iconv_string(char *, char **, char *, char *); -static PHP_INI_MH(OnUpdateIconvOutputEncoding) -{ - ICONVLS_FETCH(); - - if (ICONVG(iconv_output_encoding)) { - free(ICONVG(iconv_output_encoding)); - } - ICONVG(iconv_output_encoding) = zend_strndup(new_value, new_value_length); - return SUCCESS; -} - -static PHP_INI_MH(OnUpdateIconvInternalEncoding) -{ - ICONVLS_FETCH(); - - if (ICONVG(iconv_internal_encoding)) { - free(ICONVG(iconv_internal_encoding)); - } - ICONVG(iconv_internal_encoding) = zend_strndup(new_value, new_value_length); - return SUCCESS; -} - - PHP_INI_BEGIN() - PHP_INI_ENTRY_EX("iconv.output_encoding", ICONV_OUTPUT_ENCODING, PHP_INI_SYSTEM, OnUpdateIconvOutputEncoding,NULL) - PHP_INI_ENTRY_EX("iconv.internal_encoding", ICONV_INTERNAL_ENCODING,PHP_INI_SYSTEM, OnUpdateIconvInternalEncoding, NULL) +STD_PHP_INI_ENTRY("iconv.input_encoding", ICONV_INPUT_ENCODING, + PHP_INI_ALL,OnUpdateString, input_encoding, +zend_iconv_globals, iconv_globals) +STD_PHP_INI_ENTRY("iconv.output_encoding", ICONV_OUTPUT_ENCODING, + PHP_INI_ALL,OnUpdateString, output_encoding, +zend_iconv_globals, iconv_globals) +STD_PHP_INI_ENTRY("iconv.internal_encoding", +ICONV_INTERNAL_ENCODING,PHP_INI_ALL,OnUpdateString, +internal_encoding, zend_iconv_globals, iconv_globals) PHP_INI_END() PHP_MINIT_FUNCTION(iconv) { -/* Remove comments if you have entries in php.ini REGISTER_INI_ENTRIES(); -*/ return SUCCESS; } PHP_MSHUTDOWN_FUNCTION(iconv) { -/* Remove comments if you have entries in php.ini UNREGISTER_INI_ENTRIES(); -*/ return SUCCESS; } @@ -172,6 +148,7 @@ RETURN_FALSE; } } +/* }}} */ /* {{{ proto string ob_iconv_handler(string contents) Returns str in output buffer converted to the iconv.output_encoding character set */ @@ -187,8 +164,8 @@ } if (php_iconv_string(Z_STRVAL_PP(zv_string), &out_buffer, -ICONVG(iconv_internal_encoding), - ICONVG(iconv_output_encoding))==SUCCESS) { +ICONVG(internal_encoding), +ICONVG(output_encoding))==SUCCESS) { RETVAL_STRING(out_buffer, 0); } else { zval_dtor(return_value); @@ -197,6 +174,7 @@ } } +/* }}} */ /* {{{ proto bool iconv_set_encoding(string int_charset, string out_charset) Sets internal encoding and output encoding for ob_iconv_handler() */ @@ -212,20 +190,54 @@ convert_to_string_ex(int_charset); convert_to_string_ex(out_charset); - if (ICONVG(iconv_internal_encoding)) { - free(ICONVG(iconv_internal_encoding)); + if (ICONVG(internal_encoding)) { + free(ICONVG(internal_encoding)); } - ICONVG(iconv_internal_encoding) = estrndup(Z_STRVAL_PP(int_charset), Z_STRLEN_PP(int_charset)); + ICONVG(internal_encoding) = estrndup(Z_STRVAL_PP(int_charset), +Z_STRLEN_PP(int_charset)); - if (ICONVG(iconv_output_encoding)) { - free(ICONVG(iconv_output_encoding)); + if (ICONVG(output_encoding)) { + free(ICONVG(output_encoding)); } - ICONVG(iconv_output_encoding) = estrndup(Z_STRVAL_PP(out_charset),Z_STRLEN_PP(out_charset)); + ICONVG(output_encoding) = +estrndup(Z_STRVAL_PP(out_charset),Z_STRLEN_PP(out_charset)); RETURN_TRUE; } +/* }}} */ + +/* {{{ proto array iconv_get_encoding([string type]) + Get internal encoding and output encoding for ob_iconv_handler() */ +PHP_FUNCTION(ic