[PHP-CVS] cvs: php4 /ext/iconv iconv.c

2001-04-18 Thread Andi Gutmans

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

2001-03-29 Thread Wez Furlong

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

2001-03-15 Thread Daniel Beulshausen

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

2001-03-09 Thread Rui Hirokawa

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

2001-02-26 Thread Rui Hirokawa

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

2001-01-31 Thread Daniel Beulshausen

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

2001-01-13 Thread Rui Hirokawa

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