[PHP-dev 492] Re: users ¤Ëή¤·¤¿ mbstring.c ¥Ñ¥Ã¥Á¤Ë¥Ð¥°¤¬¤¢¤ê¤Þ¤·¤¿

Yasuo Ohgaki php-dev@php.gr.jp
Sun, 08 Sep 2002 07:48:05 +0900


Âç³À¤Ç¤¹¡£

¼«Ê¬¤ÇÊÑ¿ô̾¤ÈÃͤÎ2¤Äʬ¤Î¾ì½ê³ÎÊݤ¬É¬Íפȥ³¥á¥ó¥È½ñ¤¤¤Æ
¤¤¤Æ˺¤ì¤Æ¤Þ¤·¤¿. ½é´ü²½¤·¤Æ¤Ê¤¤¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤Þ
¤·¤¿¤Í¡£(´À

¤È¡¢¤³¤³¤Þ¤Ç½ñ¤¤¤¿»þÅÀ¤Ç¤Ê¤¼º£¤Þ¤ÇÌäÂê¤Ê¤«¤Ã¤¿¤Î¤«¡©¤È
¤è¤¯¹Í¤¨¤Æ¤ß¤ë¤È¡¢¤³¤ÎÉôʬ¡¢exmaple.php?var¤Î
var¤¬½é´ü²½¤µ¤ì¤ëÍͤËEdin¤µ¤ó¤¬Êѹ¹¤·¤Æ¤¤¤¿¤Ï¤º¤Ç¤¹
¤è¤Í¡£¤·¤«¤â¡¢¤³¤Î¥Ñ¥Ã¥Á¤Ë¤Ï¥»¥Ñ¥ì¡¼¥¿¤¬Ê£¿ô»ØÄê¤Ç¤­¤Ê
¤¯¤Ê¤Ã¤¿¥Ð¥°¤â¤¢¤Ã¤Æ¼«Ê¬¤¬Ä¾¤·¤¿¤Ï¤º...

¤¢¤Î¥Ñ¥Ã¥Á¤¬¥³¥ß¥Ã¥È¤µ¤ì¤¿»þ¤Ëº®Æþ¤·¤¿separator¥Ð¥°
¤òľ¤·¤¿»þ¤Ë¤â¤Ã¤È¤è¤¯³Îǧ¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤·¤¿¡£

¤³¤Î¥Ñ¥Ã¥Á¤Ç¡¢ÌäÂê²ò·è¤È»×¤¤¤Þ¤¹¡£HEAD¤Ë¥³¥ß¥Ã¥È¤·¤È¤­
¤Þ¤¹¡£Ç°¤Î°Ù¡¢¤·¤Ð¤é¤¯¤ª¤¤¤Æ¤ª¤¤¤ÆÌäÂê¤Ê¤±¤ì¤Ð4.2.0¥Ö
¥é¥ó¥Á¤Ë¤â¥³¥ß¥Ã¥È¤·¤Æ¤ª¤­¤Þ¤¹¡£

--
Yasuo Ohgaki

Moriyoshi Koizumi wrote:
> ¾®Àô¤Ç¤¹¡£
> 
> ¤³¤Á¤é¤Î ML ¤Ï½é¤á¤Æ¤Ç¤¹¡£¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£
> 
> Àè¤Û¤É php-users ¤ËÅꤲ¤¿¥Ñ¥Ã¥Á¤Ë¤ÏÉÔ¶ñ¹ç¤¬¤¢¤ê¤Þ¤·¤¿¡£
> (¤­¤·¤À¤µ¤ó¡¢Æ£Ëܤµ¤ó¸¡¾Ú¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£)
> 
> ¤¢¤Þ¤ê¥½¡¼¥¹¤òÆɤó¤Ç¤¤¤Ê¤¤¤Î¤Ë¥Ñ¥Ã¥Á¤òºî¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤¬Èó¾ï¤Ë¤Þ¤º¤«¤Ã¤¿¤Ç
> ¤¹¤Í¡£
> iconv ¤Î·ï¤Ç¤ªÀ¤ÏäˤʤäƤ¤¤¿¡¢Âç³À¤µ¤ó¤Ë¤¸¤«¤Ë¥Ñ¥Ã¥Á¤òÁ÷¤Ã¤Æ¤·¤Þ¤Ã¤¿
> »ä¤ÎȽÃǥߥ¹¤â¤è¤¯¤Ê¤«¤Ã¤¿¤È»×¤¤¤Þ¤¹¡£
> ¤³¤ì¤«¤é¥Ñ¥Ã¥Á¤Ï¤È¤ê¤¢¤¨¤º¤³¤Î php-dev@php.gr.jp ¤ËÅꤲ¤Æ¡¢¤È¤ê¤¢¤¨¤ºÂ¿¤¯
> ¤ÎÊý¤ÎÌܤòÄ̤·¤Æ¤¤¤¿¤À¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
> 
> ¤µ¤Æ¡¢ºÆ¤Ó¥Ñ¥Ã¥Á¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¤¬¡¢¤É¤¦¤Ç¤·¤ç¤¦¤«¡©
> 
> ¤ªË»¤·¤¤¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£
> 
> 
> 
> ------------------------------------------------------------------------
> 
> diff -u -r php-4.2.3.org/ext/mbstring/mbstring.c php-4.2.3/ext/mbstring/mbstring.c
> --- php-4.2.3.org/ext/mbstring/mbstring.c	Thu Aug  1 14:47:56 2002
> +++ php-4.2.3/ext/mbstring/mbstring.c	Sun Sep  8 05:44:09 2002
> @@ -1031,18 +1031,24 @@
>  	var = php_strtok_r(res, separator, &strtok_buf);
>  	while (var)  {
>  		val = strchr(var, '=');
> -		val_list[n] = var;
> -		len_list[n] = php_url_decode(var, strlen(var));
> -		n++;
>  		if (val) { /* have a value */
> +			len_list[n] = php_url_decode(var, val-var);
> +			val_list[n] = var;
> +			n++;
> +
>  			*val++ = '\0';
>  			val_list[n] = val;
>  			len_list[n] = php_url_decode(val, strlen(val));
> +			n++;
>  		} else {
> +			len_list[n] = php_url_decode(var, strlen(var));
> +			val_list[n] = var; 
> +			n++;
> +
>  			val_list[n] = "";
>  			len_list[n] = 0;
> +			n++;
>  		}
> -		n++;
>  		var = php_strtok_r(NULL, separator, &strtok_buf);
>  	} 
>  	num = n; /* make sure to process initilized vars only */
> 
> 
> ------------------------------------------------------------------------
> 
> Index: mbstring.c
> ===================================================================
> RCS file: /repository/php4/ext/mbstring/mbstring.c,v
> retrieving revision 1.97
> diff -u -r1.97 mbstring.c
> --- mbstring.c	7 Sep 2002 14:07:05 -0000	1.97
> +++ mbstring.c	7 Sep 2002 21:30:15 -0000
> @@ -1272,19 +1272,24 @@
>  	var = php_strtok_r(res, separator, &strtok_buf);
>  	while (var)  {
>  		val = strchr(var, '=');
> -		val_list[n] = var;
> -		n++;
>  		if (val) { /* have a value */
> -			php_url_decode(var, val-var);
> +			len_list[n] = php_url_decode(var, val-var);
> +			val_list[n] = var;
> +			n++;
> +
>  			*val++ = '\0';
>  			val_list[n] = val;
>  			len_list[n] = php_url_decode(val, strlen(val));
> +			n++;
>  		} else {
> -			php_url_decode(var, strlen(var));
> +			len_list[n] = php_url_decode(var, strlen(var));
> +			val_list[n] = var; 
> +			n++;
> +
>  			val_list[n] = "";
>  			len_list[n] = 0;
> +			n++;
>  		}
> -		n++;
>  		var = php_strtok_r(NULL, separator, &strtok_buf);
>  	} 
>  	num = n; /* make sure to process initilized vars only */