From 9e5595ef38193f3c4a14b79f495a2b6ee98d0387 Mon Sep 17 00:00:00 2001
From: Anatol Belski <ab@php.net>
Date: Fri, 16 Feb 2018 12:10:28 +0100
Subject: [PATCH] Reduce var scope

---
 ext/intl/locale/locale_methods.c | 38 ++++++++++++++------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/ext/intl/locale/locale_methods.c b/ext/intl/locale/locale_methods.c
index 81f48810bf..430ada100c 100644
--- a/ext/intl/locale/locale_methods.c
+++ b/ext/intl/locale/locale_methods.c
@@ -178,10 +178,10 @@ static zend_off_t getStrrtokenPos(char* str, zend_off_t savedPos)
 static zend_off_t getSingletonPos(const char* str)
 {
 	zend_off_t result =-1;
-	zend_off_t i=0;
 	size_t len = 0;
 
 	if( str && ((len=strlen(str))>0) ){
+		zend_off_t i = 0;
 		for( i=0; (size_t)i < len ; i++){
 			if( isIDSeparator(*(str+i)) ){
 				if( i==1){
@@ -261,9 +261,7 @@ static zend_string* get_icu_value_internal( const char* loc_name , char* tag_nam
 	zend_string* tag_value	    = NULL;
 	int32_t      tag_value_len  = 512;
 
-	zend_off_t   singletonPos   = 0;
 	char*        mod_loc_name   = NULL;
-	zend_off_t   grOffset       = 0;
 
 	int32_t      buflen         = 512;
 	UErrorCode   status         = U_ZERO_ERROR;
@@ -274,7 +272,7 @@ static zend_string* get_icu_value_internal( const char* loc_name , char* tag_nam
 
 	if( strcmp(tag_name, LOC_CANONICALIZE_TAG) != 0 ){
 		/* Handle  grandfathered languages */
-		grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
+		zend_off_t grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
 		if( grOffset >= 0 ){
 			if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
 				return zend_string_init(loc_name, strlen(loc_name), 0);
@@ -285,6 +283,8 @@ static zend_string* get_icu_value_internal( const char* loc_name , char* tag_nam
 		}
 
 	if( fromParseLocale==1 ){
+		zend_off_t singletonPos = 0;
+
 		/* Handle singletons */
 		if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
 			if( strlen(loc_name)>1 && (isIDPrefix(loc_name) == 1) ){
@@ -501,7 +501,6 @@ static void get_icu_disp_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAME
 	zend_string* u8str;
 
   	char*       msg             	= NULL;
-	int         grOffset    	= 0;
 
 	intl_error_reset( NULL );
 
@@ -529,7 +528,7 @@ static void get_icu_disp_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAME
 
 	if( strcmp(tag_name, DISP_NAME) != 0 ){
 		/* Handle grandfathered languages */
-		grOffset = findOffset( LOC_GRANDFATHERED , loc_name );
+		int grOffset = findOffset( LOC_GRANDFATHERED , loc_name );
 		if( grOffset >= 0 ){
 			if( strcmp(tag_name , LOC_LANG_TAG)==0 ){
 				mod_loc_name = getPreferredTag( loc_name );
@@ -696,15 +695,6 @@ PHP_FUNCTION( locale_get_keywords )
     const char*       	loc_name        = NULL;
     size_t        	 	loc_name_len    = 0;
 
-/*
-	ICU expects the buffer to be allocated  before calling the function
-	and so the buffer size has been explicitly specified
-	ICU uloc.h #define 	ULOC_KEYWORD_AND_VALUES_CAPACITY   100
-	hence the kw_value buffer size is 100
-*/
-	zend_string *kw_value_str;
-    int32_t     kw_value_len = 100;
-
     intl_error_reset( NULL );
 
     if(zend_parse_parameters( ZEND_NUM_ARGS(), "s",
@@ -726,12 +716,19 @@ PHP_FUNCTION( locale_get_keywords )
     e = uloc_openKeywords( loc_name, &status );
     if( e != NULL )
     {
+		/*
+		ICU expects the buffer to be allocated  before calling the function
+		and so the buffer size has been explicitly specified
+		ICU uloc.h #define 	ULOC_KEYWORD_AND_VALUES_CAPACITY   100
+		hence the kw_value buffer size is 100
+		*/
+
 		/* Traverse it, filling the return array. */
     	array_init( return_value );
 
     	while( ( kw_key = uenum_next( e, &kw_key_len, &status ) ) != NULL ){
-    		kw_value_len = 100;
-			kw_value_str = zend_string_alloc(kw_value_len, 0);
+    		int32_t kw_value_len = 100;
+			zend_string *kw_value_str = zend_string_alloc(kw_value_len, 0);
 
 			/* Get the keyword value for each keyword */
 			kw_value_len=uloc_getKeywordValue( loc_name, kw_key, ZSTR_VAL(kw_value_str), kw_value_len, &status );
@@ -822,9 +819,7 @@ static void add_prefix(smart_str* loc_name, char* key_name)
 static int append_multiple_key_values(smart_str* loc_name, HashTable* hash_arr, char* key_name)
 {
 	zval	*ele_value;
-	int 	i 		= 0;
 	int 	isFirstSubtag 	= 0;
-	int 	max_value 	= 0;
 
 	/* Variant/ Extlang/Private etc. */
 	if ((ele_value = zend_hash_str_find( hash_arr , key_name , strlen(key_name))) != NULL) {
@@ -854,6 +849,7 @@ static int append_multiple_key_values(smart_str* loc_name, HashTable* hash_arr,
 		}
 	} else {
 		char cur_key_name[31];
+		int  max_value = 0, i;
 		/* Decide the max_value: the max. no. of elements allowed */
 		if( strcmp(key_name , LOC_VARIANT_TAG) ==0 ){
 			max_value  = MAX_NO_VARIANT;
@@ -1001,11 +997,11 @@ PHP_FUNCTION(locale_compose)
 static zend_string* get_private_subtags(const char* loc_name)
 {
 	zend_string* result = NULL;
-	zend_off_t   singletonPos = 0;
 	size_t       len = 0;
 	const char*  mod_loc_name =NULL;
 
 	if( loc_name && (len = strlen(loc_name)>0 ) ){
+		zend_off_t singletonPos = 0;
 		mod_loc_name = loc_name ;
 		len   = strlen(mod_loc_name);
 		while( (singletonPos = getSingletonPos(mod_loc_name)) > -1){
@@ -1048,7 +1044,6 @@ static int add_array_entry(const char* loc_name, zval* hash_arr, char* key_name)
 
 	int	result		= 0;
 	int 	cur_result  	= 0;
-	int 	cnt  		= 0;
 
 
 	if( strcmp(key_name , LOC_PRIVATE_TAG)==0 ){
@@ -1060,6 +1055,7 @@ static int add_array_entry(const char* loc_name, zval* hash_arr, char* key_name)
 	if( (strcmp(key_name , LOC_PRIVATE_TAG)==0) ||
 		( strcmp(key_name , LOC_VARIANT_TAG)==0) ){
 		if( result > 0 && key_value){
+			int cnt = 0;
 			/* Tokenize on the "_" or "-"  */
 			token = php_strtok_r( key_value->val , DELIMITER ,&last_ptr);
 			if( cur_key_name ){
-- 
2.40.0