fmk             Wed Dec 21 22:43:06 2005 EDT

  Modified files:              (Branch: PHP_5_1)
    /php-src    NEWS php.ini-dist php.ini-recommended 
    /php-src/ext/mssql  php_mssql.c php_mssql.h 
  Log:
  Fix #35730 Use correct character encoding with FreeTDS
  
http://cvs.php.net/viewcvs.cgi/php-src/NEWS?r1=1.2027.2.312&r2=1.2027.2.313&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.312 php-src/NEWS:1.2027.2.313
--- php-src/NEWS:1.2027.2.312   Wed Dec 21 21:44:13 2005
+++ php-src/NEWS        Wed Dec 21 22:43:04 2005
@@ -34,6 +34,7 @@
   connecting to 5.x server. (Andrey)
 - Fixed bug #35760 (sybase_ct doesn't compile on Solaris using old gcc). (Tony)
 - Fixed bug #35740 (memory leak when including a directory). (Tony)
+- Fixed bug #35730 (Use correct character encoding, and allow setting it) 
(Frank)
 - Fixed bug #35723 (xmlrpc_introspection.c fails compile per C99 std). (Jani)
 - Fixed bug #35720 (A final constructor can be overwritten). (Marcus)
 - Fixed bug #35713 (getopt() returns array with numeric strings when passed 
http://cvs.php.net/viewcvs.cgi/php-src/php.ini-dist?r1=1.231.2.4&r2=1.231.2.5&diff_format=u
Index: php-src/php.ini-dist
diff -u php-src/php.ini-dist:1.231.2.4 php-src/php.ini-dist:1.231.2.5
--- php-src/php.ini-dist:1.231.2.4      Mon Nov 14 23:14:23 2005
+++ php-src/php.ini-dist        Wed Dec 21 22:43:04 2005
@@ -1035,6 +1035,11 @@
 ; FreeTDS defaults to 4096
 ;mssql.max_procs = -1
 
+; Specify client character set. 
+; If empty or not set the client charset from freetds.comf is used
+; This is only used when compiled with FreeTDS
+;mssql.charset = "ISO-8859-1"
+
 [Assertion]
 ; Assert(expr); active by default.
 ;assert.active = On
http://cvs.php.net/viewcvs.cgi/php-src/php.ini-recommended?r1=1.179.2.5&r2=1.179.2.6&diff_format=u
Index: php-src/php.ini-recommended
diff -u php-src/php.ini-recommended:1.179.2.5 
php-src/php.ini-recommended:1.179.2.6
--- php-src/php.ini-recommended:1.179.2.5       Mon Nov 14 23:14:23 2005
+++ php-src/php.ini-recommended Wed Dec 21 22:43:04 2005
@@ -1093,6 +1093,11 @@
 ; FreeTDS defaults to 4096
 ;mssql.max_procs = -1
 
+; Specify client character set. 
+; If empty or not set the client charset from freetds.comf is used
+; This is only used when compiled with FreeTDS
+;mssql.charset = "ISO-8859-1"
+
 [Assertion]
 ; Assert(expr); active by default.
 ;assert.active = On
http://cvs.php.net/viewcvs.cgi/php-src/ext/mssql/php_mssql.c?r1=1.152.2.10&r2=1.152.2.11&diff_format=u
Index: php-src/ext/mssql/php_mssql.c
diff -u php-src/ext/mssql/php_mssql.c:1.152.2.10 
php-src/ext/mssql/php_mssql.c:1.152.2.11
--- php-src/ext/mssql/php_mssql.c:1.152.2.10    Tue Dec  6 18:47:14 2005
+++ php-src/ext/mssql/php_mssql.c       Wed Dec 21 22:43:06 2005
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_mssql.c,v 1.152.2.10 2005/12/06 18:47:14 iliaa Exp $ */
+/* $Id: php_mssql.c,v 1.152.2.11 2005/12/21 22:43:06 fmk Exp $ */
 
 #ifdef COMPILE_DL_MSSQL
 #define HAVE_MSSQL 1
@@ -141,6 +141,9 @@
        STD_PHP_INI_BOOLEAN("mssql.datetimeconvert",            "1",    
PHP_INI_ALL,    OnUpdateBool,   datetimeconvert,                        
zend_mssql_globals,             mssql_globals)
        STD_PHP_INI_BOOLEAN("mssql.secure_connection",          "0",    
PHP_INI_SYSTEM, OnUpdateBool,   secure_connection,                      
zend_mssql_globals,             mssql_globals)
        STD_PHP_INI_ENTRY_EX("mssql.max_procs",                         "-1",   
PHP_INI_ALL,    OnUpdateLong,   max_procs,                                      
zend_mssql_globals,             mssql_globals,  display_link_numbers)
+#ifdef HAVE_FREETDS
+       STD_PHP_INI_ENTRY("mssql.charset",                                      
"",             PHP_INI_ALL,    OnUpdateString, charset,                        
                zend_mssql_globals,             mssql_globals)
+#endif
 PHP_INI_END()
 
 /* error handler */
@@ -495,7 +498,9 @@
 #endif
 
 #ifdef HAVE_FREETDS
-               DBSETLCHARSET(mssql.login, "ISO-8859-1");
+               if (MS_SQL_G(charset) && strlen(MS_SQL_G(charset))) {
+                       DBSETLCHARSET(mssql.login, MS_SQL_G(charset));
+               }
 #endif
 
        DBSETLAPP(mssql.login,MS_SQL_G(appname));
@@ -1009,7 +1014,7 @@
 
        /* Now to fetch RETVAL and OUTPUT values*/
        num_rets = dbnumrets(mssql_ptr->link);
-       
+
        if (num_rets!=0) {
                for (i = 1; i <= num_rets; i++) {
                        parameter = (char*)dbretname(mssql_ptr->link, i);
http://cvs.php.net/viewcvs.cgi/php-src/ext/mssql/php_mssql.h?r1=1.42.2.1&r2=1.42.2.2&diff_format=u
Index: php-src/ext/mssql/php_mssql.h
diff -u php-src/ext/mssql/php_mssql.h:1.42.2.1 
php-src/ext/mssql/php_mssql.h:1.42.2.2
--- php-src/ext/mssql/php_mssql.h:1.42.2.1      Tue Dec  6 01:25:16 2005
+++ php-src/ext/mssql/php_mssql.h       Wed Dec 21 22:43:06 2005
@@ -17,7 +17,7 @@
  */
 
 
-/* $Id: php_mssql.h,v 1.42.2.1 2005/12/06 01:25:16 sniper Exp $ */
+/* $Id: php_mssql.h,v 1.42.2.2 2005/12/21 22:43:06 fmk Exp $ */
 
 #ifndef PHP_MSSQL_H
 #define PHP_MSSQL_H
@@ -158,6 +158,9 @@
        zend_bool allow_persistent;
        char *appname;
        char *server_message;
+#ifdef HAVE_FREETDS
+       char *charset;
+#endif
        long min_error_severity, min_message_severity;
        long cfg_min_error_severity, cfg_min_message_severity;
        long connect_timeout, timeout;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to