jani            Sun Aug  3 11:32:45 2008 UTC

  Modified files:              
    /php-src/ext/intl/locale    locale.c locale.h locale_class.c 
                                locale_class.h locale_methods.c 
                                locale_methods.h 
  Log:
  - These files do not conform to any kind of coding standard. Sync from 5.3 too
  
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/locale/locale.c?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/intl/locale/locale.c
diff -u php-src/ext/intl/locale/locale.c:1.2 
php-src/ext/intl/locale/locale.c:1.3
--- php-src/ext/intl/locale/locale.c:1.2        Mon Jul  7 23:42:29 2008
+++ php-src/ext/intl/locale/locale.c    Sun Aug  3 11:32:45 2008
@@ -10,9 +10,11 @@
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Author: Kirti Velankar <[EMAIL PROTECTED]>                          |
+   | Author: Kirti Velankar <[EMAIL PROTECTED]>                        |
    +----------------------------------------------------------------------+
- */
+*/
+
+/* $Id: locale.c,v 1.3 2008/08/03 11:32:45 jani Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -54,7 +56,7 @@
        LOCALE_EXPOSE_CUSTOM_CLASS_CONST_STR( 
"GRANDFATHERED_LANG_TAG",LOC_GRANDFATHERED_LANG_TAG);
        LOCALE_EXPOSE_CUSTOM_CLASS_CONST_STR( "PRIVATE_TAG",LOC_PRIVATE_TAG);
 
-       #undef LOCALE_EXPOSE_CUSTOM_CLASS_CONS_STR
+       #undef LOCALE_EXPOSE_CUSTOM_CLASS_CONST_STR
        #undef LOCALE_EXPOSE_CLASS_CONST
        #undef LOCALE_EXPOSE_CONST
 }
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/locale/locale.h?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/intl/locale/locale.h
diff -u php-src/ext/intl/locale/locale.h:1.2 
php-src/ext/intl/locale/locale.h:1.3
--- php-src/ext/intl/locale/locale.h:1.2        Mon Jul  7 23:42:29 2008
+++ php-src/ext/intl/locale/locale.h    Sun Aug  3 11:32:45 2008
@@ -10,9 +10,11 @@
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                         |
+   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                       |
    +----------------------------------------------------------------------+
- */
+*/
+
+/* $Id: locale.h,v 1.3 2008/08/03 11:32:45 jani Exp $ */
 
 #ifndef LOCALE_LOCALE_H
 #define LOCALE_LOCALE_H
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/locale/locale_class.c?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/intl/locale/locale_class.c
diff -u php-src/ext/intl/locale/locale_class.c:1.3 
php-src/ext/intl/locale/locale_class.c:1.4
--- php-src/ext/intl/locale/locale_class.c:1.3  Wed Jul 23 18:45:10 2008
+++ php-src/ext/intl/locale/locale_class.c      Sun Aug  3 11:32:45 2008
@@ -10,14 +10,14 @@
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                         |
+   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                       |
    +----------------------------------------------------------------------+
- */
+*/
 
-#include <unicode/uloc.h>
+/* $Id $ */
 
+#include <unicode/uloc.h>
 #include "php_intl.h"
-
 #include "intl_error.h"
 #include "locale_class.h"
 #include "locale_methods.h"
@@ -25,15 +25,15 @@
 
 zend_class_entry *Locale_ce_ptr = NULL;
 
-
-/////////////////////////////////////////////////////////////////////////////
-// 'Locale' class registration structures & functions
-/////////////////////////////////////////////////////////////////////////////
+/*
+ * 'Locale' class registration structures & functions
+ */
 
 /* {{{ Locale methods arguments info */
-// NOTE: modifying 'locale_XX_args' do not forget to
-//       modify approptiate 'locale_XX_args' for
-//       the procedural API.
+/*
+ *  NOTE: when modifying 'locale_XX_args' do not forget to modify
+ *        approptiate 'locale_XX_args' for the procedural API!
+ */
 
 static
 ZEND_BEGIN_ARG_INFO_EX( locale_0_args, 0, 0, 0 )
@@ -101,12 +101,12 @@
 {
        zend_class_entry ce;
 
-       // Create and register 'Locale' class.
+       /* Create and register 'Locale' class. */
        INIT_CLASS_ENTRY( ce, "Locale", Locale_class_functions );
        ce.create_object = NULL;
        Locale_ce_ptr = zend_register_internal_class( &ce TSRMLS_CC );
 
-       // Declare 'Locale' class properties.
+       /* Declare 'Locale' class properties. */
        if( !Locale_ce_ptr )
        {
                zend_error( E_ERROR,
@@ -116,7 +116,6 @@
 }
 /* }}} */
 
-
 /*
  * Local variables:
  * tab-width: 4
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/locale/locale_class.h?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/intl/locale/locale_class.h
diff -u php-src/ext/intl/locale/locale_class.h:1.2 
php-src/ext/intl/locale/locale_class.h:1.3
--- php-src/ext/intl/locale/locale_class.h:1.2  Mon Jul  7 23:42:29 2008
+++ php-src/ext/intl/locale/locale_class.h      Sun Aug  3 11:32:45 2008
@@ -10,9 +10,11 @@
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                         |
+   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                       |
    +----------------------------------------------------------------------+
- */
+*/
+
+/* $Id: locale_class.h,v 1.3 2008/08/03 11:32:45 jani Exp $ */
 
 #ifndef LOCALE_CLASS_H
 #define LOCALE_CLASS_H
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/locale/locale_methods.c?r1=1.8&r2=1.9&diff_format=u
Index: php-src/ext/intl/locale/locale_methods.c
diff -u php-src/ext/intl/locale/locale_methods.c:1.8 
php-src/ext/intl/locale/locale_methods.c:1.9
--- php-src/ext/intl/locale/locale_methods.c:1.8        Wed Jul 30 19:33:04 2008
+++ php-src/ext/intl/locale/locale_methods.c    Sun Aug  3 11:32:45 2008
@@ -10,9 +10,11 @@
    | obtain it through the world-wide-web, please send a note to          |
    | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                         |
+   | Authors: Kirti Velankar <[EMAIL PROTECTED]>                       |
    +----------------------------------------------------------------------+
- */
+*/
+
+/* $Id: locale_methods.c,v 1.9 2008/08/03 11:32:45 jani Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -38,7 +40,7 @@
 
 ZEND_EXTERN_MODULE_GLOBALS( intl )
 
-//Sizes required for the strings "variant15" , "extlang11", "private12" etc.
+/* Sizes required for the strings "variant15" , "extlang11", "private12" etc. 
*/
 #define SEPARATOR "_"
 #define SEPARATOR1 "-"
 #define DELIMITER "-_"
@@ -51,12 +53,13 @@
 #define MAX_NO_PRIVATE  15
 #define MAX_NO_LOOKUP_LANG_TAG  100
 
-//Sizes required for the strings "variant15" , "extlang3", "private12" etc.
+#define LOC_NOT_FOUND 1
+
+/* Sizes required for the strings "variant15" , "extlang3", "private12" etc. */
 #define VARIANT_KEYNAME_LEN  11
 #define EXTLANG_KEYNAME_LEN  10
 #define PRIVATE_KEYNAME_LEN  11
 
-#define LOC_NOT_FOUND 1
 /* Based on IANA registry at the time of writing this code
 *
 */
@@ -98,17 +101,14 @@
 #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
 
 /* Dot terminates it because of POSIX form  where dot precedes the codepage
- * except for variant
- */
+ * except for variant */
 #define isTerminator(a)  ((a==0)||(a=='.')||(a=='@'))
 
-
-/*{{{  return the offset of 'key' in the array 'list'.  
- * returns -1 if not present
- */
+/* {{{ return the offset of 'key' in the array 'list'.
+ * returns -1 if not present */
 static int16_t findOffset(const char* const* list, const char* key)
 {
-    const char* const* anchor = list;
+       const char* const* anchor = list;
        while (*list != NULL) {
                if (strcmp(key, *list) == 0) {
                        return (int16_t)(list - anchor);
@@ -116,7 +116,7 @@
                list++;
        }
 
-    return -1;
+       return -1;
 
 }
 /*}}}*/
@@ -128,10 +128,10 @@
 
        grOffset = findOffset( LOC_GRANDFATHERED ,gf_tag);
        if( grOffset < LOC_PREFERRED_GRANDFATHERED_LEN ){
-               //return preferred tag
+               /* return preferred tag */
                result = estrdup( LOC_PREFERRED_GRANDFATHERED[grOffset] );
        } else {
-               //Return correct grandfathered language tag
+               /* Return correct grandfathered language tag */
                result = estrdup( LOC_GRANDFATHERED[grOffset] );
        }
        return result;
@@ -149,9 +149,9 @@
        
        for( i=savedPos; i>=0 ;i--){
                if( isIDSeparator(*(str+i)) ){
-                       //delimiter found; check for singleton 
+                       /* delimiter found; check for singleton */
                        if( isIDSeparator(*(str+i-2)) ){
-                               //a singleton; so send the position of token 
before the singleton
+                               /* a singleton; so send the position of token 
before the singleton */
                                result = i-3;
                        } else {
                                result = i-1;
@@ -160,7 +160,7 @@
                }
        }
        if(result < 1){
-               //Just in case inavlid locale e.g. '-x-xyz' or '-sl_Latn'
+               /* Just in case inavlid locale e.g. '-x-xyz' or '-sl_Latn' */
                result =-1;
        }
        return result;
@@ -182,53 +182,50 @@
                for( i=0; i<len ; i++){
                        if( isIDSeparator(*(str+i)) ){
                                if( i==1){
-                                       // string is of the form x-avy or a-prv1
+                                       /* string is of the form x-avy or 
a-prv1 */
                                        result =0;
                                        break;
                                } else {
-                                       //delimiter found; check for singleton 
+                                       /* delimiter found; check for singleton 
*/
                                        if( isIDSeparator(*(str+i+2)) ){
-                                               //a singleton; so send the 
position of separator before singleton
+                                               /* a singleton; so send the 
position of separator before singleton */
                                                result = i+1;
                                                break;
                                        }
                                }
                        }
-               }//end of for
+               }/* end of for */
                
        }
        return result;
 }
 /* }}} */
 
-/* {{{ proto static string Locale::getDefault( )
- * Gets the default locale 
- }}} */
+/* {{{ proto static string Locale::getDefault(  )
+   Get default locale */
+/* }}} */
 /* {{{ proto static string locale_get_default( )
- * Gets the default locale 
- */
+   Get default locale */
 PHP_NAMED_FUNCTION(zif_locale_get_default)
 {
-       if( UG(default_locale) == NULL ) {
-               UG(default_locale) = pestrdup( uloc_getDefault(), 1);
+       if( INTL_G(default_locale) == NULL ) {
+               INTL_G(default_locale) = pestrdup( uloc_getDefault(), 1);
        }
-       RETURN_STRING( UG(default_locale), TRUE );
+       RETURN_STRING( INTL_G(default_locale), TRUE );
 }
 
 /* }}} */
 
 /* {{{ proto static string Locale::setDefault( string $locale )
-* sets the default locale
-* }}} */
+   Set default locale */
+/* }}} */
 /* {{{ proto static string locale_set_default( string $locale )
-* sets the default locale
-*/
+   Set default locale */
 PHP_NAMED_FUNCTION(zif_locale_set_default)
 {
        char* locale_name = NULL;
        int   len=0;    
 
-       // Parse parameters.
        if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC,  "s",
                &locale_name ,&len ) == FAILURE)
        {
@@ -239,7 +236,7 @@
        }
 
        if(len == 0) {
-               locale_name =  uloc_getDefault() ;
+               locale_name =  (char *)uloc_getDefault() ;
                len = strlen(locale_name);
        }
 
@@ -268,20 +265,20 @@
 
 
        if( tag_name != LOC_CANONICALIZE_TAG ){
-               //Handle  grandfathered languages
+               /* Handle  grandfathered languages */
                grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
                if( grOffset >= 0 ){
                        if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
                                tag_value = estrdup(loc_name);
                                return tag_value;
                        } else {
-                               //Since Grandfathered , no value , do nothing , 
retutn NULL
+                               /* Since Grandfathered , no value , do nothing 
, retutn NULL */
                                return NULL;
                        }
                }
 
        if( fromParseLocale==1 ){
-               //Handle singletons 
+               /* Handle singletons */
                if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
                        if( strlen(loc_name)>1 && (isIDPrefix(loc_name) ==1 ) ){
                                return loc_name;
@@ -290,47 +287,50 @@
 
                singletonPos = getSingletonPos( loc_name );     
                if( singletonPos == 0){
-                       //singleton at start of script, region , variant etc.
-                       //or invalid singleton at start of language
+                       /* singleton at start of script, region , variant etc.
+                        * or invalid singleton at start of language */
                        return NULL;
-               }else if( singletonPos > 0 ){
-                       //singleton at some position except at start
-                       //strip off the singleton and rest of the loc_name
+               } else if( singletonPos > 0 ){
+                       /* singleton at some position except at start
+                        * strip off the singleton and rest of the loc_name */
                        mod_loc_name = estrndup ( loc_name , singletonPos-1);
                }
-       }//end of if fromParse
+       } /* end of if fromParse */
 
-       }//end of if != LOC_CANONICAL_TAG
+       } /* end of if != LOC_CANONICAL_TAG */
 
        if( mod_loc_name == NULL){
                mod_loc_name = estrdup(loc_name );      
        }
 
-//Proceed to ICU
-    do {
+       /* Proceed to ICU */
+    do{
                tag_value = erealloc( tag_value , buflen  );
                tag_value_len = buflen;
 
                if( strcmp(tag_name , LOC_SCRIPT_TAG)==0 ){
                        buflen = uloc_getScript ( mod_loc_name ,tag_value , 
tag_value_len , &status);
-               } else if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
+               }
+               if( strcmp(tag_name , LOC_LANG_TAG )==0 ){
                        buflen = uloc_getLanguage ( mod_loc_name ,tag_value , 
tag_value_len , &status);
-               } else if( strcmp(tag_name , LOC_REGION_TAG)==0 ){
+               }
+               if( strcmp(tag_name , LOC_REGION_TAG)==0 ){
                        buflen = uloc_getCountry ( mod_loc_name ,tag_value , 
tag_value_len , &status);
-               } else if( strcmp(tag_name , LOC_VARIANT_TAG)==0 ){
+               }
+               if( strcmp(tag_name , LOC_VARIANT_TAG)==0 ){
                        buflen = uloc_getVariant ( mod_loc_name ,tag_value , 
tag_value_len , &status);
-               } else if( strcmp(tag_name , LOC_CANONICALIZE_TAG)==0 ){
+               }
+               if( strcmp(tag_name , LOC_CANONICALIZE_TAG)==0 ){
                        buflen = uloc_canonicalize ( mod_loc_name ,tag_value , 
tag_value_len , &status);
                }
 
                if( U_FAILURE( status ) ) {
-                       if( status == U_BUFFER_OVERFLOW_ERROR )
-                       {
+                       if( status == U_BUFFER_OVERFLOW_ERROR ) {
                                status = U_ZERO_ERROR;
                                continue;
                        }
 
-                       //Error in retriving data
+                       /* Error in retriving data */
                        *result = 0;
                        if( tag_value ){
                                efree( tag_value );
@@ -340,10 +340,10 @@
                        }
                        return NULL;
                }
-    } while( buflen > tag_value_len );
+       } while( buflen > tag_value_len );
 
        if(  buflen ==0 ){
-               //No value found
+               /* No value found */
                *result = -1;
                if( tag_value ){
                        efree( tag_value );
@@ -383,7 +383,6 @@
 
        intl_error_reset( NULL TSRMLS_CC );
 
-       // Parse parameters.
        if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s",
        &loc_name ,&loc_name_len ) == FAILURE) {
                spprintf(&msg , 0, "locale_get_%s : unable to parse input 
params", tag_name );
@@ -394,13 +393,13 @@
     }
 
        if(loc_name_len == 0) {
-               loc_name = UG(default_locale);
+               loc_name = INTL_G(default_locale);
        }
 
-       //Call ICU get
+       /* Call ICU get */
        tag_value = get_icu_value_internal( loc_name , tag_name , &result ,0);
 
-       //No value found
+       /* No value found */
        if( result == -1 ) {
                if( tag_value){
                        efree( tag_value);
@@ -408,12 +407,12 @@
                RETURN_STRING( empty_result , TRUE);
        }
 
-       //value found
+       /* value found */
        if( tag_value){
                RETURN_STRING( tag_value , FALSE);
        }
 
-       //Error encountered while fetching the value 
+       /* Error encountered while fetching the value */
        if( result ==0) {
                spprintf(&msg , 0, "locale_get_%s : unable to get locale %s", 
tag_name , tag_name );
                intl_error_set( NULL, status, msg , 1 TSRMLS_CC );
@@ -480,12 +479,14 @@
        int32_t     buflen              = 512;
        UErrorCode  status              = U_ZERO_ERROR;
 
+       char*       utf8value           = NULL;
+       int         utf8value_len       = 0;
+
        char*       msg                 = NULL;
        int         grOffset            = 0;
 
        intl_error_reset( NULL TSRMLS_CC );
 
-       // Parse parameters.
        if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s|s",
                &loc_name, &loc_name_len , 
                &disp_loc_name ,&disp_loc_name_len ) == FAILURE)
@@ -497,17 +498,17 @@
        }
 
        if(loc_name_len == 0) {
-       loc_name = UG(default_locale);
+       loc_name = INTL_G(default_locale);
        }
 
        if( tag_name != DISP_NAME ){
-               //Handle  grandfathered languages
-               grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
+               /* Handle grandfathered languages */
+               grOffset = findOffset( LOC_GRANDFATHERED , loc_name );
                if( grOffset >= 0 ){
                        if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
                                mod_loc_name = getPreferredTag( loc_name );
                        } else {
-                               //Since Grandfathered , no value , do nothing , 
retutn NULL
+                               /* Since Grandfathered, no value, do nothing, 
retutn NULL */
                                RETURN_FALSE;
                        }
                }
@@ -515,7 +516,7 @@
 /*
                int         singletonPos        = 0;
                //Handle singletons 
-               if( (strcmp(tag_name , LOC_LANG_TAG)==0) && 
isIDPrefix(loc_name) ){
+               if( (strcmp(tag_name , LOC_LANG_TAG)==0)  && 
isIDPrefix(loc_name) ){
                                //return mod_loc_name;
                } else {
                        singletonPos = getSingletonPos( loc_name );     
@@ -530,20 +531,20 @@
                        }
                }
 */
-       }//end of if != LOC_CANONICAL_TAG
+       } /* end of if != LOC_CANONICAL_TAG */
 
        if( mod_loc_name==NULL ){
                mod_loc_name = estrdup( loc_name );
        }
 
-    //Get the disp_value for the given locale
+    /* Get the disp_value for the given locale */
     do{
         disp_name = erealloc( disp_name , buflen  );
         disp_name_len = buflen;
 
-        //Check if disp_loc_name passed , if not use default locale
+        /* Check if disp_loc_name passed , if not use default locale */
         if( !disp_loc_name){
-            disp_loc_name = estrdup(UG(default_locale));
+            disp_loc_name = estrdup(INTL_G(default_locale));
         }
 
                if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
@@ -582,8 +583,19 @@
        if( mod_loc_name){
                efree( mod_loc_name );
        }
+       /* Convert display locale name from UTF-16 to UTF-8. */
+       intl_convert_utf16_to_utf8( &utf8value, &utf8value_len, disp_name, 
buflen, &status );
+       efree( disp_name );
+       if( U_FAILURE( status ) )
+       {
+               spprintf(&msg, 0, "locale_get_display_%s :error converting 
display name for %s to UTF-8", tag_name , tag_name );
+               intl_error_set( NULL, status, msg , 1 TSRMLS_CC );
+               efree(msg);
+               RETURN_FALSE;
+       }
+
+       RETVAL_STRINGL( utf8value, utf8value_len , FALSE);
 
-       RETURN_UNICODEL(disp_name, buflen, 0);
 }
 /* }}} */
 
@@ -635,10 +647,12 @@
 }
 /* }}} */
 
-/* {{{ proto static string Locale::getDisplayVariant($locale, $in_locale = 
null)
+/* {{{
+* proto static string Locale::getDisplayVariant($locale, $in_locale = null)
 * gets the variant for the $locale in $in_locale or default_locale
  }}} */
-/* {{{ proto static string get_display_variant($locale, $in_locale = null)
+/* {{{
+* proto static string get_display_variant($locale, $in_locale = null)
 * gets the variant for the $locale in $in_locale or default_locale
 */
 PHP_FUNCTION(locale_get_display_variant) 
@@ -647,15 +661,14 @@
 }
 /* }}} */
 
- /* {{{ proto static string[] getKeywords(string $locale) 
+ /* {{{ proto static array getKeywords(string $locale) {
  * return an associative array containing keyword-value
  * pairs for this locale. The keys are keys to the array (doh!)
  * }}}*/
- /* {{{ proto static string[] locale_get_keywords(string $locale)
+ /* {{{ proto static array locale_get_keywords(string $locale) {
  * return an associative array containing keyword-value
  * pairs for this locale. The keys are keys to the array (doh!)
  */ 
-
 PHP_FUNCTION( locale_get_keywords )
 {
     UEnumeration*   e        = NULL;
@@ -678,7 +691,6 @@
 
     intl_error_reset( NULL TSRMLS_CC );
 
-    // Parse parameters.
     if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s",
         &loc_name, &loc_name_len ) == FAILURE)
     {
@@ -689,20 +701,20 @@
     }
 
     if(loc_name_len == 0) {
-        loc_name = UG(default_locale);
+        loc_name = INTL_G(default_locale);
     }
 
-       //Get the keywords
+       /* Get the keywords */
     e = uloc_openKeywords( loc_name, &status );
     if( e != NULL )
     {
-               // Traverse it, filling the return array.
+               /* Traverse it, filling the return array. */
        array_init( return_value );
 
        while( ( kw_key = uenum_next( e, &kw_key_len, &status ) ) != NULL ){
                        kw_value = ecalloc( 1 , kw_value_len  );
 
-                       //Get the keyword value for each keyword
+                       /* Get the keyword value for each keyword */
                        kw_value_len=uloc_getKeywordValue( loc_name,kw_key, 
kw_value, kw_value_len ,  &status );
                        if (status == U_BUFFER_OVERFLOW_ERROR) {
                                status = U_ZERO_ERROR;
@@ -721,18 +733,18 @@
                        }
 
                        add_assoc_stringl( return_value, (char *)kw_key, 
kw_value , kw_value_len, 0);
-               } //end of while
+               } /* end of while */
 
-       }//end of if e!=NULL
+       } /* end of if e!=NULL */
 
     uenum_close( e );
 }
 /* }}} */
 
- /* {{{ proto static string Locale::canonicalize($locale)
+ /* {{{ proto static string Locale::canonicalize($locale) 
  * @return string the canonicalized locale 
  * }}} */
- /* {{{ proto static string locale_canonicalize(Locale $loc, string $locale)
+ /* {{{ proto static string locale_canonicalize(Locale $loc, string $locale) 
  * @param string $locale       The locale string to canonicalize
  */
 PHP_FUNCTION(locale_canonicalize)
@@ -741,54 +753,27 @@
 }
 /* }}} */
 
-/* {{{ append_convert_to_string
-*/
-static int append_convert_to_string(zval **val, char **strval, int *str_len 
TSRMLS_DC)
-{
-       if(Z_TYPE_PP(val) == IS_UNICODE) {
-               *strval = zend_unicode_to_ascii(Z_USTRVAL_PP(val), 
Z_USTRLEN_PP(val) TSRMLS_CC);
-               *str_len = strlen(*strval);
-               return 1;
-       } else if(Z_TYPE_PP(val) == IS_STRING) {
-               *strval = Z_STRVAL_PP(val);
-               *str_len = Z_STRLEN_PP(val);
-               return 0;
-       }
-       *strval = NULL;
-       return 0;
-}
-/* }}} */
-
 /* {{{ append_key_value 
 * Internal function which is called from locale_compose
 * gets the value for the key_name and appends to the loc_name
 * returns 1 if successful , -1 if not found , 
 * 0 if array element is not a string , -2 if buffer-overflow
 */
-static int append_key_value(smart_str* loc_name, HashTable* hash_arr, char* 
key_name TSRMLS_DC)
+static int append_key_value(smart_str* loc_name, HashTable* hash_arr, char* 
key_name)
 {
        zval**  ele_value       = NULL;
 
-       if(zend_hash_find(hash_arr , key_name , strlen(key_name) + 1 ,(void 
**)&ele_value ) == SUCCESS ||
-               zend_ascii_hash_find( hash_arr , key_name , strlen(key_name) + 
1 , (void **)&ele_value ) == SUCCESS) {
-               int free_val;
-               char *val = NULL;
-               int len = 0;
-
-               free_val = append_convert_to_string(ele_value, &val, &len 
TSRMLS_CC);
-               if(val == NULL) {
-                       //element value is not a string 
+       if(zend_hash_find(hash_arr , key_name , strlen(key_name) + 1 ,(void 
**)&ele_value ) == SUCCESS ) {
+               if(Z_TYPE_PP(ele_value)!= IS_STRING ){
+                       /* element value is not a string */
                        return FAILURE;
                }
                if(strcmp(key_name, LOC_LANG_TAG) != 0 && 
                   strcmp(key_name, LOC_GRANDFATHERED_LANG_TAG)!=0 ) {
-                       // not lang or grandfathered  tag   
+                       /* not lang or grandfathered tag */
                        smart_str_appendl(loc_name, SEPARATOR , 
sizeof(SEPARATOR)-1);
                }
-               smart_str_appendl(loc_name, val, len);
-               if(free_val) {
-                       efree(val);
-               }
+               smart_str_appendl(loc_name, Z_STRVAL_PP(ele_value) , 
Z_STRLEN_PP(ele_value));
                return SUCCESS;
        }
 
@@ -796,7 +781,6 @@
 }
 /* }}} */
 
-
 /* {{{ append_prefix , appends the prefix needed
 * e.g. private adds 'x'
 */
@@ -808,6 +792,7 @@
        }
 }
 /* }}} */
+
 /* {{{ append_multiple_key_values 
 * Internal function which is called from locale_compose
 * gets the multiple values for the key_name and appends to the loc_name
@@ -821,54 +806,39 @@
        int     i               = 0;
        int     isFirstSubtag   = 0;
        int     max_value       = 0;
-       int free_val;
-       char *val = NULL;
-       int len = 0;
 
-       //Variant/ Extlang/Private etc.
-       if( zend_hash_find( hash_arr , key_name , strlen(key_name) + 1 ,(void 
**)&ele_value ) == SUCCESS ||
-                       zend_ascii_hash_find( hash_arr , key_name , 
strlen(key_name) + 1 , (void **)&ele_value ) == SUCCESS) {
-               if(Z_TYPE_PP(ele_value) == IS_ARRAY ) {
+       /* Variant/ Extlang/Private etc. */
+       if( zend_hash_find( hash_arr , key_name , strlen(key_name) + 1 ,(void 
**)&ele_value ) == SUCCESS ) {
+               if( Z_TYPE_PP(ele_value) == IS_STRING ){
+                       add_prefix( loc_name , key_name);
+
+                       smart_str_appendl(loc_name, SEPARATOR , 
sizeof(SEPARATOR)-1);
+                       smart_str_appendl(loc_name, Z_STRVAL_PP(ele_value) , 
Z_STRLEN_PP(ele_value));
+                       return SUCCESS;
+               } else if(Z_TYPE_PP(ele_value) == IS_ARRAY ) {
                        HashPosition pos;
                        HashTable *arr = HASH_OF(*ele_value);
                        zval **data = NULL;
 
                        zend_hash_internal_pointer_reset_ex(arr, &pos);
                        while(zend_hash_get_current_data_ex(arr, (void 
**)&data, &pos) != FAILURE) {
-                               free_val = append_convert_to_string(data, &val, 
&len TSRMLS_CC);
-                               if(val == NULL) {
-                                       //element value is not a string 
+                               if(Z_TYPE_PP(data) != IS_STRING) {
                                        return FAILURE;
                                }
                                if (isFirstSubtag++ == 0){
                                        add_prefix(loc_name , key_name);
                                }
                                smart_str_appendl(loc_name, SEPARATOR , 
sizeof(SEPARATOR)-1);
-                               smart_str_appendl(loc_name, val, len);
+                               smart_str_appendl(loc_name, Z_STRVAL_PP(data) , 
Z_STRLEN_PP(data));
                                zend_hash_move_forward_ex(arr, &pos);
-                               if(free_val) {
-                                       efree(val);
-                               }
                        }
                        return SUCCESS;
                } else {
-                       free_val = append_convert_to_string(ele_value, &val, 
&len TSRMLS_CC);
-                       if(val == NULL) {
-                               //element value is not a string 
-                               return FAILURE;
-                       }
-                       add_prefix( loc_name , key_name);
-
-                       smart_str_appendl(loc_name, SEPARATOR , 
sizeof(SEPARATOR)-1);
-                       smart_str_appendl(loc_name, val, len);
-                       if(free_val) {
-                               efree(val);
-                       }
-                       return SUCCESS;
-               } 
+                       return FAILURE;
+               }
        } else {
                char cur_key_name[31];
-               //Decide the max_value: the max. no. of elements allowed
+               /* Decide the max_value: the max. no. of elements allowed */
                if( strcmp(key_name , LOC_VARIANT_TAG) ==0 ){
                        max_value  = MAX_NO_VARIANT;
                }
@@ -879,29 +849,24 @@
                        max_value  = MAX_NO_PRIVATE;
                }
 
-               //Multiple variant values as variant0, variant1 ,variant2
+               /* Multiple variant values as variant0, variant1 ,variant2 */
                isFirstSubtag = 0;
                for( i=0 ; i< max_value; i++ ){  
                        snprintf( cur_key_name , 30, "%s%d", key_name , i);     
-                       if(zend_hash_find(hash_arr, cur_key_name, 
strlen(cur_key_name)+1, (void **)&ele_value) == SUCCESS ||
-                               zend_ascii_hash_find(hash_arr, cur_key_name, 
strlen(cur_key_name)+1, (void **)&ele_value) == SUCCESS) {
-                               free_val = append_convert_to_string(ele_value, 
&val, &len TSRMLS_CC);
-                               if(val == NULL) {
-                                       //element value is not a string 
+                       if( zend_hash_find( hash_arr , cur_key_name , 
strlen(cur_key_name) + 1,(void **)&ele_value ) == SUCCESS ){
+                               if( Z_TYPE_PP(ele_value)!= IS_STRING ){
+                                       /* variant is not a string */
                                        return FAILURE;
                                }
-                               //Add the contents
+                               /* Add the contents */
                                if (isFirstSubtag++ == 0){
                                        add_prefix(loc_name , cur_key_name);
                                }
                                smart_str_appendl(loc_name, SEPARATOR , 
sizeof(SEPARATOR)-1);
-                               smart_str_appendl(loc_name, val, len);
-                               if(free_val) {
-                                       efree(val);
-                               }
+                               smart_str_appendl(loc_name, 
Z_STRVAL_PP(ele_value) , Z_STRLEN_PP(ele_value));
                        }
-               }//end of for 
-       }//end of else
+               } /* end of for */
+       } /* end of else */
 
        return SUCCESS;
 }
@@ -941,7 +906,7 @@
        int                     result = 0;
 
        intl_error_reset( NULL TSRMLS_CC );
-       // Parse parameters.
+
        if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "a",
                &arr) == FAILURE)
        {
@@ -955,8 +920,8 @@
        if( !hash_arr || zend_hash_num_elements( hash_arr ) == 0 )
                RETURN_FALSE;
 
-       //Check for grandfathered first
-       result = append_key_value(loc_name, hash_arr,  
LOC_GRANDFATHERED_LANG_TAG TSRMLS_CC);   
+       /* Check for grandfathered first */
+       result = append_key_value(loc_name, hash_arr,  
LOC_GRANDFATHERED_LANG_TAG);     
        if( result == SUCCESS){
                RETURN_SMART_STR(loc_name);
        }
@@ -964,8 +929,8 @@
                RETURN_FALSE;
        }
 
-       //Not grandfathered
-       result = append_key_value(loc_name, hash_arr , LOC_LANG_TAG TSRMLS_CC); 
+       /* Not grandfathered */
+       result = append_key_value(loc_name, hash_arr , LOC_LANG_TAG);   
        if( result == LOC_NOT_FOUND ){
                intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
                "locale_compose: parameter array does not contain 'language' 
tag.", 0 TSRMLS_CC );
@@ -976,31 +941,31 @@
                RETURN_FALSE;
        }
 
-       //Extlang
+       /* Extlang */
        result = append_multiple_key_values(loc_name, hash_arr , 
LOC_EXTLANG_TAG TSRMLS_CC);
        if( !handleAppendResult( result, loc_name TSRMLS_CC)){
                RETURN_FALSE;
        }
 
-       //Script
-       result = append_key_value(loc_name, hash_arr , LOC_SCRIPT_TAG 
TSRMLS_CC); 
+       /* Script */
+       result = append_key_value(loc_name, hash_arr , LOC_SCRIPT_TAG); 
        if( !handleAppendResult( result, loc_name TSRMLS_CC)){
                RETURN_FALSE;
        }
        
-       //Region
-       result = append_key_value( loc_name, hash_arr , LOC_REGION_TAG 
TSRMLS_CC);
+       /* Region */
+       result = append_key_value( loc_name, hash_arr , LOC_REGION_TAG);
        if( !handleAppendResult( result, loc_name TSRMLS_CC)){
                RETURN_FALSE;
        }
 
-       //Variant
+       /* Variant */
        result = append_multiple_key_values( loc_name, hash_arr , 
LOC_VARIANT_TAG TSRMLS_CC); 
        if( !handleAppendResult( result, loc_name TSRMLS_CC)){
                RETURN_FALSE;
        }
 
-       //Private
+       /* Private */
        result = append_multiple_key_values( loc_name, hash_arr , 
LOC_PRIVATE_TAG TSRMLS_CC);
        if( !handleAppendResult( result, loc_name TSRMLS_CC)){
                RETURN_FALSE;
@@ -1019,47 +984,47 @@
 */
 static char* get_private_subtags(char* loc_name)
 {
-        char*   result =NULL;
-        int     singletonPos = 0;
-        int     len =0;
-        char*   mod_loc_name =NULL;
-
-        if( loc_name && (len = strlen(loc_name)>0 ) ){
-                mod_loc_name = loc_name ;
-                len   = strlen(mod_loc_name);
-                while( (singletonPos = getSingletonPos(mod_loc_name))!= -1){
-
-                        if( singletonPos!=-1){
-                                if( (*(mod_loc_name+singletonPos)=='x') || 
(*(mod_loc_name+singletonPos)=='X') ){
-                                        //private subtag start found
-                                        if( singletonPos + 2 ==  len){
-                                                //loc_name ends with '-x-' ; 
return  NULL
-                                        }
-                                        else{
-                                                result = estrndup(mod_loc_name 
+ singletonPos+2  , (len -( singletonPos +2) ) );
-                                        }
-                                        break;
-                                }
-                                else{
-                                        if( singletonPos + 1 >=  len){
-                                                //String end
-                                                break;
-                                        } else {
-                                                //singleton found but not a 
private subtag , hence check further in the string for the private subtag
-                                                mod_loc_name = mod_loc_name + 
singletonPos +1;
-                                                len = strlen(mod_loc_name);
-                                        }
-                                }
-                        }
-
-                }//end of while
-        }
+       char*   result =NULL;
+       int     singletonPos = 0;
+       int     len =0; 
+       char*   mod_loc_name =NULL;
+
+       if( loc_name && (len = strlen(loc_name)>0 ) ){
+               mod_loc_name = loc_name ; 
+               len   = strlen(mod_loc_name);
+               while( (singletonPos = getSingletonPos(mod_loc_name))!= -1){
+
+                       if( singletonPos!=-1){ 
+                               if( (*(mod_loc_name+singletonPos)=='x') || 
(*(mod_loc_name+singletonPos)=='X') ){               
+                                       /* private subtag start found */
+                                       if( singletonPos + 2 ==  len){
+                                               /* loc_name ends with '-x-' ; 
return  NULL */
+                                       }
+                                       else{
+                                               /* result = mod_loc_name + 
singletonPos +2; */
+                                               result = estrndup(mod_loc_name 
+ singletonPos+2  , (len -( singletonPos +2) ) );
+                                       }
+                                       break;
+                               }
+                               else{
+                                       if( singletonPos + 1 >=  len){
+                                               /* String end */
+                                               break;
+                                       } else {
+                                               /* singleton found but not a 
private subtag , hence check further in the string for the private subtag */
+                                               mod_loc_name = mod_loc_name + 
singletonPos +1;
+                                               len = strlen(mod_loc_name);
+                                       }
+                               }
+                       }
 
-        return result;
+               } /* end of while */
+       }
+       
+       return result;
 }
 /* }}} */
 
-
 /* {{{ code used by locale_parse
 */
 static int add_array_entry(char* loc_name, zval* hash_arr, char* key_name 
TSRMLS_DC)
@@ -1080,10 +1045,10 @@
        } else {
                key_value = get_icu_value_internal( loc_name , key_name , 
&result,1 );
        }
-       if( strcmp(key_name , LOC_PRIVATE_TAG)==0 || 
-           strcmp(key_name , LOC_VARIANT_TAG)==0 ){
+       if( (strcmp(key_name , LOC_PRIVATE_TAG)==0) || 
+               ( strcmp(key_name , LOC_VARIANT_TAG)==0) ){
                if( result > 0 && key_value){
-                       //Tokenize on the "_" or "-" 
+                       /* Tokenize on the "_" or "-"  */
                        token = php_strtok_r( key_value , DELIMITER 
,&last_ptr);        
                        if( cur_key_name ){
                                efree( cur_key_name);
@@ -1091,11 +1056,14 @@
                        cur_key_name = (char*)ecalloc( 25,  25);
                        sprintf( cur_key_name , "%s%d", key_name , cnt++);      
                        add_assoc_string( hash_arr, cur_key_name , token ,TRUE 
);
-                       //tokenize on the "_" or "-" and stop  at singleton if 
any              
+                       /* tokenize on the "_" or "-" and stop  at singleton if 
any */
                        while( (token = php_strtok_r(NULL , DELIMITER , 
&last_ptr)) && (strlen(token)>1) ){
                                sprintf( cur_key_name , "%s%d", key_name , 
cnt++);      
                                add_assoc_string( hash_arr, cur_key_name , 
token , TRUE );
                        }
+
+                       if( key_name == LOC_PRIVATE_TAG ){
+                       }
                }
        } else {
                if( result == 1 ){
@@ -1107,16 +1075,18 @@
        if( cur_key_name ){
                efree( cur_key_name);
        }
+       /*if( key_name != LOC_PRIVATE_TAG && key_value){*/
        if( key_value){
                efree(key_value);       
        }
        return cur_result;
 }
+/* }}} */
 
 /* {{{ proto static array Locale::parseLocale($locale) 
 * parses a locale-id into an array the different parts of it
  }}} */
-/* {{{ proto static array parse_locale($locale)
+/* {{{ proto static array parse_locale($locale) 
 * parses a locale-id into an array the different parts of it
 */
 PHP_FUNCTION(locale_parse)
@@ -1127,7 +1097,6 @@
 
     intl_error_reset( NULL TSRMLS_CC );
 
-    // Parse parameters.
     if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s",
         &loc_name, &loc_name_len ) == FAILURE)
     {
@@ -1138,23 +1107,23 @@
     }
 
     if(loc_name_len == 0) {
-        loc_name = UG(default_locale);
+        loc_name = INTL_G(default_locale);
     }
 
        array_init( return_value );
 
        grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
        if( grOffset >= 0 ){
-               add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , 
loc_name , 1 );
-       } else {
-               //Not grandfathered
+               add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , 
estrdup(loc_name) ,FALSE );
+       }
+       else{
+               /* Not grandfathered */
                add_array_entry( loc_name , return_value , LOC_LANG_TAG 
TSRMLS_CC);
                add_array_entry( loc_name , return_value , LOC_SCRIPT_TAG 
TSRMLS_CC);
                add_array_entry( loc_name , return_value , LOC_REGION_TAG 
TSRMLS_CC);
                add_array_entry( loc_name , return_value , LOC_VARIANT_TAG 
TSRMLS_CC);
                add_array_entry( loc_name , return_value , LOC_PRIVATE_TAG 
TSRMLS_CC);
        }
-
 }
 /* }}} */
 
@@ -1176,7 +1145,6 @@
 
        intl_error_reset( NULL TSRMLS_CC );
        
-       // Parse parameters.
        if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s",
        &loc_name, &loc_name_len ) == FAILURE)
        {
@@ -1187,24 +1155,24 @@
        }
 
        if(loc_name_len == 0) {
-               loc_name = UG(default_locale);
+               loc_name = INTL_G(default_locale);
        }
 
 
        array_init( return_value );
 
-       //If the locale is grandfathered , stop , no variants
+       /* If the locale is grandfathered, stop, no variants */
        if( findOffset( LOC_GRANDFATHERED , loc_name ) >=  0 ){ 
-               //("Grandfathered Tag. No variants.");
+               /* ("Grandfathered Tag. No variants."); */
        }
        else {  
-       //Call ICU variant
+       /* Call ICU variant */
                variant = get_icu_value_internal( loc_name , LOC_VARIANT_TAG , 
&result ,0);
                if( result > 0 && variant){
-                       //Tokenize on the "_" or "-" 
+                       /* Tokenize on the "_" or "-" */
                        token = php_strtok_r( variant , DELIMITER , 
&saved_ptr);        
                        add_next_index_stringl( return_value, token , 
strlen(token) ,TRUE );
-                       //tokenize on the "_" or "-" and stop  at singleton if 
any              
+                       /* tokenize on the "_" or "-" and stop  at singleton if 
any     */
                        while( (token = php_strtok_r(NULL , DELIMITER, 
&saved_ptr)) && (strlen(token)>1) ){
                                add_next_index_stringl( return_value, token , 
strlen(token) ,TRUE );
                        }
@@ -1219,7 +1187,7 @@
 /* }}} */
 
 /*{{{
-* Converts to lower case and also replaces all hyphens with the underscore
+* Converts to lower case and also replaces all hyphuns with the underscore
 */
 static int strToMatch(char* str ,char *retstr)
 {
@@ -1282,7 +1250,6 @@
 
        intl_error_reset( NULL TSRMLS_CC );
        
-       // Parse parameters.
        if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "ssb",
                &lang_tag, &lang_tag_len , &loc_range , &loc_range_len , 
                &boolCanonical) == FAILURE)
@@ -1294,7 +1261,7 @@
        }
 
        if(loc_range_len == 0) {
-               loc_range = UG(default_locale);
+               loc_range = INTL_G(default_locale);
        }
 
        if( strcmp(loc_range,"*")==0){
@@ -1302,7 +1269,7 @@
        }
 
        if( boolCanonical ){
-               //canonicalize loc_range
+               /* canonicalize loc_range */
                can_loc_range=get_icu_value_internal( loc_range , 
LOC_CANONICALIZE_TAG , &result , 0);
                if( result ==0) {
                        intl_error_set( NULL, status, 
@@ -1310,7 +1277,7 @@
                        RETURN_FALSE;
                }
 
-               //canonicalize lang_tag
+               /* canonicalize lang_tag */
                can_lang_tag = get_icu_value_internal( lang_tag , 
LOC_CANONICALIZE_TAG , &result ,  0);
                if( result ==0) {
                        intl_error_set( NULL, status, 
@@ -1318,10 +1285,10 @@
                        RETURN_FALSE;
                }
 
-               //Convert to lower case for case-insensitive comparison
+               /* Convert to lower case for case-insensitive comparison */
                cur_lang_tag = ecalloc( 1, strlen(can_lang_tag) + 1);
 
-               //Convert to lower case for case-insensitive comparison
+               /* Convert to lower case for case-insensitive comparison */
                result = strToMatch( can_lang_tag , cur_lang_tag);
                if( result == 0) {
                        efree( cur_lang_tag );
@@ -1339,11 +1306,11 @@
                        RETURN_FALSE;
                }
 
-               //check if prefix
+               /* check if prefix */
                token   = strstr( cur_lang_tag , cur_loc_range );
        
-               if( token && ( strcmp(token,cur_lang_tag)==0) ){
-                       //check if the char. after match is SEPARATOR
+               if( token && (token==cur_lang_tag) ){
+                       /* check if the char. after match is SEPARATOR */
                        chrcheck = token + (strlen(cur_loc_range));
                        if( isIDSeparator(*chrcheck) || isEndOfTag(*chrcheck) 
){ 
                                if( cur_lang_tag){
@@ -1362,7 +1329,7 @@
                        }
                }
 
-               //No prefix as loc_range 
+               /* No prefix as loc_range */
                if( cur_lang_tag){
                        efree( cur_lang_tag );
                }
@@ -1377,9 +1344,9 @@
                }
                RETURN_FALSE;
 
-       }//end of if isCanonical
+       } /* end of if isCanonical */
        else{
-               //Convert to lower case for case-insensitive comparison
+               /* Convert to lower case for case-insensitive comparison */
                cur_lang_tag = ecalloc( 1, strlen(lang_tag ) + 1);
                
                result = strToMatch( lang_tag , cur_lang_tag);
@@ -1395,11 +1362,11 @@
                        RETURN_FALSE;
                }
 
-               //check if prefix
+               /* check if prefix */
                token   = strstr( cur_lang_tag , cur_loc_range );
                
-               if( token && (strcmp(token,cur_lang_tag)==0) ){
-                       //check if the char. after match is SEPARATOR
+               if( token && (token==cur_lang_tag) ){
+                       /* check if the char. after match is SEPARATOR */
                        chrcheck = token + (strlen(cur_loc_range));
                        if( isIDSeparator(*chrcheck) || isEndOfTag(*chrcheck) 
){ 
                                if( cur_lang_tag){
@@ -1412,7 +1379,7 @@
                        }
                }
 
-               //No prefix as loc_range 
+               /* No prefix as loc_range */
                if( cur_lang_tag){
                        efree( cur_lang_tag );
                }
@@ -1460,52 +1427,50 @@
        UErrorCode      status                  = U_ZERO_ERROR;
        char*           empty_result            = "";
 
-       //convert the array to lowercase , also replace hyphens with the 
underscore and store it in cur_arr
+       /* convert the array to lowercase , also replace hyphuns with the 
underscore and store it in cur_arr */
        for(zend_hash_internal_pointer_reset(hash_arr);
                zend_hash_has_more_elements(hash_arr) == SUCCESS;
                zend_hash_move_forward(hash_arr)) {
                
                if (zend_hash_get_current_data(hash_arr, (void**)&ele_value) == 
FAILURE) {
-                               // Should never actually fail
-                               // since the key is known to exist.
-                               continue;
+                       /* Should never actually fail since the key is known to 
exist.*/
+                       continue;
                }
-
-               if( lang_tag ){
-                       efree( lang_tag );
-               }
-               if( Z_TYPE_PP(ele_value)== IS_UNICODE ) {
-                       lang_tag = 
zend_unicode_to_ascii(Z_USTRVAL_PP(ele_value), Z_USTRLEN_PP(ele_value) 
TSRMLS_CC);
-               } else if( Z_TYPE_PP(ele_value)== IS_STRING ) {
-                       lang_tag = estrdup(Z_STRVAL_PP(ele_value));
-               } else {
-                       //element value is not a string 
-                       intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, 
"lookup_internal_src_php: array element is not a string ", 0 TSRMLS_CC );
+               if( Z_TYPE_PP(ele_value)!= IS_STRING ){
+                       /* element value is not a string */
+                       intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+                       "lookup_loc_range: array element is not a string ", 
+                       0 TSRMLS_CC );
                        return NULL;
-               } 
-
-               if( isCanonical ==0 ){
-                               //+1 for the terminating '\0'
-                       cur_arr[cur_arr_ind] = ecalloc(1, strlen(lang_tag)+1 );
-                       result = strToMatch(lang_tag, cur_arr[cur_arr_ind]) ;   
                } else {
-                       cur_arr[cur_arr_ind] = estrdup(lang_tag);
-               }
+                       if( lang_tag ){
+                               efree( lang_tag );
+                       }
+                       lang_tag = estrdup(Z_STRVAL_PP(ele_value) );
 
-               if( cur_arr_ind < MAX_NO_LOOKUP_LANG_TAG ){
-                       cur_arr_ind++ ; 
-               }
-               else{
-                       break;
+                       if( isCanonical ==0 ){
+                               /* +1 for the terminating '\0' */
+                               cur_arr[cur_arr_ind] = ecalloc(1, 
strlen(lang_tag)+1 );
+                               result = strToMatch(lang_tag, 
cur_arr[cur_arr_ind]) ;   
+                       } else {
+                               cur_arr[cur_arr_ind] = estrdup(lang_tag);
+                       }
+
+                       if( cur_arr_ind < MAX_NO_LOOKUP_LANG_TAG ){
+                               cur_arr_ind++ ; 
+                       } else {
+                               break;
+                       }
                }
-       }//end of for
+       } /* end of for */
+
        if( lang_tag ){
                efree( lang_tag );
        }
 
        cur_arr_len = cur_arr_ind;
 
-       //Canonicalize array elements
+       /* Canonicalize array elements */
        if( isCanonical ==1 ){
                for( i=0; i< cur_arr_ind; i++ ){ 
                        lang_tag =get_icu_value_internal( cur_arr[i] , 
LOC_CANONICALIZE_TAG , &result , 0);
@@ -1527,10 +1492,10 @@
        }
 
        if( isCanonical ==1 ){
-               //Canonicalize the loc_range
+               /* Canonicalize the loc_range */
                can_loc_range =get_icu_value_internal( loc_range, 
LOC_CANONICALIZE_TAG , &result , 0);
                if( result != 1 ){
-                       //Error
+                       /* Error */
                        intl_error_set( NULL, status, 
                                "locale_lookup : unable to canonicalize 
loc_range" , 0 TSRMLS_CC );
                        if( lang_tag ){
@@ -1542,18 +1507,18 @@
                        array_cleanup( cur_arr , cur_arr_len );
                        return NULL;
                } else {
-                       //convert to lower and replace hyphuns
+                       /* convert to lower and replace hyphuns */
                        cur_loc_range = ecalloc( 1, strlen(can_loc_range) +1);
                        result = strToMatch(can_loc_range , cur_loc_range);     
                }
        } else {
                cur_loc_range = ecalloc( 1, strlen(loc_range) +1);
-               //convert to lower and replace hyphuns
+               /* convert to lower and replace hyphuns */
                result = strToMatch(loc_range , cur_loc_range); 
        }
 
 
-       //Lookup for the lang_tag match
+       /* Lookup for the lang_tag match */
        saved_pos = strlen(cur_loc_range);
        while(saved_pos!=(-1) ){
                if( loc_range_to_cmp){
@@ -1562,7 +1527,7 @@
                loc_range_to_cmp = estrndup(cur_loc_range,saved_pos+1);
                for( i=0; i< cur_arr_ind; i++ ){ 
                        if( cur_arr[i] && 
(strcmp(loc_range_to_cmp,cur_arr[i])==0) ){   
-                               //Match found
+                               /* Match found */
                                return_value = estrdup( cur_arr[i] );
                                if (  cur_loc_range ){
                                        efree(  cur_loc_range );
@@ -1590,19 +1555,19 @@
                efree( can_loc_range );
        }
        array_cleanup( cur_arr , cur_arr_len );
-       //Match not found
+
+       /* Match not found */
        return empty_result;
 
 }
 /* }}} */
 
-/* {{{
-* public static function lookup(array $langtag, $locale, $default = null) {}
+/* {{{ proto string Locale::lookup(array $langtag, $locale[, $default = null]) 
 * Searchs the items in $langtag for the best match to the language
 * range 
 */
-/* {{{
-* public static function lookup(array $langtag, $locale, $default = null) {}
+/* }}} */
+/* {{{ proto string locale_lookup(array $langtag, $locale[, $default = null])
 * Searchs the items in $langtag for the best match to the language
 * range 
 */
@@ -1619,10 +1584,8 @@
 
        char*           result                  =NULL;
 
-
        intl_error_reset( NULL TSRMLS_CC );
 
-       // Parse parameters.
        if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "asb|s",
                &arr,&loc_range,&loc_range_len,&boolCanonical,
                &fallback_loc,&fallback_loc_len) == FAILURE)
@@ -1633,11 +1596,11 @@
                RETURN_NULL();
        }
 
-
        if(loc_range_len == 0) {
-               loc_range = UG(default_locale);
+               loc_range = INTL_G(default_locale);
        }
 
+       /* MAKE_STD_ZVAL(hash_arr); */
        hash_arr = HASH_OF( arr );
 
        if( !hash_arr || zend_hash_num_elements( hash_arr ) == 0 ){
@@ -1646,7 +1609,7 @@
        else{
                result = lookup_loc_range( loc_range ,hash_arr 
,(boolCanonical?1:0) TSRMLS_CC);
 
-       if( result == NULL || result[0] == '\0' ){
+       if(result == NULL || result[0] == '\0') {
                if( fallback_loc ) {
                        result = estrndup( fallback_loc , fallback_loc_len);
                } else {
@@ -1655,10 +1618,7 @@
        }
 }
 
-       RETVAL_STRINGL( result, strlen(result), TRUE );
-       if( result){
-               efree( result);
-       }
+       RETVAL_STRINGL( result, strlen(result), 0);
 }
 /* }}} */
 
@@ -1692,7 +1652,7 @@
                                                &outResult, http_accept, 
available, &status);
        uenum_close(available);
        INTL_CHECK_STATUS(status, "locale_accept_from_http: failed to find 
acceptable locale");
-       if(len < 0 || outResult == ULOC_ACCEPT_FAILED) {
+       if (len < 0 || outResult == ULOC_ACCEPT_FAILED) {
                RETURN_FALSE;
        }
        RETURN_STRINGL(resultLocale, len, 1);
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/locale/locale_methods.h?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/intl/locale/locale_methods.h
diff -u php-src/ext/intl/locale/locale_methods.h:1.3 
php-src/ext/intl/locale/locale_methods.h:1.4
--- php-src/ext/intl/locale/locale_methods.h:1.3        Wed Jul 23 18:45:10 2008
+++ php-src/ext/intl/locale/locale_methods.h    Sun Aug  3 11:32:45 2008
@@ -12,14 +12,15 @@
    +----------------------------------------------------------------------+
    | Author: Kirti Velankar <[EMAIL PROTECTED]>                        |
    +----------------------------------------------------------------------+
- */
+*/
+
+/* $Id: locale_methods.h,v 1.4 2008/08/03 11:32:45 jani Exp $ */
 
 #ifndef LOCALE_METHODS_H
 #define LOCALE_METHODS_H
 
 #include <php.h>
 
-
 PHP_FUNCTION( locale_get_primary_language );
 PHP_FUNCTION( locale_get_script );
 PHP_FUNCTION( locale_get_region );

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

Reply via email to