[PHP-CVS] com php-src: Reset LIBS temporarily to make sure PHP_CHECK_FUNC will look into libc.: NEWS acinclude.m4

2012-04-02 Thread Moriyoshi Koizumi
Commit:a6c95c8a00e9286ccc662e9682f9254e153d6833
Author:Moriyoshi Koizumi  Tue, 3 Apr 2012 01:32:42 
+0900
Parents:   8684fb7facd8f5c1589996c1ebfd782f77c245ff
Branches:  PHP-5.3 PHP-5.4 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=a6c95c8a00e9286ccc662e9682f9254e153d6833

Log:
Reset LIBS temporarily to make sure PHP_CHECK_FUNC will look into libc.

See Gentoo bug #364139. https://bugs.gentoo.org/show_bug.cgi?id=364139
Reported by Naohiro Aota.

Bugs:
https://bugs.php.net/364139

Changed paths:
  M  NEWS
  M  acinclude.m4


Diff:
diff --git a/NEWS b/NEWS
index c7cd2c7..736ffe8 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,11 @@ PHP
NEWS
 ?? ??? 2012, PHP 5.3.12
 
 ?? ??? 2012, PHP 5.3.11
+- Iconv extension:
+  . Fixed a bug that iconv extension fails to link to the correct library
+when another extension makes use of a library that links to the iconv
+library. See https://bugs.gentoo.org/show_bug.cgi?id=364139 for detail.
+(Moriyoshi)
 
 (merge after 5.3.11 release)
 
diff --git a/acinclude.m4 b/acinclude.m4
index 5515b3f..ddf7285 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2438,7 +2438,12 @@ AC_DEFUN([PHP_SETUP_ICONV], [
   dnl
   dnl Check libc first if no path is provided in --with-iconv
   dnl
+
   if test "$PHP_ICONV" = "yes"; then
+dnl Reset LIBS temporarily as it may have already been included
+dnl -liconv in.
+LIBS_save="$LIBS"
+LIBS=
 AC_CHECK_FUNC(iconv, [
   found_iconv=yes
 ],[
@@ -2448,6 +2453,7 @@ AC_DEFUN([PHP_SETUP_ICONV], [
 found_iconv=yes
   ])
 ])
+LIBS="$LIBS_save"
   fi
 
   dnl


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



[PHP-CVS] com php-src: Merge branch 'PHP-5.3' into PHP-5.4: acinclude.m4

2012-04-02 Thread Moriyoshi Koizumi
Commit:43047598c4e4ed76daa82ff509e46c40087f0ea4
Author:Moriyoshi Koizumi  Tue, 3 Apr 2012 02:00:23 
+0900
Parents:   374646c36b07956da928e0583854002e55b4013e 
a6c95c8a00e9286ccc662e9682f9254e153d6833
Branches:  PHP-5.4 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=43047598c4e4ed76daa82ff509e46c40087f0ea4

Log:
Merge branch 'PHP-5.3' into PHP-5.4

Conflicts:
NEWS

Changed paths:
  MM  acinclude.m4


Diff:



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



[PHP-CVS] com php-src: Fix bug #62373 (serialize() generates wrong reference to the object): ext/standard/tests/serialize/bug62373.phpt ext/standard/var.c

2012-06-25 Thread Moriyoshi Koizumi
Commit:e42718227945202044516c71f0098fe464987410
Author:Moriyoshi Koizumi  Mon, 25 Jun 2012 19:13:23 
+0900
Parents:   5b3f4d25ea047f14d6485fb6f456cece384d33ee
Branches:  PHP-5.3

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=e42718227945202044516c71f0098fe464987410

Log:
Fix bug #62373 (serialize() generates wrong reference to the object)

Bugs:
https://bugs.php.net/62373

Changed paths:
  A  ext/standard/tests/serialize/bug62373.phpt
  M  ext/standard/var.c


Diff:
diff --git a/ext/standard/tests/serialize/bug62373.phpt 
b/ext/standard/tests/serialize/bug62373.phpt
new file mode 100644
index 000..666c33e
--- /dev/null
+++ b/ext/standard/tests/serialize/bug62373.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #62373 (serialize() generates wrong reference to the object)
+--FILE--
+
+--EXPECT--
+OK
diff --git a/ext/standard/var.c b/ext/standard/var.c
index ddcfde0..3e2a45c 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -544,12 +544,9 @@ static inline int php_add_var_hash(HashTable *var_hash, 
zval *var, void *var_old
 
/* relies on "(long)" being a perfect hash function for data pointers,
 * however the actual identity of an object has had to be determined
-* by its object handle and the class entry since 5.0. */
+* by its object handle since 5.0. */
if ((Z_TYPE_P(var) == IS_OBJECT) && Z_OBJ_HT_P(var)->get_class_entry) {
-   p = smart_str_print_long(id + sizeof(id) - 1,
-   (((size_t)Z_OBJCE_P(var) << 5)
-   | ((size_t)Z_OBJCE_P(var) >> (sizeof(long) * 8 
- 5)))
-   + (long) Z_OBJ_HANDLE_P(var));
+   p = smart_str_print_long(id + sizeof(id) - 1, (long) 
Z_OBJ_HANDLE_P(var));
*(--p) = 'O';
len = id + sizeof(id) - 1 - p;
} else {


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



[PHP-CVS] com php-src: Fix bug #62373 (serialize() generates wrong reference to the object): ext/standard/tests/serialize/bug62373.phpt ext/standard/var.c

2012-06-25 Thread Moriyoshi Koizumi
Commit:91e1df704eed40325fd963a308e466bbbf96184f
Author:Moriyoshi Koizumi  Mon, 25 Jun 2012 19:13:23 
+0900
Parents:   ad641950b3d047fc20729b7a18c62b414622cc79
Branches:  PHP-5.4 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=91e1df704eed40325fd963a308e466bbbf96184f

Log:
Fix bug #62373 (serialize() generates wrong reference to the object)

Bugs:
https://bugs.php.net/62373

Changed paths:
  A  ext/standard/tests/serialize/bug62373.phpt
  M  ext/standard/var.c


Diff:
diff --git a/ext/standard/tests/serialize/bug62373.phpt 
b/ext/standard/tests/serialize/bug62373.phpt
new file mode 100644
index 000..666c33e
--- /dev/null
+++ b/ext/standard/tests/serialize/bug62373.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #62373 (serialize() generates wrong reference to the object)
+--FILE--
+
+--EXPECT--
+OK
diff --git a/ext/standard/var.c b/ext/standard/var.c
index c6126e9..735d0a7 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -541,12 +541,9 @@ static inline int php_add_var_hash(HashTable *var_hash, 
zval *var, void *var_old
 
/* relies on "(long)" being a perfect hash function for data pointers,
 * however the actual identity of an object has had to be determined
-* by its object handle and the class entry since 5.0. */
+* by its object handle since 5.0. */
if ((Z_TYPE_P(var) == IS_OBJECT) && Z_OBJ_HT_P(var)->get_class_entry) {
-   p = smart_str_print_long(id + sizeof(id) - 1,
-   (((size_t)Z_OBJCE_P(var) << 5)
-   | ((size_t)Z_OBJCE_P(var) >> (sizeof(long) * 8 
- 5)))
-   + (long) Z_OBJ_HANDLE_P(var));
+   p = smart_str_print_long(id + sizeof(id) - 1, (long) 
Z_OBJ_HANDLE_P(var));
*(--p) = 'O';
len = id + sizeof(id) - 1 - p;
} else {


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



[PHP-CVS] com php-src: BFN: NEWS

2012-06-25 Thread Moriyoshi Koizumi
Commit:ce2082d24f2461b6403e13563ed18656a95581fa
Author:Moriyoshi Koizumi  Mon, 25 Jun 2012 19:20:38 
+0900
Parents:   e42718227945202044516c71f0098fe464987410
Branches:  PHP-5.3

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=ce2082d24f2461b6403e13563ed18656a95581fa

Log:
BFN

Changed paths:
  M  NEWS


Diff:
diff --git a/NEWS b/NEWS
index b9bb009..63e91f5 100644
--- a/NEWS
+++ b/NEWS
@@ -92,6 +92,8 @@ PHP   
 NEWS
 (Anatoliy)
   . Fixed bug #61991 (long overflow in realpath_cache_get()). (Anatoliy)
   . Changed php://fd to be available only for CLI.
+  . Fixed bug #62373 (serialize() generates wrong reference to the object).
+(Moriyoshi)
 
 - Fileinfo:
   . Fixed bug #61812 (Uninitialised value used in libmagic).


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



[PHP-CVS] com php-src: mb_split() can now handle empty matches like preg_split() does.: NEWS ext/mbstring/php_mbregex.c ext/mbstring/tests/mb_split_empty_match.phpt ext/mbstring/tests/mb_split_variati

2013-02-09 Thread Moriyoshi Koizumi
Commit:0ea83ff8478d867ebf1603a43cd5d3432022cee7
Author:Moriyoshi Koizumi  Sun, 10 Feb 2013 15:04:23 
+0900
Parents:   92a7924c1a97563cb73d37c369fdea4794203397
Branches:  PHP-5.4

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=0ea83ff8478d867ebf1603a43cd5d3432022cee7

Log:
mb_split() can now handle empty matches like preg_split() does.

Changed paths:
  M  NEWS
  M  ext/mbstring/php_mbregex.c
  A  ext/mbstring/tests/mb_split_empty_match.phpt
  M  ext/mbstring/tests/mb_split_variation1.phpt


Diff:
diff --git a/NEWS b/NEWS
index 2aff180..e3b5075 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,9 @@ PHP 
   NEWS
 - CLI server:
   . Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi)
 
+- Mbstring:
+  . mb_split() can now handle empty matches like preg_split() does. (Moriyoshi)
+
 ?? ??? 2012, PHP 5.4.12
 
 - Core:
diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
index a572bd4..145ee0c 100644
--- a/ext/mbstring/php_mbregex.c
+++ b/ext/mbstring/php_mbregex.c
@@ -1055,7 +1055,7 @@ PHP_FUNCTION(mb_split)
php_mb_regex_t *re;
OnigRegion *regs = NULL;
char *string;
-   OnigUChar *pos;
+   OnigUChar *pos, *chunk_pos;
int string_len;
 
int n, err;
@@ -1065,8 +1065,8 @@ PHP_FUNCTION(mb_split)
RETURN_FALSE;
} 
 
-   if (count == 0) {
-   count = 1;
+   if (count > 0) {
+   count--;
}
 
/* create regex pattern buffer */
@@ -1076,31 +1076,30 @@ PHP_FUNCTION(mb_split)
 
array_init(return_value);
 
-   pos = (OnigUChar *)string;
+   chunk_pos = pos = (OnigUChar *)string;
err = 0;
regs = onig_region_new();
/* churn through str, generating array entries as we go */
-   while ((--count != 0) &&
-  (err = onig_search(re, (OnigUChar *)string, (OnigUChar 
*)(string + string_len), pos, (OnigUChar *)(string + string_len), regs, 0)) >= 
0) {
-   if (regs->beg[0] == regs->end[0]) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty 
regular expression");
+   while (count != 0 && (pos - (OnigUChar *)string) < string_len) {
+   int beg, end;
+   err = onig_search(re, (OnigUChar *)string, (OnigUChar *)(string 
+ string_len), pos, (OnigUChar *)(string + string_len), regs, 0);
+   if (err < 0) {
break;
}
-
+   beg = regs->beg[0], end = regs->end[0];
/* add it to the array */
-   if (regs->beg[0] < string_len && regs->beg[0] >= (pos - 
(OnigUChar *)string)) {
-   add_next_index_stringl(return_value, (char *)pos, 
((OnigUChar *)(string + regs->beg[0]) - pos), 1);
+   if ((pos - (OnigUChar *)string) < end) {
+   if (beg < string_len && beg >= (chunk_pos - (OnigUChar 
*)string)) {
+   add_next_index_stringl(return_value, (char 
*)chunk_pos, ((OnigUChar *)(string + beg) - chunk_pos), 1);
+   --count;
+   } else {
+   err = -2;
+   break;
+   }
+   /* point at our new starting point */
+   chunk_pos = pos = (OnigUChar *)string + end;
} else {
-   err = -2;
-   break;
-   }
-   /* point at our new starting point */
-   n = regs->end[0];
-   if ((pos - (OnigUChar *)string) < n) {
-   pos = (OnigUChar *)string + n;
-   }
-   if (count < 0) {
-   count = 0;
+   pos++;
}
onig_region_free(regs, 0);
}
@@ -1117,9 +1116,9 @@ PHP_FUNCTION(mb_split)
}
 
/* otherwise we just have one last element to add to the array */
-   n = ((OnigUChar *)(string + string_len) - pos);
+   n = ((OnigUChar *)(string + string_len) - chunk_pos);
if (n > 0) {
-   add_next_index_stringl(return_value, (char *)pos, n, 1);
+   add_next_index_stringl(return_value, (char *)chunk_pos, n, 1);
} else {
add_next_index_stringl(return_value, "", 0, 1);
}
diff --git a/ext/mbstring/tests/mb_split_empty_match.phpt 
b/ext/mbstring/tests/mb_split_empty_match.phpt
new file mode 100644
index 000..df3a22c
--- /dev/null
+++ b/ext/mbstring/tests/mb_split_empty_match.phpt
@@ -0,0 +1,23 @@
+--TEST--
+mb_split() empty match
+--
+--SKIPIF--
+
+--FILE--
+
+  string(2) "a
+"
+  [1]=>
+  string(2) "b
+"
+  [2]=>
+  string(1) "c"
+}
diff --git

[PHP-CVS] com php-src: mb_split() can now handle empty matches like preg_split() does.: ext/mbstring/php_mbregex.c ext/mbstring/tests/mb_split_empty_match.phpt ext/mbstring/tests/mb_split_variation1.p

2013-02-09 Thread Moriyoshi Koizumi
Commit:20eb33b3212bd6c17d73c569c7345ae23c04d3ef
Author:Moriyoshi Koizumi  Sun, 10 Feb 2013 15:04:23 
+0900
Parents:   3d9a31efdfbbc3d73b8c94649f38035277264151
Branches:  PHP-5.5

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=20eb33b3212bd6c17d73c569c7345ae23c04d3ef

Log:
mb_split() can now handle empty matches like preg_split() does.

Changed paths:
  M  ext/mbstring/php_mbregex.c
  A  ext/mbstring/tests/mb_split_empty_match.phpt
  M  ext/mbstring/tests/mb_split_variation1.phpt


Diff:
diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
index a572bd4..145ee0c 100644
--- a/ext/mbstring/php_mbregex.c
+++ b/ext/mbstring/php_mbregex.c
@@ -1055,7 +1055,7 @@ PHP_FUNCTION(mb_split)
php_mb_regex_t *re;
OnigRegion *regs = NULL;
char *string;
-   OnigUChar *pos;
+   OnigUChar *pos, *chunk_pos;
int string_len;
 
int n, err;
@@ -1065,8 +1065,8 @@ PHP_FUNCTION(mb_split)
RETURN_FALSE;
} 
 
-   if (count == 0) {
-   count = 1;
+   if (count > 0) {
+   count--;
}
 
/* create regex pattern buffer */
@@ -1076,31 +1076,30 @@ PHP_FUNCTION(mb_split)
 
array_init(return_value);
 
-   pos = (OnigUChar *)string;
+   chunk_pos = pos = (OnigUChar *)string;
err = 0;
regs = onig_region_new();
/* churn through str, generating array entries as we go */
-   while ((--count != 0) &&
-  (err = onig_search(re, (OnigUChar *)string, (OnigUChar 
*)(string + string_len), pos, (OnigUChar *)(string + string_len), regs, 0)) >= 
0) {
-   if (regs->beg[0] == regs->end[0]) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty 
regular expression");
+   while (count != 0 && (pos - (OnigUChar *)string) < string_len) {
+   int beg, end;
+   err = onig_search(re, (OnigUChar *)string, (OnigUChar *)(string 
+ string_len), pos, (OnigUChar *)(string + string_len), regs, 0);
+   if (err < 0) {
break;
}
-
+   beg = regs->beg[0], end = regs->end[0];
/* add it to the array */
-   if (regs->beg[0] < string_len && regs->beg[0] >= (pos - 
(OnigUChar *)string)) {
-   add_next_index_stringl(return_value, (char *)pos, 
((OnigUChar *)(string + regs->beg[0]) - pos), 1);
+   if ((pos - (OnigUChar *)string) < end) {
+   if (beg < string_len && beg >= (chunk_pos - (OnigUChar 
*)string)) {
+   add_next_index_stringl(return_value, (char 
*)chunk_pos, ((OnigUChar *)(string + beg) - chunk_pos), 1);
+   --count;
+   } else {
+   err = -2;
+   break;
+   }
+   /* point at our new starting point */
+   chunk_pos = pos = (OnigUChar *)string + end;
} else {
-   err = -2;
-   break;
-   }
-   /* point at our new starting point */
-   n = regs->end[0];
-   if ((pos - (OnigUChar *)string) < n) {
-   pos = (OnigUChar *)string + n;
-   }
-   if (count < 0) {
-   count = 0;
+   pos++;
}
onig_region_free(regs, 0);
}
@@ -1117,9 +1116,9 @@ PHP_FUNCTION(mb_split)
}
 
/* otherwise we just have one last element to add to the array */
-   n = ((OnigUChar *)(string + string_len) - pos);
+   n = ((OnigUChar *)(string + string_len) - chunk_pos);
if (n > 0) {
-   add_next_index_stringl(return_value, (char *)pos, n, 1);
+   add_next_index_stringl(return_value, (char *)chunk_pos, n, 1);
} else {
add_next_index_stringl(return_value, "", 0, 1);
}
diff --git a/ext/mbstring/tests/mb_split_empty_match.phpt 
b/ext/mbstring/tests/mb_split_empty_match.phpt
new file mode 100644
index 000..df3a22c
--- /dev/null
+++ b/ext/mbstring/tests/mb_split_empty_match.phpt
@@ -0,0 +1,23 @@
+--TEST--
+mb_split() empty match
+--
+--SKIPIF--
+
+--FILE--
+
+  string(2) "a
+"
+  [1]=>
+  string(2) "b
+"
+  [2]=>
+  string(1) "c"
+}
diff --git a/ext/mbstring/tests/mb_split_variation1.phpt 
b/ext/mbstring/tests/mb_split_variation1.phpt
index be3230e..b508049 100644
--- a/ext/mbstring/tests/mb_split_variation1.phpt
+++ b/ext/mbstring/tests/mb_split_variation1.phpt
@@ -156,16 +156,12 @@ array(1) {
 }
 
 -- Iteration 10 --
-
-Warning: mb_split(): Empty regular expression in %s on line %d
 array(1) {
   [0]=>
   string(13) "a b c d e f g&quo

Re: [PHP-CVS] svn: /php/php-src/trunk/ NEWS Zend/zend_compile.c Zend/zend_globals.h Zend/zend_multibyte.c Zend/zend_multibyte.h ext/exif/exif.c ext/mbstring/mbstring.c ext/standard/html.c main/rfc1867

2010-12-08 Thread Moriyoshi Koizumi
Hey, I don't think there was agreement on this yet.  I've actually
been preparing a patch that minimizes the extra hook points in SAPI.

Moriyoshi

On Wed, Dec 8, 2010 at 8:27 PM, Dmitry Stogov  wrote:
> dmitry                                   Wed, 08 Dec 2010 11:27:34 +
>
> Revision: http://svn.php.net/viewvc?view=revision&revision=306077
>
> Log:
> Removed compile time dependency from ext/mbstring
>
> Changed paths:
>    U   php/php-src/trunk/NEWS
>    U   php/php-src/trunk/Zend/zend_compile.c
>    U   php/php-src/trunk/Zend/zend_globals.h
>    U   php/php-src/trunk/Zend/zend_multibyte.c
>    U   php/php-src/trunk/Zend/zend_multibyte.h
>    U   php/php-src/trunk/ext/exif/exif.c
>    U   php/php-src/trunk/ext/mbstring/mbstring.c
>    U   php/php-src/trunk/ext/standard/html.c
>    U   php/php-src/trunk/main/rfc1867.c
>    U   php/php-src/trunk/main/rfc1867.h
>    A   php/php-src/trunk/tests/basic/028.phpt
>    A   php/php-src/trunk/tests/basic/029.phpt
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

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



Re: [PHP-CVS] svn: /php/php-src/trunk/ NEWS Zend/zend_compile.c Zend/zend_globals.h Zend/zend_multibyte.c Zend/zend_multibyte.h ext/exif/exif.c ext/mbstring/mbstring.c ext/standard/html.c main/rfc1867

2010-12-08 Thread Moriyoshi Koizumi
Please revert.

On Thu, Dec 9, 2010 at 3:00 PM, Moriyoshi Koizumi  wrote:
> Hey, I don't think there was agreement on this yet.  I've actually
> been preparing a patch that minimizes the extra hook points in SAPI.
>
> Moriyoshi
>
> On Wed, Dec 8, 2010 at 8:27 PM, Dmitry Stogov  wrote:
>> dmitry                                   Wed, 08 Dec 2010 11:27:34 +
>>
>> Revision: http://svn.php.net/viewvc?view=revision&revision=306077
>>
>> Log:
>> Removed compile time dependency from ext/mbstring
>>
>> Changed paths:
>>    U   php/php-src/trunk/NEWS
>>    U   php/php-src/trunk/Zend/zend_compile.c
>>    U   php/php-src/trunk/Zend/zend_globals.h
>>    U   php/php-src/trunk/Zend/zend_multibyte.c
>>    U   php/php-src/trunk/Zend/zend_multibyte.h
>>    U   php/php-src/trunk/ext/exif/exif.c
>>    U   php/php-src/trunk/ext/mbstring/mbstring.c
>>    U   php/php-src/trunk/ext/standard/html.c
>>    U   php/php-src/trunk/main/rfc1867.c
>>    U   php/php-src/trunk/main/rfc1867.h
>>    A   php/php-src/trunk/tests/basic/028.phpt
>>    A   php/php-src/trunk/tests/basic/029.phpt
>>
>>
>> --
>> PHP CVS Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>

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



Re: [PHP-CVS] svn: /php/php-src/trunk/ NEWS Zend/zend_compile.c Zend/zend_globals.h Zend/zend_multibyte.c Zend/zend_multibyte.h ext/exif/exif.c ext/mbstring/mbstring.c ext/standard/html.c main/rfc1867

2010-12-09 Thread Moriyoshi Koizumi
I was thinking that this is rather a *big* change, so we'd better roll
our patches into one and commit it altogether.  I am fine if that
works for anyone else.

Regards,
Moriyoshi

On Thu, Dec 9, 2010 at 6:11 PM, Dmitry Stogov  wrote:
> Hi Moriyoshi,
>
> Ops, sorry. I didn't understand your disagreement, and I didn't see any
> other objections. So I committed the patch as it was planned. Could you
> prepare a patch on top of this one?
>
> I'm also going to look into your recommendation of moving
> mbstring.script_encoding into zend.script_encoding instead of
> zend.multibyte.
>
> Thanks. Dmitry.
>
> On 12/09/2010 09:02 AM, Moriyoshi Koizumi wrote:
>>
>> Please revert.
>>
>> On Thu, Dec 9, 2010 at 3:00 PM, Moriyoshi Koizumi  wrote:
>>>
>>> Hey, I don't think there was agreement on this yet.  I've actually
>>> been preparing a patch that minimizes the extra hook points in SAPI.
>>>
>>> Moriyoshi
>>>
>>> On Wed, Dec 8, 2010 at 8:27 PM, Dmitry Stogov  wrote:
>>>>
>>>> dmitry                                   Wed, 08 Dec 2010 11:27:34 +
>>>>
>>>> Revision: http://svn.php.net/viewvc?view=revision&revision=306077
>>>>
>>>> Log:
>>>> Removed compile time dependency from ext/mbstring
>>>>
>>>> Changed paths:
>>>>    U   php/php-src/trunk/NEWS
>>>>    U   php/php-src/trunk/Zend/zend_compile.c
>>>>    U   php/php-src/trunk/Zend/zend_globals.h
>>>>    U   php/php-src/trunk/Zend/zend_multibyte.c
>>>>    U   php/php-src/trunk/Zend/zend_multibyte.h
>>>>    U   php/php-src/trunk/ext/exif/exif.c
>>>>    U   php/php-src/trunk/ext/mbstring/mbstring.c
>>>>    U   php/php-src/trunk/ext/standard/html.c
>>>>    U   php/php-src/trunk/main/rfc1867.c
>>>>    U   php/php-src/trunk/main/rfc1867.h
>>>>    A   php/php-src/trunk/tests/basic/028.phpt
>>>>    A   php/php-src/trunk/tests/basic/029.phpt
>>>>
>>>>
>>>> --
>>>> PHP CVS Mailing List (http://www.php.net/)
>>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>
>>>
>
>

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



[PHP-CVS] svn: /php/php-src/trunk/ext/mbstring/ mbstring.c

2010-12-19 Thread Moriyoshi Koizumi
moriyoshiSun, 19 Dec 2010 17:28:57 +

Revision: http://svn.php.net/viewvc?view=revision&revision=306459

Log:
WS

Changed paths:
U   php/php-src/trunk/ext/mbstring/mbstring.c

Modified: php/php-src/trunk/ext/mbstring/mbstring.c
===
--- php/php-src/trunk/ext/mbstring/mbstring.c   2010-12-19 17:25:12 UTC (rev 
306458)
+++ php/php-src/trunk/ext/mbstring/mbstring.c   2010-12-19 17:28:57 UTC (rev 
306459)
@@ -558,7 +558,7 @@

 /* {{{ zend_module_entry mbstring_module_entry */
 zend_module_entry mbstring_module_entry = {
-STANDARD_MODULE_HEADER,
+   STANDARD_MODULE_HEADER,
"mbstring",
mbstring_functions,
PHP_MINIT(mbstring),
@@ -566,11 +566,11 @@
PHP_RINIT(mbstring),
PHP_RSHUTDOWN(mbstring),
PHP_MINFO(mbstring),
-NO_VERSION_YET,
-PHP_MODULE_GLOBALS(mbstring),
-PHP_GINIT(mbstring),
-PHP_GSHUTDOWN(mbstring),
-NULL,
+   NO_VERSION_YET,
+   PHP_MODULE_GLOBALS(mbstring),
+   PHP_GINIT(mbstring),
+   PHP_GSHUTDOWN(mbstring),
+   NULL,
STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
@@ -2899,7 +2899,7 @@
if (_from_encodings) {
list = NULL;
size = 0;
-   php_mb_parse_encoding_list(_from_encodings, 
strlen(_from_encodings), &list, &size, 0 TSRMLS_CC);
+   php_mb_parse_encoding_list(_from_encodings, 
strlen(_from_encodings), &list, &size, 0 TSRMLS_CC);
if (size == 1) {
from_encoding = *list;
string.no_encoding = from_encoding->no_encoding;
@@ -3948,9 +3948,9 @@
mbfl_string orig_str, conv_str;
mbfl_string *pstr;  /* pointer to mbfl string for return value */
enum mbfl_no_encoding
-   tran_cs,/* transfar text charset */
-   head_enc,   /* header transfar encoding */
-   body_enc;   /* body transfar encoding */
+   tran_cs,/* transfar text charset */
+   head_enc,   /* header transfar encoding */
+   body_enc;   /* body transfar encoding */
mbfl_memory_device device;  /* automatic allocateable buffer for 
additional header */
const mbfl_language *lang;
int err = 0;
@@ -3958,7 +3958,7 @@
smart_str *s;
extern void mbfl_memory_device_unput(mbfl_memory_device *device);
char *pp, *ee;
-
+
/* initialize */
mbfl_memory_device_init(&device, 0, 0);
mbfl_string_init(&orig_str);
@@ -4057,15 +4057,15 @@

/* To: */
if (to != NULL) {
-if (to_len > 0) {
-to_r = estrndup(to, to_len);
-for (; to_len; to_len--) {
-if (!isspace((unsigned char) to_r[to_len - 1])) {
-break;
-}
-to_r[to_len - 1] = '\0';
-}
-for (i = 0; to_r[i]; i++) {
+   if (to_len > 0) {
+   to_r = estrndup(to, to_len);
+   for (; to_len; to_len--) {
+   if (!isspace((unsigned char) to_r[to_len - 1])) 
{
+   break;
+   }
+   to_r[to_len - 1] = '\0';
+   }
+   for (i = 0; to_r[i]; i++) {
if (iscntrl((unsigned char) to_r[i])) {
/* According to RFC 822, section 3.1.1 long 
headers may be separated into
 * parts using CRLF followed at least one 
linear-white-space character ('\t' or ' ').
@@ -4075,11 +4075,11 @@
SKIP_LONG_HEADER_SEP_MBSTRING(to_r, i);
to_r[i] = ' ';
}
-}
-} else {
-to_r = to;
-}
-} else {
+   }
+   } else {
+   to_r = to;
+   }
+   } else {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Missing To: 
field");
err = 1;
}

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

[PHP-CVS] svn: /php/php-src/trunk/Zend/ zend_multibyte.c

2010-12-19 Thread Moriyoshi Koizumi
moriyoshiSun, 19 Dec 2010 17:29:21 +

Revision: http://svn.php.net/viewvc?view=revision&revision=306460

Log:
WS

Changed paths:
U   php/php-src/trunk/Zend/zend_multibyte.c

Modified: php/php-src/trunk/Zend/zend_multibyte.c
===
--- php/php-src/trunk/Zend/zend_multibyte.c 2010-12-19 17:28:57 UTC (rev 
306459)
+++ php/php-src/trunk/Zend/zend_multibyte.c 2010-12-19 17:29:21 UTC (rev 
306460)
@@ -32,7 +32,7 @@

 static const char *dummy_encoding_name_getter(const zend_encoding *encoding)
 {
-return NULL;
+   return NULL;
 }

 static int dummy_encoding_lexer_compatibility_checker(const zend_encoding 
*encoding)
@@ -66,9 +66,9 @@
 }

 static zend_multibyte_functions multibyte_functions = {
-NULL,
+   NULL,
dummy_encoding_fetcher,
-dummy_encoding_name_getter,
+   dummy_encoding_name_getter,
dummy_encoding_lexer_compatibility_checker,
dummy_encoding_detector,
dummy_encoding_converter,
@@ -120,7 +120,7 @@

 ZEND_API const zend_multibyte_functions *zend_multibyte_get_functions(TSRMLS_D)
 {
-return multibyte_functions.provider_name ? &multibyte_functions: NULL;
+   return multibyte_functions.provider_name ? &multibyte_functions: NULL;
 }

 ZEND_API const zend_encoding *zend_multibyte_fetch_encoding(const char *name 
TSRMLS_DC)
@@ -216,11 +216,11 @@

 ZEND_API size_t zend_multibyte_internal_encoding_filter(unsigned char **to, 
size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
 {
-const zend_encoding *internal_encoding = 
zend_multibyte_get_internal_encoding(TSRMLS_C);
+   const zend_encoding *internal_encoding = 
zend_multibyte_get_internal_encoding(TSRMLS_C);
const zend_encoding *script_encoding = LANG_SCNG(script_encoding);
-if (!internal_encoding || 
!zend_multibyte_check_lexer_compatibility(internal_encoding)) {
+   if (!internal_encoding || 
!zend_multibyte_check_lexer_compatibility(internal_encoding)) {
internal_encoding = zend_multibyte_encoding_utf8;
-}
+   }
if (!zend_multibyte_check_lexer_compatibility(script_encoding)) {
script_encoding = zend_multibyte_encoding_utf8;
}

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

[PHP-CVS] svn: /php/php-src/trunk/Zend/ zend_multibyte.c

2010-12-19 Thread Moriyoshi Koizumi
moriyoshiMon, 20 Dec 2010 03:11:41 +

Revision: http://svn.php.net/viewvc?view=revision&revision=306485

Log:
- Fix a bug that the script gets wrongly converted into UTF-8 when the script 
encoding is not GL-safe.

Changed paths:
U   php/php-src/trunk/Zend/zend_multibyte.c

Modified: php/php-src/trunk/Zend/zend_multibyte.c
===
--- php/php-src/trunk/Zend/zend_multibyte.c 2010-12-20 02:19:31 UTC (rev 
306484)
+++ php/php-src/trunk/Zend/zend_multibyte.c 2010-12-20 03:11:41 UTC (rev 
306485)
@@ -217,15 +217,11 @@
 ZEND_API size_t zend_multibyte_internal_encoding_filter(unsigned char **to, 
size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
 {
const zend_encoding *internal_encoding = 
zend_multibyte_get_internal_encoding(TSRMLS_C);
-   const zend_encoding *script_encoding = LANG_SCNG(script_encoding);
if (!internal_encoding || 
!zend_multibyte_check_lexer_compatibility(internal_encoding)) {
internal_encoding = zend_multibyte_encoding_utf8;
}
-   if (!zend_multibyte_check_lexer_compatibility(script_encoding)) {
-   script_encoding = zend_multibyte_encoding_utf8;
-   }
return zend_multibyte_encoding_converter(to, to_length, from, 
from_length,
-script_encoding, internal_encoding TSRMLS_CC);
+LANG_SCNG(script_encoding), internal_encoding TSRMLS_CC);
 }

 /*

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

[PHP-CVS] svn: /php/php-src/trunk/Zend/ zend_language_scanner.h zend_language_scanner.l

2010-12-19 Thread Moriyoshi Koizumi
moriyoshiMon, 20 Dec 2010 03:16:09 +

Revision: http://svn.php.net/viewvc?view=revision&revision=306486

Log:
- Avoid allocating extra buffers. This makes parsing with zend.multibyte 
enabled as fast as with it disabled.

Changed paths:
U   php/php-src/trunk/Zend/zend_language_scanner.h
U   php/php-src/trunk/Zend/zend_language_scanner.l

Modified: php/php-src/trunk/Zend/zend_language_scanner.h
===
--- php/php-src/trunk/Zend/zend_language_scanner.h	2010-12-20 03:11:41 UTC (rev 306485)
+++ php/php-src/trunk/Zend/zend_language_scanner.h	2010-12-20 03:16:09 UTC (rev 306486)
@@ -56,9 +56,7 @@
 ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC);
 ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC);
 ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC);
-ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC);
 ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC);
-ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC);
 ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding TSRMLS_DC);

 END_EXTERN_C()

Modified: php/php-src/trunk/Zend/zend_language_scanner.l
===
--- php/php-src/trunk/Zend/zend_language_scanner.l	2010-12-20 03:11:41 UTC (rev 306485)
+++ php/php-src/trunk/Zend/zend_language_scanner.l	2010-12-20 03:16:09 UTC (rev 306486)
@@ -207,10 +207,6 @@
 	CG(zend_lineno) = lex_state->lineno;
 	zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);

-	if (SCNG(script_org)) {
-		efree(SCNG(script_org));
-		SCNG(script_org) = NULL;
-	}
 	if (SCNG(script_filtered)) {
 		efree(SCNG(script_filtered));
 		SCNG(script_filtered) = NULL;
@@ -462,31 +458,23 @@

 	if (size != -1) {
 		if (CG(multibyte)) {
-			if (zend_multibyte_read_script((unsigned char *)buf, size TSRMLS_CC) != 0) {
-return FAILURE;
-			}
+			SCNG(script_org) = buf;
+			SCNG(script_org_size) = n;
+			SCNG(script_filtered) = NULL;

-			SCNG(yy_in) = NULL;
-
 			zend_multibyte_set_filter(NULL TSRMLS_CC);

-			if (!SCNG(input_filter)) {
-SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);
-memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
-SCNG(script_filtered_size) = SCNG(script_org_size);
-			} else {
-SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
-if (SCNG(script_filtered) == NULL) {
+			if (SCNG(input_filter)) {
+if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
 	zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
 			"encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
 }
+buf = SCNG(script_filtered);
+size = SCNG(script_filtered_size);
 			}
-			SCNG(yy_start) = SCNG(script_filtered) - offset;
-			yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);
-		} else {
-			SCNG(yy_start) = (unsigned char *)buf - offset;
-			yy_scan_buffer(buf, size TSRMLS_CC);
 		}
+		SCNG(yy_start) = (unsigned char *)buf - offset;
+		yy_scan_buffer(buf, size TSRMLS_CC);
 	} else {
 		zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
 	}
@@ -615,6 +603,9 @@

 ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
 {
+	char *buf;
+	size_t size;
+
 	/* enforce two trailing NULLs for flex... */
 	if (IS_INTERNED(str->value.str.val)) {
 		char *tmp = safe_emalloc(1, str->value.str.len, ZEND_MMAP_AHEAD);
@@ -626,28 +617,31 @@

 	memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);

-	SCNG(yy_in)=NULL;
+	SCNG(yy_in) = NULL;
 	SCNG(yy_start) = NULL;

+	buf = str->value.str.val;
+	size = str->value.str.len;
+
 	if (CG(multibyte)) {
-		SCNG(script_org) = (unsigned char *)estrdup(str->value.str.val);
-		SCNG(script_org_size) = str->value.str.len;
+		SCNG(script_org) = buf;
+		SCNG(script_org_size) = size;
+		SCNG(script_filtered) = NULL;

 		zend_multibyte_set_filter(zend_multibyte_get_internal_encoding(TSRMLS_C) TSRMLS_CC);

-		if (!SCNG(input_filter)) {
-			SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);
-			memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
-			SCNG(script_filtered_size) = SCNG(script_org_size);
-		} else {
-			SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
+		if (SCNG(input_filter)) {
+			if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script

[PHP-CVS] svn: /php/php-src/trunk/ php.ini-development php.ini-production

2010-12-20 Thread Moriyoshi Koizumi
moriyoshiTue, 21 Dec 2010 06:57:46 +

Revision: http://svn.php.net/viewvc?view=revision&revision=306535

Log:
- Update ini descriptions.  It is still possible that zend.multibyte will be 
removed in the near future as it is confirmed to not impose any significant 
overhead with the standard configuration even when it is enabled.

Changed paths:
U   php/php-src/trunk/php.ini-development
U   php/php-src/trunk/php.ini-production

Modified: php/php-src/trunk/php.ini-development
===
--- php/php-src/trunk/php.ini-development   2010-12-21 05:49:13 UTC (rev 
306534)
+++ php/php-src/trunk/php.ini-development   2010-12-21 06:57:46 UTC (rev 
306535)
@@ -352,6 +352,18 @@
 ; http://php.net/realpath-cache-ttl
 ;realpath_cache_ttl = 120

+; If enabled, scripts may be written in encodings that are incompatible with
+; the scanner.  CP936, Big5, CP949 and Shift_JIS are the examples of such
+; encodings.  To use this feature, mbstring extension must be enabled.
+; Default: Off
+;zend.multibyte = Off
+
+; Allows to set the default encoding for the scripts.  This value will be used
+; unless "declare(encoding=...)" directive appears at the top of the script.
+; Only affects if zend.multibyte is set.
+; Default: ""
+;zend.script_encoding =
+
 ;
 ; Miscellaneous ;
 ;
@@ -1734,10 +1746,6 @@
 ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
 ;mbstring.http_output_conv_mimetype=

-; Allows to set script encoding. Only affects if PHP is compiled with 
--enable-zend-multibyte
-; Default: ""
-;mbstring.script_encoding=
-
 [gd]
 ; Tell the jpeg decode to ignore warnings and try to create
 ; a gd image. The warning will then be displayed as notices

Modified: php/php-src/trunk/php.ini-production
===
--- php/php-src/trunk/php.ini-production2010-12-21 05:49:13 UTC (rev 
306534)
+++ php/php-src/trunk/php.ini-production2010-12-21 06:57:46 UTC (rev 
306535)
@@ -352,6 +352,18 @@
 ; http://php.net/realpath-cache-ttl
 ;realpath_cache_ttl = 120

+; If enabled, scripts may be written in encodings that are incompatible with
+; the scanner.  CP936, Big5, CP949 and Shift_JIS are the examples of such
+; encodings.  To use this feature, mbstring extension must be enabled.
+; Default: Off
+;zend.multibyte = Off
+
+; Allows to set the default encoding for the scripts.  This value will be used
+; unless "declare(encoding=...)" directive appears at the top of the script.
+; Only affects if zend.multibyte is set.
+; Default: ""
+;zend.script_encoding =
+
 ;
 ; Miscellaneous ;
 ;
@@ -1730,10 +1742,6 @@
 ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
 ;mbstring.http_output_conv_mimetype=

-; Allows to set script encoding. Only affects if PHP is compiled with 
--enable-zend-multibyte
-; Default: ""
-;mbstring.script_encoding=
-
 [gd]
 ; Tell the jpeg decode to ignore warnings and try to create
 ; a gd image. The warning will then be displayed as notices

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

Re: [PHP-CVS] svn: /php/php-src/trunk/ Zend/zend.c Zend/zend_compile.c Zend/zend_globals.h Zend/zend_language_scanner.c Zend/zend_language_scanner.h Zend/zend_language_scanner.l Zend/zend_language_sca

2010-12-22 Thread Moriyoshi Koizumi
Okay, I'm gonna take a look into it.  Thanks.

Moriyoshi

On Tue, Dec 21, 2010 at 10:39 PM, Antony Dovgal  wrote:
> To reproduce, use the following configure line:
> ./configure --enable-exif
>
> On 12/21/2010 12:34 PM, Antony Dovgal wrote:
>> ext/exif doesn't compile after this patch because of this:
>>
>> ext/exif/exif.o: In function `OnUpdateEncode':
>> /local/qa/HEAD_non-ZTS/ext/exif/exif.c:169: undefined reference to 
>> `zend_multibyte_check_encoding_list'
>> ext/exif/exif.o: In function `OnUpdateDecode':
>> /local/qa/HEAD_non-ZTS/ext/exif/exif.c:178: undefined reference to 
>> `zend_multibyte_check_encoding_list'
>>
>> And if I change the code to use zend_multibyte_fetch_encoding(), the error 
>> messages are back:
>> ./sapi/cli/php -v
>> PHP Warning:  PHP Startup: Illegal encoding ignored: 'ISO-8859-15' in 
>> Unknown on line 0
>> PHP Warning:  PHP Startup: Illegal encoding ignored: 'UCS-2BE' in Unknown on 
>> line 0
>> PHP Warning:  PHP Startup: Illegal encoding ignored: 'UCS-2LE' in Unknown on 
>> line 0
>> PHP Warning:  PHP Startup: Illegal encoding ignored: 'JIS' in Unknown on 
>> line 0
>> PHP Warning:  PHP Startup: Illegal encoding ignored: 'JIS' in Unknown on 
>> line 0
>> PHP 5.3.99-dev (cli) (built: Dec 21 2010 00:21:28) (DEBUG)
>> Copyright (c) 1997-2010 The PHP Group
>> Zend Engine v2.4.0, Copyright (c) 1998-2010 Zend Technologies
>
> --
> Wbr,
> Antony Dovgal
> ---
> http://pinba.org - realtime statistics for PHP
>

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



[PHP-CVS] svn: /php/php-src/trunk/ext/exif/ exif.c

2010-12-22 Thread Moriyoshi Koizumi
moriyoshiWed, 22 Dec 2010 10:25:33 +

Revision: http://svn.php.net/viewvc?view=revision&revision=306572

Log:
- Fix build.

Changed paths:
U   php/php-src/trunk/ext/exif/exif.c

Modified: php/php-src/trunk/ext/exif/exif.c
===
--- php/php-src/trunk/ext/exif/exif.c   2010-12-22 06:50:39 UTC (rev 306571)
+++ php/php-src/trunk/ext/exif/exif.c   2010-12-22 10:25:33 UTC (rev 306572)
@@ -166,18 +166,30 @@

 ZEND_INI_MH(OnUpdateEncode)
 {
-   if (new_value && strlen(new_value) && 
!zend_multibyte_check_encoding_list(new_value TSRMLS_CC)) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal encoding 
ignored: '%s'", new_value);
-   return FAILURE;
+   if (new_value && new_value_length) {
+   const zend_encoding **return_list;
+   size_t return_size;
+   if (FAILURE == zend_multibyte_parse_encoding_list(new_value, 
new_value_length,
+   &return_list, &return_size, 0 TSRMLS_CC)) {
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal 
encoding ignored: '%s'", new_value);
+   return FAILURE;
+   }
+   efree(return_list);
}
return OnUpdateString(entry, new_value, new_value_length, mh_arg1, 
mh_arg2, mh_arg3, stage TSRMLS_CC);
 }

 ZEND_INI_MH(OnUpdateDecode)
 {
-   if (!zend_multibyte_check_encoding_list(new_value TSRMLS_CC)) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal encoding 
ignored: '%s'", new_value);
-   return FAILURE;
+   if (new_value) {
+   const zend_encoding **return_list;
+   size_t return_size;
+   if (FAILURE == zend_multibyte_parse_encoding_list(new_value, 
new_value_length,
+   &return_list, &return_size, 0 TSRMLS_CC)) {
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal 
encoding ignored: '%s'", new_value);
+   return FAILURE;
+   }
+   efree(return_list);
}
return OnUpdateString(entry, new_value, new_value_length, mh_arg1, 
mh_arg2, mh_arg3, stage TSRMLS_CC);
 }

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

[PHP-CVS] svn: /php/php-src/trunk/Zend/ zend_multibyte.c

2010-12-24 Thread Moriyoshi Koizumi
moriyoshiFri, 24 Dec 2010 08:42:21 +

Revision: http://svn.php.net/viewvc?view=revision&revision=306613

Log:
- Fix startup warnings.

Changed paths:
U   php/php-src/trunk/Zend/zend_multibyte.c

Modified: php/php-src/trunk/Zend/zend_multibyte.c
===
--- php/php-src/trunk/Zend/zend_multibyte.c 2010-12-24 08:38:27 UTC (rev 
306612)
+++ php/php-src/trunk/Zend/zend_multibyte.c 2010-12-24 08:42:21 UTC (rev 
306613)
@@ -52,7 +52,9 @@

 static int dummy_encoding_list_parser(const char *encoding_list, size_t 
encoding_list_len, const zend_encoding ***return_list, size_t *return_size, int 
persistent TSRMLS_DC)
 {
-   return FAILURE;
+   *return_list = pemalloc(0, persistent);
+   return_size = 0;
+   return SUCCESS;
 }

 static const zend_encoding *dummy_internal_encoding_getter(TSRMLS_D)

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

[PHP-CVS] svn: /php/php-src/trunk/win32/build/ Makefile config.w32

2011-03-01 Thread Moriyoshi Koizumi
moriyoshiWed, 02 Mar 2011 05:22:22 +

Revision: http://svn.php.net/viewvc?view=revision&revision=308839

Log:
- Enable windows build system to accept paths containing spaces.

Changed paths:
U   php/php-src/trunk/win32/build/Makefile
U   php/php-src/trunk/win32/build/config.w32

Modified: php/php-src/trunk/win32/build/Makefile
===
--- php/php-src/trunk/win32/build/Makefile  2011-03-02 03:59:38 UTC (rev 
308838)
+++ php/php-src/trunk/win32/build/Makefile  2011-03-02 05:22:22 UTC (rev 
308839)
@@ -93,7 +93,7 @@
@cd $(BUILD_DIR)
@for %D in ($(BUILD_DIRS_SUB)) do @if not exist %D @mkdir %D > NUL
@if not exist $(BUILD_DIR_DEV) @mkdir $(BUILD_DIR_DEV) > NUL
-   @cd $(PHP_SRC_DIR)
+   @cd "$(PHP_SRC_DIR)"


 clean-sapi:
@@ -107,7 +107,7 @@
@echo Cleaning distribution build dirs
@cd $(BUILD_DIR)
@for %D in (_x $(BUILD_DIRS_SUB)) do @if exist %D @del /F /Q %D\*.* > 
NUL
-   @cd $(PHP_SRC_DIR)
+   @cd "$(PHP_SRC_DIR)"
-@del /F /Q $(BUILD_DIR)\*.res $(BUILD_DIR)\*.lib $(BUILD_DIR)\*.ilk 
$(BUILD_DIR)\*.pdb $(BUILD_DIR)\*.exp $(PHPDEF) 
$(BUILD_DIR)\php-$(PHP_VERSION_STRING)-Win32.zip 
$(BUILD_DIR)\pecl-$(PHP_VERSION_STRING)-Win32.zip > NUL
-rd /s /q $(BUILD_DIR)\php-$(PHP_VERSION_STRING)

@@ -119,7 +119,7 @@
@echo Cleaning standard build dirs
@cd $(BUILD_DIR)
@for %D in (_x $(BUILD_DIRS_SUB)) do @if exist %D @rd /s /q %D
-   @cd $(PHP_SRC_DIR)
+   @cd "$(PHP_SRC_DIR)"
-@del /f /q $(BUILD_DIR)\*.res $(BUILD_DIR)\*.lib $(BUILD_DIR)\*.ilk 
$(BUILD_DIR)\*.pdb $(BUILD_DIR)\*.exp $(PHPDEF) $(BUILD_DIR)\*.rc 
$(BUILD_DIR)\*.dbg $(BUILD_DIR)\*.bin $(BUILD_DIR)\php*.dll 
$(BUILD_DIR)\php*.exe > NUL

 test:

Modified: php/php-src/trunk/win32/build/config.w32
===
--- php/php-src/trunk/win32/build/config.w322011-03-02 03:59:38 UTC (rev 
308838)
+++ php/php-src/trunk/win32/build/config.w322011-03-02 05:22:22 UTC (rev 
308839)
@@ -271,7 +271,7 @@
 var php_usual_lib_suspects = PHP_PHP_BUILD+"\\lib";

 ADD_FLAG("CFLAGS", '/I "' + php_usual_include_suspects + '" ');
-ADD_FLAG("LDFLAGS", '/libpath:"\\"' + php_usual_lib_suspects + '\\"" ');
+ADD_FLAG("LDFLAGS", '/libpath:"' + php_usual_lib_suspects + '" ');

 // Poke around for some headers
 function probe_basic_headers()

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

[PHP-CVS] svn: /php/php-src/branches/PHP_5_3/win32/build/ Makefile config.w32

2011-03-02 Thread Moriyoshi Koizumi
moriyoshiWed, 02 Mar 2011 18:35:10 +

Revision: http://svn.php.net/viewvc?view=revision&revision=308863

Log:
- Merge from trunk.

Changed paths:
U   php/php-src/branches/PHP_5_3/win32/build/Makefile
U   php/php-src/branches/PHP_5_3/win32/build/config.w32

Modified: php/php-src/branches/PHP_5_3/win32/build/Makefile
===
--- php/php-src/branches/PHP_5_3/win32/build/Makefile   2011-03-02 18:08:27 UTC 
(rev 308862)
+++ php/php-src/branches/PHP_5_3/win32/build/Makefile   2011-03-02 18:35:10 UTC 
(rev 308863)
@@ -93,7 +93,7 @@
@cd $(BUILD_DIR)
@for %D in ($(BUILD_DIRS_SUB)) do @if not exist %D @mkdir %D > NUL
@if not exist $(BUILD_DIR_DEV) @mkdir $(BUILD_DIR_DEV) > NUL
-   @cd $(PHP_SRC_DIR)
+   @cd "$(PHP_SRC_DIR)"


 clean-sapi:
@@ -107,7 +107,7 @@
@echo Cleaning distribution build dirs
@cd $(BUILD_DIR)
@for %D in (_x $(BUILD_DIRS_SUB)) do @if exist %D @del /F /Q %D\*.* > 
NUL
-   @cd $(PHP_SRC_DIR)
+   @cd "$(PHP_SRC_DIR)"
-@del /F /Q $(BUILD_DIR)\*.res $(BUILD_DIR)\*.lib $(BUILD_DIR)\*.ilk 
$(BUILD_DIR)\*.pdb $(BUILD_DIR)\*.exp $(PHPDEF) 
$(BUILD_DIR)\php-$(PHP_VERSION_STRING)-Win32.zip 
$(BUILD_DIR)\pecl-$(PHP_VERSION_STRING)-Win32.zip > NUL
-rd /s /q $(BUILD_DIR)\php-$(PHP_VERSION_STRING)

@@ -119,7 +119,7 @@
@echo Cleaning standard build dirs
@cd $(BUILD_DIR)
@for %D in (_x $(BUILD_DIRS_SUB)) do @if exist %D @rd /s /q %D
-   @cd $(PHP_SRC_DIR)
+   @cd "$(PHP_SRC_DIR)"
-@del /f /q $(BUILD_DIR)\*.res $(BUILD_DIR)\*.lib $(BUILD_DIR)\*.ilk 
$(BUILD_DIR)\*.pdb $(BUILD_DIR)\*.exp $(PHPDEF) $(BUILD_DIR)\*.rc 
$(BUILD_DIR)\*.dbg $(BUILD_DIR)\*.bin $(BUILD_DIR)\php*.dll 
$(BUILD_DIR)\php*.exe > NUL

 test:

Modified: php/php-src/branches/PHP_5_3/win32/build/config.w32
===
--- php/php-src/branches/PHP_5_3/win32/build/config.w32 2011-03-02 18:08:27 UTC 
(rev 308862)
+++ php/php-src/branches/PHP_5_3/win32/build/config.w32 2011-03-02 18:35:10 UTC 
(rev 308863)
@@ -266,7 +266,7 @@
 var php_usual_lib_suspects = PHP_PHP_BUILD+"\\lib";

 ADD_FLAG("CFLAGS", '/I "' + php_usual_include_suspects + '" ');
-ADD_FLAG("LDFLAGS", '/libpath:"\\"' + php_usual_lib_suspects + '\\"" ');
+ADD_FLAG("LDFLAGS", '/libpath:"' + php_usual_lib_suspects + '" ');

 // Poke around for some headers
 function probe_basic_headers()

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

Re: [PHP-CVS] svn: /php/php-src/trunk/win32/build/ Makefile config.w32

2011-03-02 Thread Moriyoshi Koizumi
Hi,

On Wed, Mar 2, 2011 at 5:58 PM, Pierre Joye  wrote:
> hi,
>
> Please merge to 5.3

Done.

>
> On Wed, Mar 2, 2011 at 6:22 AM, Moriyoshi Koizumi  wrote:
>> moriyoshi                                Wed, 02 Mar 2011 05:22:22 +
>
>> Modified: php/php-src/trunk/win32/build/config.w32
>> ===
>> --- php/php-src/trunk/win32/build/config.w32    2011-03-02 03:59:38 UTC (rev 
>> 308838)
>> +++ php/php-src/trunk/win32/build/config.w32    2011-03-02 05:22:22 UTC (rev 
>> 308839)
>> @@ -271,7 +271,7 @@
>>  var php_usual_lib_suspects = PHP_PHP_BUILD+"\\lib";
>>
>>  ADD_FLAG("CFLAGS", '/I "' + php_usual_include_suspects + '" ');
>> -ADD_FLAG("LDFLAGS", '/libpath:"\\"' + php_usual_lib_suspects + '\\"" ');
>> +ADD_FLAG("LDFLAGS", '/libpath:"' + php_usual_lib_suspects + '" ');
>
> Why this change?

The library path needs to be quoted just once. It appears old compiler
frontends (VC6, 7?) used to have a bug with which arguments to the
linker containing whitespaces weren't properly dealt with.

Regards,
Moriyoshi

>
> Cheers,
> --
> Pierre
>
> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

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



Re: [PHP-CVS] svn: /php/php-src/trunk/win32/build/ Makefile config.w32

2011-03-02 Thread Moriyoshi Koizumi
On Thu, Mar 3, 2011 at 3:42 AM, Pierre Joye  wrote:
> hi,
>
> On Wed, Mar 2, 2011 at 7:35 PM, Moriyoshi Koizumi  wrote:
>> The library path needs to be quoted just once. It appears old compiler
>> frontends (VC6, 7?) used to have a bug with which arguments to the
>> linker containing whitespaces weren't properly dealt with.
>
> Did you test this specific change with VC6?

Not yet, but trunk only supports VC9 or later versions.  Is it really
necessary for 5.3 to support VC6?

Regards,
Moriyoshi

>
> Cheers
> --
> Pierre
>
> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org
>

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



[PHP-CVS] svn: /php/php-src/trunk/ ext/mbstring/mbstring.c main/rfc1867.c

2011-03-05 Thread Moriyoshi Koizumi
moriyoshiSun, 06 Mar 2011 07:06:55 +

Revision: http://svn.php.net/viewvc?view=revision&revision=308951

Log:
Fix ZTS build.

Changed paths:
U   php/php-src/trunk/ext/mbstring/mbstring.c
U   php/php-src/trunk/main/rfc1867.c

Modified: php/php-src/trunk/ext/mbstring/mbstring.c
===
--- php/php-src/trunk/ext/mbstring/mbstring.c   2011-03-06 07:00:30 UTC (rev 
308950)
+++ php/php-src/trunk/ext/mbstring/mbstring.c   2011-03-06 07:06:55 UTC (rev 
308951)
@@ -1132,14 +1132,14 @@
char quote = *str;

str++;
-   return php_mb_rfc1867_substring_conf(encoding, str, 
strlen(str), quote);
+   return php_mb_rfc1867_substring_conf(encoding, str, 
strlen(str), quote TSRMLS_CC);
} else {
char *strend = str;

while (*strend && !isspace(*(unsigned char *)strend)) {
++strend;
}
-   return php_mb_rfc1867_substring_conf(encoding, str, strend - 
str, 0);
+   return php_mb_rfc1867_substring_conf(encoding, str, strend - 
str, 0 TSRMLS_CC);
}
 }
 /* }}} */
@@ -1154,8 +1154,8 @@
 * the full path of the file on the user's filesystem, which means that 
unless
 * the user does basename() they get a bogus file name. Until IE's user 
base drops
 * to nill or problem is fixed this code must remain enabled for all 
systems. */
-   s = php_mb_safe_strrchr_ex(filename, '\\', filename_len, (const 
mbfl_encoding *)encoding TSRMLS_CC);
-   if ((tmp = php_mb_safe_strrchr_ex(filename, '/', filename_len, (const 
mbfl_encoding *)encoding TSRMLS_CC)) > s) {
+   s = php_mb_safe_strrchr_ex(filename, '\\', filename_len, (const 
mbfl_encoding *)encoding);
+   if ((tmp = php_mb_safe_strrchr_ex(filename, '/', filename_len, (const 
mbfl_encoding *)encoding)) > s) {
s = tmp;
}
if (s) {

Modified: php/php-src/trunk/main/rfc1867.c
===
--- php/php-src/trunk/main/rfc1867.c2011-03-06 07:00:30 UTC (rev 308950)
+++ php/php-src/trunk/main/rfc1867.c2011-03-06 07:06:55 UTC (rev 308951)
@@ -743,7 +743,7 @@
}

/* Initialize the buffer */
-   if (!(mbuff = multipart_buffer_new(boundary, boundary_len))) {
+   if (!(mbuff = multipart_buffer_new(boundary, boundary_len TSRMLS_CC))) {
sapi_module.sapi_error(E_WARNING, "Unable to initialize the 
input buffer");
return;
}

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/config.m4 branches/PHP_5_4/sapi/cli/config.w32 branches/PHP_5_4/sapi/cli/php_cli.c branches/PHP_5_4/sapi/cli/php_cli_server.c branches/PHP_5_4/sa

2011-06-20 Thread Moriyoshi Koizumi
moriyoshiMon, 20 Jun 2011 20:27:39 +

Revision: http://svn.php.net/viewvc?view=revision&revision=312344

Log:
- Add built-in web server to CLI SAPI. See the RFC for detail.

Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/config.m4
U   php/php-src/branches/PHP_5_4/sapi/cli/config.w32
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli.c
A   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
A   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.h
A   php/php-src/branches/PHP_5_4/sapi/cli/php_http_parser.c
A   php/php-src/branches/PHP_5_4/sapi/cli/php_http_parser.h
U   php/php-src/trunk/sapi/cli/config.m4
U   php/php-src/trunk/sapi/cli/config.w32
U   php/php-src/trunk/sapi/cli/php_cli.c
A   php/php-src/trunk/sapi/cli/php_cli_server.c
A   php/php-src/trunk/sapi/cli/php_cli_server.h
A   php/php-src/trunk/sapi/cli/php_http_parser.c
A   php/php-src/trunk/sapi/cli/php_http_parser.h


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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/NEWS branches/PHP_5_4/main/network.c branches/PHP_5_4/main/php_main.h branches/PHP_5_4/main/php_network.h trunk/main/network.c trunk/main/php_main.h trunk

2011-06-20 Thread Moriyoshi Koizumi
moriyoshiMon, 20 Jun 2011 20:30:36 +

Revision: http://svn.php.net/viewvc?view=revision&revision=312345

Log:
- Forgot to commit these.

Changed paths:
U   php/php-src/branches/PHP_5_4/NEWS
U   php/php-src/branches/PHP_5_4/main/network.c
U   php/php-src/branches/PHP_5_4/main/php_main.h
U   php/php-src/branches/PHP_5_4/main/php_network.h
U   php/php-src/trunk/main/network.c
U   php/php-src/trunk/main/php_main.h
U   php/php-src/trunk/main/php_network.h

Modified: php/php-src/branches/PHP_5_4/NEWS
===
--- php/php-src/branches/PHP_5_4/NEWS   2011-06-20 20:27:39 UTC (rev 312344)
+++ php/php-src/branches/PHP_5_4/NEWS   2011-06-20 20:30:36 UTC (rev 312345)
@@ -112,15 +112,17 @@
 instruction without previous ZEND_FETCH_CLASS.
   . zend_stack and zend_ptr_stack allocation is delayed until actual usage.

-- Improved CLI SAPI: (Johannes)
+- Improved CLI SAPI: (Johannes, Moriyoshi)
   . Added command line option --rz  which shows information of the
-named Zend extension.
-  . Interactive readline shell improvements:
+named Zend extension. (Johannes)
+  . Interactive readline shell improvements: (Johannes)
 . Added "cli.pager" php.ini setting to set a pager for output.
 . Added "cli.prompt" php.ini setting to configure the shell prompt.
 . Added shortcut #inisetting=value to change ini settings at run-time.
 . Changed shell not to terminate on fatal errors.
 . Interactive shell works with shared readline extension. FR #53878.
+  . Added built-in web server that is intended for testing purpose.
+(Moriyoshi)

 - Improved FastCGI SAPI: (Dmitry)
   . Added apache compatible functions: apache_child_terminate(),

Modified: php/php-src/branches/PHP_5_4/main/network.c
===
--- php/php-src/branches/PHP_5_4/main/network.c 2011-06-20 20:27:39 UTC (rev 
312344)
+++ php/php-src/branches/PHP_5_4/main/network.c 2011-06-20 20:30:36 UTC (rev 
312345)
@@ -148,7 +148,7 @@

 /* {{{ php_network_freeaddresses
  */
-static void php_network_freeaddresses(struct sockaddr **sal)
+PHPAPI void php_network_freeaddresses(struct sockaddr **sal)
 {
struct sockaddr **sap;

@@ -163,7 +163,7 @@
 /* {{{ php_network_getaddresses
  * Returns number of addresses, 0 for none/error
  */
-static int php_network_getaddresses(const char *host, int socktype, struct 
sockaddr ***sal, char **error_string TSRMLS_DC)
+PHPAPI int php_network_getaddresses(const char *host, int socktype, struct 
sockaddr ***sal, char **error_string TSRMLS_DC)
 {
struct sockaddr **sap;
int n;

Modified: php/php-src/branches/PHP_5_4/main/php_main.h
===
--- php/php-src/branches/PHP_5_4/main/php_main.h2011-06-20 20:27:39 UTC 
(rev 312344)
+++ php/php-src/branches/PHP_5_4/main/php_main.h2011-06-20 20:30:36 UTC 
(rev 312345)
@@ -35,6 +35,7 @@
 PHPAPI void php_module_shutdown_for_exec(void);
 PHPAPI int php_module_shutdown_wrapper(sapi_module_struct *sapi_globals);
 PHPAPI int php_request_startup_for_hook(TSRMLS_D);
+PHPAPI void php_request_shutdown_for_hook(void *dummy);

 PHPAPI int php_register_extensions(zend_module_entry **ptr, int count 
TSRMLS_DC);


Modified: php/php-src/branches/PHP_5_4/main/php_network.h
===
--- php/php-src/branches/PHP_5_4/main/php_network.h 2011-06-20 20:27:39 UTC 
(rev 312344)
+++ php/php-src/branches/PHP_5_4/main/php_network.h 2011-06-20 20:30:36 UTC 
(rev 312345)
@@ -194,10 +194,12 @@
 /* it is safe to FD_SET too many fd's under win32; the macro will simply ignore
  * descriptors that go beyond the default FD_SETSIZE */
 # define PHP_SAFE_FD_SET(fd, set)  FD_SET(fd, set)
+# define PHP_SAFE_FD_CLR(fd, set)  FD_CLR(fd, set)
 # define PHP_SAFE_FD_ISSET(fd, set)FD_ISSET(fd, set)
 # define PHP_SAFE_MAX_FD(m, n) do { if (n + 1 >= FD_SETSIZE) { 
_php_emit_fd_setsize_warning(n); }} while(0)
 #else
 # define PHP_SAFE_FD_SET(fd, set)  do { if (fd < FD_SETSIZE) FD_SET(fd, 
set); } while(0)
+# define PHP_SAFE_FD_CLR(fd, set)  do { if (fd < FD_SETSIZE) FD_CLR(fd, 
set); } while(0)
 # define PHP_SAFE_FD_ISSET(fd, set)((fd < FD_SETSIZE) && FD_ISSET(fd, set))
 # define PHP_SAFE_MAX_FD(m, n) do { if (m >= FD_SETSIZE) { 
_php_emit_fd_setsize_warning(m); m = FD_SETSIZE - 1; }} while(0)
 #endif
@@ -220,6 +222,9 @@
 #endif

 BEGIN_EXTERN_C()
+PHPAPI int php_network_getaddresses(const char *host, int socktype, struct 
sockaddr ***sal, char **error_string TSRMLS_DC);
+PHPAPI void php_network_freeaddresses(struct sockaddr **sal);
+
 PHPAPI php_socket_t php_network_connect_socket_to_host(const char *host, 
unsigned short port,
int socktype, int asynchronous, struct timeval *timeout, char 
**error_string,
int *error_code,

Re: [PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/config.m4 branches/PHP_5_4/sapi/cli/config.w32 branches/PHP_5_4/sapi/cli/php_cli.c branches/PHP_5_4/sapi/cli/php_cli_server.c branches/PHP_5_

2011-06-21 Thread Moriyoshi Koizumi
Thanks!

On 2011/06/21, at 8:36, Felipe Pena wrote:

> Fixed.
> 
> 2011/6/20 Johannes Schlüter 
> 
>> Hi,
>> 
>> On Mon, 2011-06-20 at 20:27 +, Moriyoshi Koizumi wrote:
>>> moriyoshiMon, 20 Jun 2011 20:27:39 +
>>> 
>>> Revision: http://svn.php.net/viewvc?view=revision&revision=312344
>>> 
>>> Log:
>>> - Add built-in web server to CLI SAPI. See the RFC for detail.
>> 
>> This broke the -d option. Causing this error on make:
>> 
>> | Generating phar.phar
>> | PEAR package PHP_Archive not installed: generated phar will require
>> | PHP's phar extension be enabled.
>> | Creating phar files is disabled by ini setting 'phar.readonly'.
>> | make: *** [ext/phar/phar.phar] Error 1
>> 
>> which can be reduced to this simple test case:
>> 
>> $ sapi/cli/php -n -d phar.readonly=0 -r 'echo ini_get("phar.readonly");'
>> 1
>> 
>> I see that php_cli.c now handles parsing -d options before calling
>> sapi_startup() whic seems to cause this.
>> 
>> 
>> johannes
>> 
>> 
>> 
>> --
>> PHP CVS Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>> 
>> 
> 
> 
> -- 
> Regards,
> Felipe Pena


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



[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-19 Thread Moriyoshi Koizumi
moriyoshiTue, 19 Jul 2011 17:47:34 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313441

Log:
- Print HTTP method as well in the log.
- Print response code also when the request is processed by a script.
- Those changes partly closes #55109.

Bug: https://bugs.php.net/55109 (Assigned) Friendly log messages
  
Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-19 
16:17:07 UTC (rev 313440)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-19 
17:47:34 UTC (rev 313441)
@@ -1479,7 +1479,7 @@
 static void php_cli_server_close_connection(php_cli_server *server, 
php_cli_server_client *client TSRMLS_DC) /* {{{ */
 {
 #ifdef DEBUG
-   php_cli_server_logf("%s: Closing" TSRMLS_CC, client->addr_str);
+   php_cli_server_logf("%s Closing" TSRMLS_CC, client->addr_str);
 #endif
zend_hash_index_del(&server->clients, client->sock);
 } /* }}} */
@@ -1575,7 +1575,7 @@
php_cli_server_buffer_prepend(&client->content_sender.buffer, 
chunk);
}

-   php_cli_server_logf("%s: %s - Sending error page (%d)" TSRMLS_CC, 
client->addr_str, client->request.request_uri, status);
+   php_cli_server_logf("%s %s %s - Sending error page (%d)" TSRMLS_CC, 
client->addr_str, php_http_method_str(client->request.request_method), 
client->request.request_uri, status);
php_cli_server_poller_add(&server->poller, POLLOUT, client->sock);
efree(escaped_request_uri);
return SUCCESS;
@@ -1612,6 +1612,8 @@
} zend_end_try();
}

+   php_cli_server_logf("%s %s %s - Response sent successfully (%d)" 
TSRMLS_CC, client->addr_str, 
php_http_method_str(client->request.request_method), 
client->request.request_uri, SG(sapi_headers).http_response_code);
+
php_request_shutdown(0);
php_cli_server_close_connection(server, client TSRMLS_CC);
destroy_request_info(&SG(request_info));
@@ -1627,10 +1629,10 @@
if (fd < 0) {
char *errstr = get_last_error();
if (errstr) {
-   php_cli_server_logf("%s: %s - %s" TSRMLS_CC, 
client->addr_str, client->request.request_uri, errstr);
+   php_cli_server_logf("%s %s %s - %s" TSRMLS_CC, 
client->addr_str, php_http_method_str(client->request.request_method), 
client->request.request_uri, errstr);
pefree(errstr, 1);
} else {
-   php_cli_server_logf("%s: %s - ?" TSRMLS_CC, 
client->addr_str, client->request.request_uri);
+   php_cli_server_logf("%s %s %s - ?" TSRMLS_CC, 
client->addr_str, php_http_method_str(client->request.request_method), 
client->request.request_uri);
}
return php_cli_server_send_error_page(server, client, 404 
TSRMLS_CC);
}
@@ -1880,12 +1882,12 @@
char *errstr = NULL;
int status = php_cli_server_client_read_request(client, &errstr 
TSRMLS_CC);
if (status < 0) {
-   php_cli_server_logf("%s: Invalid request (%s)" TSRMLS_CC, 
client->addr_str, errstr);
+   php_cli_server_logf("%s Invalid request (%s)" TSRMLS_CC, 
client->addr_str, errstr);
efree(errstr);
php_cli_server_close_connection(server, client TSRMLS_CC);
return FAILURE;
} else if (status == 1) {
-   php_cli_server_logf("%s: %s" TSRMLS_CC, client->addr_str, 
client->request.request_uri);
+   php_cli_server_logf("%s %s %s - Request read" TSRMLS_CC, 
client->addr_str, php_http_method_str(client->request.request_method), 
client->request.request_uri);
php_cli_server_poller_remove(&server->poller, POLLIN, 
client->sock);
php_cli_server_dispatch(server, client TSRMLS_CC);
} else {
@@ -1970,7 +1972,7 @@
return SUCCESS;
}
 #ifdef DEBUG
-   php_cli_server_logf("%s: Accepted" TSRMLS_CC, client->addr_str);
+   php_cli_server_logf("%s Accepted" TSRMLS_CC, client->addr_str);
 #endif
zend_hash_index_update(&server->clients, client_sock, &client, 
sizeof(client), NULL);
php_cli_server_recv_event_read_request(server, client 
TSRMLS_CC);

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-19 16:17:07 UTC (rev 
313440)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-19 17:47:34 UTC (rev 
313441)
@@ -1479,7 +1479,7 @@
 static void php_cli_server_close_connection(php_cli_server *server, 
php_cli_server_client *client T

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-19 Thread Moriyoshi Koizumi
moriyoshiTue, 19 Jul 2011 18:00:16 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313442

Log:
- Buffers are local to the blocks where they belong.

Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-19 
17:47:34 UTC (rev 313441)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-19 
18:00:16 UTC (rev 313442)
@@ -2048,6 +2048,7 @@
extern const opt_struct OPTIONS[];
const char *document_root = NULL;
const char *router = NULL;
+   char document_root_buf[MAXPATHLEN];

while ((c = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 
0, 2))!=-1) {
switch (c) {
@@ -2062,7 +2063,6 @@

if (document_root) {
struct stat sb;
-   char resolved_path[MAXPATHLEN];

if (stat(document_root, &sb)) {
fprintf(stderr, "Directory %s does not exist.\n", 
document_root);
@@ -2072,19 +2072,18 @@
fprintf(stderr, "%s is not a directory.\n", 
document_root);
return 1;
}
-   if (VCWD_REALPATH(document_root, resolved_path)) {
-   document_root = resolved_path;
+   if (VCWD_REALPATH(document_root, document_root_buf)) {
+   document_root = document_root_buf;
}
} else {
-   char path[MAXPATHLEN];
char *ret = NULL;

 #if HAVE_GETCWD
-   ret = VCWD_GETCWD(path, MAXPATHLEN);
+   ret = VCWD_GETCWD(document_root_buf, MAXPATHLEN);
 #elif HAVE_GETWD
-   ret = VCWD_GETWD(path);
+   ret = VCWD_GETWD(document_root_buf);
 #endif
-   document_root = ret ? path : ".";
+   document_root = ret ? document_root_buf: ".";
}

if (argc > php_optind) {

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-19 17:47:34 UTC (rev 
313441)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-19 18:00:16 UTC (rev 
313442)
@@ -2048,6 +2048,7 @@
extern const opt_struct OPTIONS[];
const char *document_root = NULL;
const char *router = NULL;
+   char document_root_buf[MAXPATHLEN];

while ((c = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 
0, 2))!=-1) {
switch (c) {
@@ -2062,7 +2063,6 @@

if (document_root) {
struct stat sb;
-   char resolved_path[MAXPATHLEN];

if (stat(document_root, &sb)) {
fprintf(stderr, "Directory %s does not exist.\n", 
document_root);
@@ -2072,19 +2072,18 @@
fprintf(stderr, "%s is not a directory.\n", 
document_root);
return 1;
}
-   if (VCWD_REALPATH(document_root, resolved_path)) {
-   document_root = resolved_path;
+   if (VCWD_REALPATH(document_root, document_root_buf)) {
+   document_root = document_root_buf;
}
} else {
-   char path[MAXPATHLEN];
char *ret = NULL;

 #if HAVE_GETCWD
-   ret = VCWD_GETCWD(path, MAXPATHLEN);
+   ret = VCWD_GETCWD(document_root_buf, MAXPATHLEN);
 #elif HAVE_GETWD
-   ret = VCWD_GETWD(path);
+   ret = VCWD_GETWD(document_root_buf);
 #endif
-   document_root = ret ? path : ".";
+   document_root = ret ? document_root_buf: ".";
}

if (argc > php_optind) {

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-19 Thread Moriyoshi Koizumi
moriyoshiTue, 19 Jul 2011 18:17:25 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313444

Log:
- Fixed bug #55107 (Null bytes in URL cause insecure behavior (code execution / 
code disclosure)).

Bug: https://bugs.php.net/55107 (Verified) Null bytes in URL cause insecure 
behavior (code execution / code disclosure)
  
Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-19 
18:08:09 UTC (rev 313443)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-19 
18:17:25 UTC (rev 313444)
@@ -242,6 +242,7 @@
 };

 static php_cli_server_http_reponse_status_code_pair template_map[] = {
+   { 400, "%sYour browser sent a request that this 
server could not understand." },
{ 404, "%sThe requested resource %s was not 
found on this server." },
{ 500, "%sThe server is temporality 
unavaiable." }
 };
@@ -1600,6 +1601,11 @@
destroy_request_info(&SG(request_info));
return FAILURE;
}
+   if (strlen(client->request.path_translated) != 
client->request.path_translated_len) {
+   /* can't handle paths that contain nul bytes */
+   destroy_request_info(&SG(request_info));
+   return php_cli_server_send_error_page(server, client, 400 
TSRMLS_CC);
+   }
{
zend_file_handle zfd;
zfd.type = ZEND_HANDLE_FILENAME;
@@ -1625,6 +1631,11 @@
int fd;
int status = 200;

+   if (client->request.path_translated && 
strlen(client->request.path_translated) != client->request.path_translated_len) 
{
+   /* can't handle paths that contain nul bytes */
+   return php_cli_server_send_error_page(server, client, 400 
TSRMLS_CC);
+   }
+
fd = client->request.path_translated ? 
open(client->request.path_translated, O_RDONLY): -1;
if (fd < 0) {
char *errstr = get_last_error();

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-19 18:08:09 UTC (rev 
313443)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-19 18:17:25 UTC (rev 
313444)
@@ -242,6 +242,7 @@
 };

 static php_cli_server_http_reponse_status_code_pair template_map[] = {
+   { 400, "%sYour browser sent a request that this 
server could not understand." },
{ 404, "%sThe requested resource %s was not 
found on this server." },
{ 500, "%sThe server is temporality 
unavaiable." }
 };
@@ -1600,6 +1601,11 @@
destroy_request_info(&SG(request_info));
return FAILURE;
}
+   if (strlen(client->request.path_translated) != 
client->request.path_translated_len) {
+   /* can't handle paths that contain nul bytes */
+   destroy_request_info(&SG(request_info));
+   return php_cli_server_send_error_page(server, client, 400 
TSRMLS_CC);
+   }
{
zend_file_handle zfd;
zfd.type = ZEND_HANDLE_FILENAME;
@@ -1625,6 +1631,11 @@
int fd;
int status = 200;

+   if (client->request.path_translated && 
strlen(client->request.path_translated) != client->request.path_translated_len) 
{
+   /* can't handle paths that contain nul bytes */
+   return php_cli_server_send_error_page(server, client, 400 
TSRMLS_CC);
+   }
+
fd = client->request.path_translated ? 
open(client->request.path_translated, O_RDONLY): -1;
if (fd < 0) {
char *errstr = get_last_error();

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-19 Thread Moriyoshi Koizumi
moriyoshiWed, 20 Jul 2011 04:34:01 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313464

Log:
- Fixed bug #55073 (PHP-CLI-webserver does not listen on ipv6 interfaces), 
letting getaddrinfo(3) validate IPv6 addresses.

Bug: https://bugs.php.net/55073 (Assigned) PHP-CLI-webserver does not listen on 
ipv6 interfaces
  
Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-20 
03:11:53 UTC (rev 313463)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-20 
04:34:01 UTC (rev 313464)
@@ -1806,19 +1806,35 @@
int port = 3000;
php_socket_t server_sock = SOCK_ERR;

-   host = pestrdup(addr, 1);
-   if (!host || *host == ':' ) {
-   if (host) {
-   pefree(host, 1);
+   if (addr[0] == '[') {
+   char *p;
+   host = pestrdup(addr + 1, 1);
+   if (!host) {
+   return FAILURE;
}
-   fprintf(stderr, "Invalid built-in web-server addr:port 
argument\n");
-   return FAILURE;
-   }
-
-   {
-   char *p = strchr(host, ':');
+   p = strchr(host, ']');
if (p) {
*p++ = '\0';
+   if (*p == ':') {
+   port = strtol(p + 1, &p, 10);
+   } else if (*p != '\0') {
+   p = NULL;
+   }
+   }
+   if (!p) {
+   fprintf(stderr, "Invalid IPv6 address: %s\n", host);
+   retval = FAILURE;
+   goto out;
+   }
+   } else {
+   char *p;
+   host = pestrdup(addr, 1);
+   if (!host) {
+   return FAILURE;
+   }
+   p = strrchr(host, ':');
+   if (p) {
+   *p++ = '\0';
port = strtol(p, &p, 10);
}
}
@@ -2106,7 +2122,7 @@
}
sapi_module.phpinfo_as_text = 0;

-   printf("PHP Development Server is listening on %s:%d in %s ... Press 
Ctrl-C to quit.\n", server.host, server.port, document_root);
+   printf("PHP Development Server is listening on %s in %s ... Press 
Ctrl-C to quit.\n", server_bind_address, document_root);

 #if defined(HAVE_SIGNAL_H) && defined(SIGINT)
signal(SIGINT, php_cli_server_sigint_handler);

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 03:11:53 UTC (rev 
313463)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 04:34:01 UTC (rev 
313464)
@@ -1806,19 +1806,35 @@
int port = 3000;
php_socket_t server_sock = SOCK_ERR;

-   host = pestrdup(addr, 1);
-   if (!host || *host == ':' ) {
-   if (host) {
-   pefree(host, 1);
+   if (addr[0] == '[') {
+   char *p;
+   host = pestrdup(addr + 1, 1);
+   if (!host) {
+   return FAILURE;
}
-   fprintf(stderr, "Invalid built-in web-server addr:port 
argument\n");
-   return FAILURE;
-   }
-
-   {
-   char *p = strchr(host, ':');
+   p = strchr(host, ']');
if (p) {
*p++ = '\0';
+   if (*p == ':') {
+   port = strtol(p + 1, &p, 10);
+   } else if (*p != '\0') {
+   p = NULL;
+   }
+   }
+   if (!p) {
+   fprintf(stderr, "Invalid IPv6 address: %s\n", host);
+   retval = FAILURE;
+   goto out;
+   }
+   } else {
+   char *p;
+   host = pestrdup(addr, 1);
+   if (!host) {
+   return FAILURE;
+   }
+   p = strrchr(host, ':');
+   if (p) {
+   *p++ = '\0';
port = strtol(p, &p, 10);
}
}
@@ -2106,7 +2122,7 @@
}
sapi_module.phpinfo_as_text = 0;

-   printf("PHP Development Server is listening on %s:%d in %s ... Press 
Ctrl-C to quit.\n", server.host, server.port, document_root);
+   printf("PHP Development Server is listening on %s in %s ... Press 
Ctrl-C to quit.\n", server_bind_address, document_root);

 #if defined(HAVE_SIGNAL_H) && defined(SIGINT)
signal(SIGINT, php

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-20 Thread Moriyoshi Koizumi
moriyoshiWed, 20 Jul 2011 08:43:12 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313466

Log:
- Better error handling.

Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-20 
07:48:08 UTC (rev 313465)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-20 
08:43:12 UTC (rev 313466)
@@ -1805,9 +1805,9 @@
int err = 0;
int port = 3000;
php_socket_t server_sock = SOCK_ERR;
+   char *p = NULL;

if (addr[0] == '[') {
-   char *p;
host = pestrdup(addr + 1, 1);
if (!host) {
return FAILURE;
@@ -1817,27 +1817,32 @@
*p++ = '\0';
if (*p == ':') {
port = strtol(p + 1, &p, 10);
+   if (port <= 0) {
+   p = NULL;
+   }
} else if (*p != '\0') {
p = NULL;
}
}
-   if (!p) {
-   fprintf(stderr, "Invalid IPv6 address: %s\n", host);
-   retval = FAILURE;
-   goto out;
-   }
} else {
-   char *p;
host = pestrdup(addr, 1);
if (!host) {
return FAILURE;
}
-   p = strrchr(host, ':');
+   p = strchr(host, ':');
if (p) {
*p++ = '\0';
port = strtol(p, &p, 10);
+   if (port <= 0) {
+   p = NULL;
+   }
}
}
+   if (!p) {
+   fprintf(stderr, "Invalid address: %s\n", addr);
+   retval = FAILURE;
+   goto out;
+   }

server_sock = php_network_listen_socket(host, &port, SOCK_STREAM, 
&server->address_family, &server->socklen, &errstr TSRMLS_CC);
if (server_sock == SOCK_ERR) {

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 07:48:08 UTC (rev 
313465)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 08:43:12 UTC (rev 
313466)
@@ -1805,9 +1805,9 @@
int err = 0;
int port = 3000;
php_socket_t server_sock = SOCK_ERR;
+   char *p = NULL;

if (addr[0] == '[') {
-   char *p;
host = pestrdup(addr + 1, 1);
if (!host) {
return FAILURE;
@@ -1817,27 +1817,32 @@
*p++ = '\0';
if (*p == ':') {
port = strtol(p + 1, &p, 10);
+   if (port <= 0) {
+   p = NULL;
+   }
} else if (*p != '\0') {
p = NULL;
}
}
-   if (!p) {
-   fprintf(stderr, "Invalid IPv6 address: %s\n", host);
-   retval = FAILURE;
-   goto out;
-   }
} else {
-   char *p;
host = pestrdup(addr, 1);
if (!host) {
return FAILURE;
}
-   p = strrchr(host, ':');
+   p = strchr(host, ':');
if (p) {
*p++ = '\0';
port = strtol(p, &p, 10);
+   if (port <= 0) {
+   p = NULL;
+   }
}
}
+   if (!p) {
+   fprintf(stderr, "Invalid address: %s\n", addr);
+   retval = FAILURE;
+   goto out;
+   }

server_sock = php_network_listen_socket(host, &port, SOCK_STREAM, 
&server->address_family, &server->socklen, &errstr TSRMLS_CC);
if (server_sock == SOCK_ERR) {

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-20 Thread Moriyoshi Koizumi
moriyoshiWed, 20 Jul 2011 09:00:20 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313467

Log:
Fixed bug #55071.  Maybe a bit overkill?

Bug: https://bugs.php.net/55071 (Re-Opened) Change in-built web server 
description
  
Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-20 
08:43:12 UTC (rev 313466)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-20 
09:00:20 UTC (rev 313467)
@@ -2127,7 +2127,19 @@
}
sapi_module.phpinfo_as_text = 0;

-   printf("PHP Development Server is listening on %s in %s ... Press 
Ctrl-C to quit.\n", server_bind_address, document_root);
+   {
+   struct timeval tv;
+   struct tm tm;
+   char buf[52];
+   gettimeofday(&tv, NULL);
+   php_localtime_r(&tv.tv_sec, &tm);
+   php_asctime_r(&tm, buf);
+   printf("PHP Development Server started at %s"
+   "Listening on %s\n"
+   "Document root is %s\n"
+   "Press Ctrl-C to quit.\n",
+   buf, server_bind_address, document_root);
+   }

 #if defined(HAVE_SIGNAL_H) && defined(SIGINT)
signal(SIGINT, php_cli_server_sigint_handler);

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 08:43:12 UTC (rev 
313466)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 09:00:20 UTC (rev 
313467)
@@ -2127,7 +2127,19 @@
}
sapi_module.phpinfo_as_text = 0;

-   printf("PHP Development Server is listening on %s in %s ... Press 
Ctrl-C to quit.\n", server_bind_address, document_root);
+   {
+   struct timeval tv;
+   struct tm tm;
+   char buf[52];
+   gettimeofday(&tv, NULL);
+   php_localtime_r(&tv.tv_sec, &tm);
+   php_asctime_r(&tm, buf);
+   printf("PHP Development Server started at %s"
+   "Listening on %s\n"
+   "Document root is %s\n"
+   "Press Ctrl-C to quit.\n",
+   buf, server_bind_address, document_root);
+   }

 #if defined(HAVE_SIGNAL_H) && defined(SIGINT)
signal(SIGINT, php_cli_server_sigint_handler);

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-21 Thread Moriyoshi Koizumi
moriyoshiThu, 21 Jul 2011 07:31:29 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313496

Log:
- Show PHP_VERSION in the banner. Suggested by Chris and others.

Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-21 
03:41:21 UTC (rev 313495)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-21 
07:31:29 UTC (rev 313496)
@@ -2134,11 +2134,11 @@
gettimeofday(&tv, NULL);
php_localtime_r(&tv.tv_sec, &tm);
php_asctime_r(&tm, buf);
-   printf("PHP Development Server started at %s"
+   printf("PHP %s Development Server started at %s"
"Listening on %s\n"
"Document root is %s\n"
"Press Ctrl-C to quit.\n",
-   buf, server_bind_address, document_root);
+   PHP_VERSION, buf, server_bind_address, 
document_root);
}

 #if defined(HAVE_SIGNAL_H) && defined(SIGINT)

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-21 03:41:21 UTC (rev 
313495)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-21 07:31:29 UTC (rev 
313496)
@@ -2134,11 +2134,11 @@
gettimeofday(&tv, NULL);
php_localtime_r(&tv.tv_sec, &tm);
php_asctime_r(&tm, buf);
-   printf("PHP Development Server started at %s"
+   printf("PHP %s Development Server started at %s"
"Listening on %s\n"
"Document root is %s\n"
"Press Ctrl-C to quit.\n",
-   buf, server_bind_address, document_root);
+   PHP_VERSION, buf, server_bind_address, 
document_root);
}

 #if defined(HAVE_SIGNAL_H) && defined(SIGINT)

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-07-23 Thread Moriyoshi Koizumi
moriyoshiSat, 23 Jul 2011 11:29:26 +

Revision: http://svn.php.net/viewvc?view=revision&revision=313627

Log:
- Give index.php a precedence over index.html.  Patch by davidc.

Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-23 
09:27:15 UTC (rev 313626)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-07-23 
11:29:26 UTC (rev 313627)
@@ -1065,7 +1065,7 @@
 static void php_cli_server_request_translate_vpath(php_cli_server_request 
*request, const char *document_root, size_t document_root_len) /* {{{ */
 {
struct stat sb;
-   static const char *index_files[] = { "index.html", "index.php", NULL };
+   static const char *index_files[] = { "index.php", "index.html", NULL };
char *buf = safe_pemalloc(1, request->vpath_len, 1 + document_root_len 
+ 1 + sizeof("index.html"), 1);
char *p = buf, *prev_patch = 0, *q, *vpath;
memmove(p, document_root, document_root_len);

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-23 09:27:15 UTC (rev 
313626)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-23 11:29:26 UTC (rev 
313627)
@@ -1065,7 +1065,7 @@
 static void php_cli_server_request_translate_vpath(php_cli_server_request 
*request, const char *document_root, size_t document_root_len) /* {{{ */
 {
struct stat sb;
-   static const char *index_files[] = { "index.html", "index.php", NULL };
+   static const char *index_files[] = { "index.php", "index.html", NULL };
char *buf = safe_pemalloc(1, request->vpath_len, 1 + document_root_len 
+ 1 + sizeof("index.html"), 1);
char *p = buf, *prev_patch = 0, *q, *vpath;
memmove(p, document_root, document_root_len);

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

Re: [PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c trunk/sapi/cli/php_cli_server.c

2011-09-20 Thread Moriyoshi Koizumi
Hi,

Where does HAVE_BROKEN_GETCWD come from? Isn't simply using VCWD_GETCWD 
sufficient?

Moriyoshi

On 2011/09/20, at 16:06, Xinchen Hui wrote:

> laruence Tue, 20 Sep 2011 07:06:55 +
> 
> Revision: http://svn.php.net/viewvc?view=revision&revision=317040
> 
> Log:
> Fix Bug #55726 (Changing the working directory makes router script 
> inaccessible)
> 
> Bug: https://bugs.php.net/55726 (Assigned) Changing the working directory 
> makes router script inaccessible
> 
> Changed paths:
>U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
>U   php/php-src/trunk/sapi/cli/php_cli_server.c
> 
> Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
> ===
> --- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c2011-09-20 
> 05:42:36 UTC (rev 317039)
> +++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c2011-09-20 
> 07:06:55 UTC (rev 317040)
> @@ -1877,11 +1877,24 @@
>   }
>   {
>   zend_file_handle zfd;
> +#if HAVE_BROKEN_GETCWD
> + int old_cwd_fd = -1;
> + old_cwd_fd = open(".", 0);
> +#else
> + char *old_cwd;
> + ALLOCA_FLAG(use_heap)
> +#define OLD_CWD_SIZE 4096
> + old_cwd = do_alloca(OLD_CWD_SIZE, use_heap);
> + old_cwd[0] = '\0';
> + php_ignore_value(VCWD_GETCWD(old_cwd, OLD_CWD_SIZE-1));
> +#endif
> +
>   zfd.type = ZEND_HANDLE_FILENAME;
>   zfd.filename = server->router;
>   zfd.handle.fp = NULL;
>   zfd.free_filename = 0;
>   zfd.opened_path = NULL;
> +
>   zend_try {
>   zval *retval = NULL;
>   if (SUCCESS == zend_execute_scripts(ZEND_REQUIRE 
> TSRMLS_CC, &retval, 1, &zfd)) {
> @@ -1893,6 +1906,18 @@
>   decline = 1;
>   }
>   } zend_end_try();
> +
> +#if HAVE_BROKEN_GETCWD
> + if (old_cwd_fd != -1) {
> + fchdir(old_cwd_fd);
> + close(old_cwd_fd);
> + }
> +#else
> + if (old_cwd[0] != '\0') {
> + php_ignore_value(VCWD_CHDIR(old_cwd));
> + }
> + free_alloca(old_cwd, use_heap);
> +#endif
>   }
> 
>   if (decline) {
> 
> Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
> ===
> --- php/php-src/trunk/sapi/cli/php_cli_server.c   2011-09-20 05:42:36 UTC 
> (rev 317039)
> +++ php/php-src/trunk/sapi/cli/php_cli_server.c   2011-09-20 07:06:55 UTC 
> (rev 317040)
> @@ -1877,11 +1877,24 @@
>   }
>   {
>   zend_file_handle zfd;
> +#if HAVE_BROKEN_GETCWD
> + int old_cwd_fd = -1;
> + old_cwd_fd = open(".", 0);
> +#else
> + char *old_cwd;
> + ALLOCA_FLAG(use_heap)
> +#define OLD_CWD_SIZE 4096
> + old_cwd = do_alloca(OLD_CWD_SIZE, use_heap);
> + old_cwd[0] = '\0';
> + php_ignore_value(VCWD_GETCWD(old_cwd, OLD_CWD_SIZE-1));
> +#endif
> +
>   zfd.type = ZEND_HANDLE_FILENAME;
>   zfd.filename = server->router;
>   zfd.handle.fp = NULL;
>   zfd.free_filename = 0;
>   zfd.opened_path = NULL;
> +
>   zend_try {
>   zval *retval = NULL;
>   if (SUCCESS == zend_execute_scripts(ZEND_REQUIRE 
> TSRMLS_CC, &retval, 1, &zfd)) {
> @@ -1893,6 +1906,18 @@
>   decline = 1;
>   }
>   } zend_end_try();
> +
> +#if HAVE_BROKEN_GETCWD
> + if (old_cwd_fd != -1) {
> + fchdir(old_cwd_fd);
> +     close(old_cwd_fd);
> + }
> +#else
> + if (old_cwd[0] != '\0') {
> + php_ignore_value(VCWD_CHDIR(old_cwd));
> + }
> + free_alloca(old_cwd, use_heap);
> +#endif
>   }
> 
>   if (decline) {
> 
> -- 
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
Moriyoshi Koizumi
m...@mozo.jp




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



[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/sapi/cli/php_cli_server.c branches/PHP_5_4/sapi/cli/tests/php_cli_server_008.phpt trunk/sapi/cli/php_cli_server.c trunk/sapi/cli/tests/php_cli_server_008.

2011-10-20 Thread Moriyoshi Koizumi
moriyoshiFri, 21 Oct 2011 05:24:30 +

Revision: http://svn.php.net/viewvc?view=revision&revision=318283

Log:
Add SERVER_PROTOCOL variable to $_SERVER.  Patch by kuzuha.  Thanks.

Changed paths:
U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
A   php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_008.phpt
U   php/php-src/trunk/sapi/cli/php_cli_server.c
A   php/php-src/trunk/sapi/cli/tests/php_cli_server_008.phpt

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-10-21 
01:39:45 UTC (rev 318282)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c  2011-10-21 
05:24:30 UTC (rev 318283)
@@ -571,6 +571,12 @@
sapi_cli_server_register_variable(track_vars_array, 
"SERVER_SOFTWARE", tmp TSRMLS_CC);
efree(tmp);
}
+   {
+   char *tmp;
+   spprintf(&tmp, 0, "HTTP/%d.%d", 
client->request.protocol_version / 100, client->request.protocol_version % 100);
+   sapi_cli_server_register_variable(track_vars_array, 
"SERVER_PROTOCOL", tmp TSRMLS_CC);
+   efree(tmp);
+   }
sapi_cli_server_register_variable(track_vars_array, "REQUEST_URI", 
client->request.request_uri TSRMLS_CC);
sapi_cli_server_register_variable(track_vars_array, "REQUEST_METHOD", 
SG(request_info).request_method TSRMLS_CC);
sapi_cli_server_register_variable(track_vars_array, "PHP_SELF", 
client->request.vpath TSRMLS_CC);

Added: php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_008.phpt
===
--- php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_008.phpt 
(rev 0)
+++ php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_008.phpt 
2011-10-21 05:24:30 UTC (rev 318283)
@@ -0,0 +1,71 @@
+--TEST--
+SERVER_PROTOCOL header availability
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+HTTP/1.1 200 OK
+Host: %s
+Connection: closed
+X-Powered-By: PHP/%s-dev
+Content-type: text/html
+
+string(8) "HTTP/1.1"
+HTTP/1.0 200 OK
+Host: %s
+Connection: closed
+X-Powered-By: PHP/%s-dev
+Content-type: text/html
+
+string(8) "HTTP/1.0"

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-10-21 01:39:45 UTC (rev 
318282)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-10-21 05:24:30 UTC (rev 
318283)
@@ -571,6 +571,12 @@
sapi_cli_server_register_variable(track_vars_array, 
"SERVER_SOFTWARE", tmp TSRMLS_CC);
efree(tmp);
}
+   {
+   char *tmp;
+   spprintf(&tmp, 0, "HTTP/%d.%d", 
client->request.protocol_version / 100, client->request.protocol_version % 100);
+   sapi_cli_server_register_variable(track_vars_array, 
"SERVER_PROTOCOL", tmp TSRMLS_CC);
+   efree(tmp);
+   }
sapi_cli_server_register_variable(track_vars_array, "REQUEST_URI", 
client->request.request_uri TSRMLS_CC);
sapi_cli_server_register_variable(track_vars_array, "REQUEST_METHOD", 
SG(request_info).request_method TSRMLS_CC);
sapi_cli_server_register_variable(track_vars_array, "PHP_SELF", 
client->request.vpath TSRMLS_CC);

Added: php/php-src/trunk/sapi/cli/tests/php_cli_server_008.phpt
===
--- php/php-src/trunk/sapi/cli/tests/php_cli_server_008.phpt
(rev 0)
+++ php/php-src/trunk/sapi/cli/tests/php_cli_server_008.phpt2011-10-21 
05:24:30 UTC (rev 318283)
@@ -0,0 +1,71 @@
+--TEST--
+SERVER_PROTOCOL header availability
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+HTTP/1.1 200 OK
+Host: %s
+Connection: closed
+X-Powered-By: PHP/%s-dev
+Content-type: text/html
+
+string(8) "HTTP/1.1"
+HTTP/1.0 200 OK
+Host: %s
+Connection: closed
+X-Powered-By: PHP/%s-dev
+Content-type: text/html
+
+string(8) "HTTP/1.0"

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

Re: [PHP-CVS] svn: /php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/ mbfilter_utf8.c

2011-10-20 Thread Moriyoshi Koizumi
Rui, what is the reason behind this change?

Moriyoshi

On 2011/10/18, at 23:04, Rui Hirokawa wrote:

> hirokawa Tue, 18 Oct 2011 14:04:13 +
> 
> Revision: http://svn.php.net/viewvc?view=revision&revision=318184
> 
> Log:
> MFH: fixed byte length of utf-8.
> 
> Changed paths:
>U   
> php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
> 
> Modified: 
> php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
> ===
> --- php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c 
> 2011-10-18 14:03:44 UTC (rev 318183)
> +++ php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c 
> 2011-10-18 14:04:13 UTC (rev 318184)
> @@ -52,7 +52,7 @@
>   2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
>   2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
>   3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
> - 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1
> + 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> };
> 
> static const char *mbfl_encoding_utf8_aliases[] = {"utf8", NULL};
> 
> -- 
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
Moriyoshi Koizumi
m...@mozo.jp




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



Re: [PHP-CVS] svn: /php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/ mbfilter_utf8.c

2011-10-23 Thread Moriyoshi Koizumi
I thought it was valid in terms of CEF nature of UTF-8, but it turrned out RFC 
states such sequences that start with F5-F7 are not valid.
Thanks for the clarification.

Moriyoshi

On 2011/10/23, at 20:25, Rui Hirokawa wrote:

> Hello, Moriyoshi,
> 
> It is because 0xf5-0xf7 is the invalid four byte UTF-8 sequence.
> 
> ref: http://en.wikipedia.org/wiki/UTF-8
> 
> Rui
> 
> Moriyoshi Koizumi wrote:
>> Rui, what is the reason behind this change?
>> 
>> Moriyoshi
>> 
>> On 2011/10/18, at 23:04, Rui Hirokawa wrote:
>> 
>>> hirokawa Tue, 18 Oct 2011 14:04:13 +
>>> 
>>> Revision: http://svn.php.net/viewvc?view=revision&revision=318184
>>> 
>>> Log:
>>> MFH: fixed byte length of utf-8.
>>> 
>>> Changed paths:
>>>   U   
>>> php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
>>> 
>>> Modified: 
>>> php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
>>> ===
>>> --- 
>>> php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c   
>>> 2011-10-18 14:03:44 UTC (rev 318183)
>>> +++ 
>>> php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c   
>>> 2011-10-18 14:04:13 UTC (rev 318184)
>>> @@ -52,7 +52,7 @@
>>> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
>>> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
>>> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
>>> -   4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1
>>> +   4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
>>> };
>>> 
>>> static const char *mbfl_encoding_utf8_aliases[] = {"utf8", NULL};
>>> 
>>> -- 
>>> PHP CVS Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>> 
> 

-- 
Moriyoshi Koizumi
m...@mozo.jp




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



[PHP-CVS] svn: /php/php-src/branches/PHP_5_2/ NEWS ext/mbstring/libmbfl/filters/mbfilter_utf16.c ext/mbstring/libmbfl/filters/mbfilter_utf8.c ext/mbstring/libmbfl/mbfl/mbfilter.c ext/mbstring/tests/bu

2009-09-23 Thread Moriyoshi Koizumi
moriyoshiWed, 23 Sep 2009 14:26:51 +

Revision: http://svn.php.net/viewvc?view=revision&revision=288612

Log:
* Merge two patches from 5.3 branch (intentionally uncommited because 5.2.11
  was about to come at that time).

Changed paths:
_U  php/php-src/branches/PHP_5_2/
U   php/php-src/branches/PHP_5_2/NEWS
U   
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf16.c
U   
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
U   php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/mbfl/mbfilter.c
A + php/php-src/branches/PHP_5_2/ext/mbstring/tests/bug49528.phpt
(from 
php/php-src/branches/PHP_5_3/ext/mbstring/tests/bug49528.phpt:r288260)
A + php/php-src/branches/PHP_5_2/ext/mbstring/tests/bug49536.phpt
(from 
php/php-src/branches/PHP_5_3/ext/mbstring/tests/bug49536.phpt:r288273)


Property changes on: php/php-src/branches/PHP_5_2
___
Modified: svn:mergeinfo
   - /php/php-src/branches/PHP_5_3:284120
/php/php-src/trunk:284726
   + /php/php-src/branches/PHP_5_3:284120,288260,288273
/php/php-src/trunk:284726

Modified: php/php-src/branches/PHP_5_2/NEWS
===
--- php/php-src/branches/PHP_5_2/NEWS   2009-09-23 14:18:04 UTC (rev 288611)
+++ php/php-src/branches/PHP_5_2/NEWS   2009-09-23 14:26:51 UTC (rev 288612)
@@ -3,8 +3,12 @@
 ?? ??? , PHP 5.2.12
 - Fixed bug #49630 (imap_listscan function missing). (Felipe)
 - Fixed bug #49578 (make install-pear fails). (Hannes)
+- Fixed bug #49536 (mb_detect_encoding() returns incorrect results when
+  mbstring.strict_mode is turned on). (Moriyoshi)
 - Fixed bug #49531 (CURLOPT_INFILESIZE sometimes causes warning "CURLPROTO_FILE
   cannot be set"). (Felipe)
+- Fixed bug #49528 (UTF-16 strings prefixed by BOMs wrondly converted).
+  (Moriyoshi)

 17 Sep 2009, PHP 5.2.11
 - Fixed certificate validation inside php_openssl_apply_verification_policy.

Modified: 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf16.c
===
--- php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf16.c  
2009-09-23 14:18:04 UTC (rev 288611)
+++ php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf16.c  
2009-09-23 14:26:51 UTC (rev 288612)
@@ -127,7 +127,7 @@
int n, endian;

endian = filter->status & 0xff00;
-   switch (filter->status & 0xff) {
+   switch (filter->status & 0x0f) {
case 0:
if (endian) {
n = c & 0xff;
@@ -144,15 +144,8 @@
n = c & 0xff;
}
n |= filter->cache & 0x;
-   filter->status &= ~0xff;
-   if (n == 0xfffe) {
-   if (endian) {
-   filter->status = 0; /* big-endian */
-   } else {
-   filter->status = 0x100; /* 
little-endian */
-   }
-   CK((*filter->output_function)(0xfeff, filter->data));
-   } else if (n >= 0xd800 && n < 0xdc00) {
+   filter->status &= ~0x0f;
+   if (n >= 0xd800 && n < 0xdc00) {
filter->cache = ((n & 0x3ff) << 16) + 0x40;
} else if (n >= 0xdc00 && n < 0xe000) {
n &= 0x3ff;
@@ -166,7 +159,21 @@
CK((*filter->output_function)(n, filter->data));
}
} else {
+   int is_first = filter->status & 0x10;
filter->cache = 0;
+   filter->status |= 0x10;
+   if (!is_first) {
+   if (n == 0xfffe) {
+   if (endian) {
+   filter->status &= ~0x100;   
/* big-endian */
+   } else {
+   filter->status |= 0x100;
/* little-endian */
+   }
+   break;
+   } else if (n == 0xfeff) {
+   break;
+   }
+   }
CK((*filter->output_function)(n, filter->data));
}
break;

Modified: 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
===
--- php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf8.c   
2009-09-23 14:18:04 UTC (rev 288611)
+++ php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_utf8.c   
2009-09-23 14:2

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/NEWS branches/PHP_5_2/ext/mbstring/mbstring.c branches/PHP_5_2/ext/mbstring/tests/bug49354.phpt branches/PHP_5_3/ext/mbstring/mbstring.c branches/PHP_5_3/

2009-09-23 Thread Moriyoshi Koizumi
moriyoshiWed, 23 Sep 2009 15:22:47 +

Revision: http://svn.php.net/viewvc?view=revision&revision=288613

Log:
- Fixed bug #49354 (mb_strcut() cuts wrong length when offset is within a
  multibyte character).

(This bug was introduced by the commit by r202895. Please double-check the
 specification of the function you are going to *fix*.)

Bug: http://bugs.php.net/49354 (Assigned) mb_strcut() cutting wrong length when 
offset is within a multibyte character
  
Changed paths:
U   php/php-src/branches/PHP_5_2/NEWS
U   php/php-src/branches/PHP_5_2/ext/mbstring/mbstring.c
A   php/php-src/branches/PHP_5_2/ext/mbstring/tests/bug49354.phpt
U   php/php-src/branches/PHP_5_3/ext/mbstring/mbstring.c
A   php/php-src/branches/PHP_5_3/ext/mbstring/tests/bug49354.phpt
U   php/php-src/trunk/ext/mbstring/mbstring.c
A   php/php-src/trunk/ext/mbstring/tests/bug49354.phpt

Modified: php/php-src/branches/PHP_5_2/NEWS
===
--- php/php-src/branches/PHP_5_2/NEWS   2009-09-23 14:26:51 UTC (rev 288612)
+++ php/php-src/branches/PHP_5_2/NEWS   2009-09-23 15:22:47 UTC (rev 288613)
@@ -7,6 +7,8 @@
   mbstring.strict_mode is turned on). (Moriyoshi)
 - Fixed bug #49531 (CURLOPT_INFILESIZE sometimes causes warning "CURLPROTO_FILE
   cannot be set"). (Felipe)
+- Fixed bug #49354 (mb_strcut() cuts wrong length when offset is in the middle
+  of a multibyte character). (Moriyoshi)
 - Fixed bug #49528 (UTF-16 strings prefixed by BOMs wrondly converted).
   (Moriyoshi)


Modified: php/php-src/branches/PHP_5_2/ext/mbstring/mbstring.c
===
--- php/php-src/branches/PHP_5_2/ext/mbstring/mbstring.c2009-09-23 
14:26:51 UTC (rev 288612)
+++ php/php-src/branches/PHP_5_2/ext/mbstring/mbstring.c2009-09-23 
15:22:47 UTC (rev 288613)
@@ -2272,9 +2272,6 @@
if (from > Z_STRLEN_PP(arg1)) {
RETURN_FALSE;
}
-   if (((unsigned) from + (unsigned) len) > Z_STRLEN_PP(arg1)) {
-   len = Z_STRLEN_PP(arg1) - from;
-   }

ret = mbfl_strcut(&string, &result, from, len);
if (ret != NULL) {

Added: php/php-src/branches/PHP_5_2/ext/mbstring/tests/bug49354.phpt
===
--- php/php-src/branches/PHP_5_2/ext/mbstring/tests/bug49354.phpt   
(rev 0)
+++ php/php-src/branches/PHP_5_2/ext/mbstring/tests/bug49354.phpt   
2009-09-23 15:22:47 UTC (rev 288613)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #49354 (mb_strcut() cuts wrong length when offset is in the middle of a 
multibyte character)
+--SKIPIF--
+
+--FILE--
+
+--EXPECT--
+string(12) "AåBäCöDü"
+string(11) "åBäCöDü"
+string(11) "åBäCöDü"
+string(9) "BäCöDü"
+string(0) ""
+bool(false)

Modified: php/php-src/branches/PHP_5_3/ext/mbstring/mbstring.c
===
--- php/php-src/branches/PHP_5_3/ext/mbstring/mbstring.c2009-09-23 
14:26:51 UTC (rev 288612)
+++ php/php-src/branches/PHP_5_3/ext/mbstring/mbstring.c2009-09-23 
15:22:47 UTC (rev 288613)
@@ -2665,10 +2665,6 @@
RETURN_FALSE;
}

-   if (((unsigned int)from + (unsigned int)len) > string.len) {
-   len = string.len - from;
-   }
-
ret = mbfl_strcut(&string, &result, from, len);
if (ret == NULL) {
RETURN_FALSE;

Added: php/php-src/branches/PHP_5_3/ext/mbstring/tests/bug49354.phpt
===
--- php/php-src/branches/PHP_5_3/ext/mbstring/tests/bug49354.phpt   
(rev 0)
+++ php/php-src/branches/PHP_5_3/ext/mbstring/tests/bug49354.phpt   
2009-09-23 15:22:47 UTC (rev 288613)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #49354 (mb_strcut() cuts wrong length when offset is in the middle of a 
multibyte character)
+--SKIPIF--
+
+--FILE--
+
+--EXPECT--
+string(12) "AåBäCöDü"
+string(11) "åBäCöDü"
+string(11) "åBäCöDü"
+string(9) "BäCöDü"
+string(0) ""
+bool(false)

Modified: php/php-src/trunk/ext/mbstring/mbstring.c
===
--- php/php-src/trunk/ext/mbstring/mbstring.c   2009-09-23 14:26:51 UTC (rev 
288612)
+++ php/php-src/trunk/ext/mbstring/mbstring.c   2009-09-23 15:22:47 UTC (rev 
288613)
@@ -2664,10 +2664,6 @@
RETURN_FALSE;
}

-   if (((unsigned int)from + (unsigned int)len) > string.len) {
-   len = string.len - from;
-   }
-
ret = mbfl_strcut(&string, &result, from, len);
if (ret == NULL) {
RETURN_FALSE;

Added: php/php-src/trunk/ext/mbstring/tests/bug49354.phpt
===
--- php/php-src/trunk/ext/mbstring/tests/bug49354.phpt  
(rev 0)
+++ php/php-src/trunk/ext/mbstring/tests/bug49354.phpt  2

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt trunk/ext/standard/tests/strings/bug49785.phpt

2009-10-09 Thread Moriyoshi Koizumi
moriyoshiFri, 09 Oct 2009 17:13:05 +

Revision: http://svn.php.net/viewvc?view=revision&revision=289429

Log:
- More tests to go.

Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt

Modified: php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
===
--- php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt   
2009-10-09 17:03:56 UTC (rev 289428)
+++ php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt   
2009-10-09 17:13:05 UTC (rev 289429)
@@ -6,6 +6,22 @@
 return is_string($val) ? bin2hex($val): $val;
 }

+// UTF-8: basic tests
+var_dump(bin2hex(htmlentities("\xc1\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xc2\x80", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xce\x91", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xce\xb1", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xdf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xe0\xa0\x80", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xe0\x9f\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xe2\x99\xa5", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xef\xbf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf0\x8f\xbf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf0\x90\x80\x80", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf7\xbf\xbf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf8\x88\x80\x80\x80", ENT_QUOTES, "UTF-8")));
+
+echo "--\n";
 // UTF-8: alternative (invalid) UTF-8 sequence
 var_dump(_bin2hex(htmlspecialchars("\xc0\xa6", ENT_QUOTES, 'UTF-8')));
 var_dump(_bin2hex(htmlspecialchars("\xe0\x80\xa6", ENT_QUOTES, 'UTF-8')));
@@ -98,8 +114,22 @@
 ?>
 --EXPECT--
 string(0) ""
+string(4) "c280"
+string(14) "26416c7068613b"
+string(14) "26616c7068613b"
+string(4) "dfbf"
+string(6) "e0a080"
 string(0) ""
+string(16) "266865617274733b"
+string(6) "efbfbf"
 string(0) ""
+string(8) "f0908080"
+string(8) "f7bfbfbf"
+string(0) ""
+--
+string(0) ""
+string(0) ""
+string(0) ""
 string(2) "80"
 string(2) "a0"
 string(2) "a1"

Modified: php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt
===
--- php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt   
2009-10-09 17:03:56 UTC (rev 289428)
+++ php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt   
2009-10-09 17:13:05 UTC (rev 289429)
@@ -6,6 +6,22 @@
 return is_string($val) ? bin2hex($val): $val;
 }

+// UTF-8: basic tests
+var_dump(bin2hex(htmlentities("\xc1\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xc2\x80", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xce\x91", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xce\xb1", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xdf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xe0\xa0\x80", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xe0\x9f\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xe2\x99\xa5", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xef\xbf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf0\x8f\xbf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf0\x90\x80\x80", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf7\xbf\xbf\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xf8\x88\x80\x80\x80", ENT_QUOTES, "UTF-8")));
+
+echo "--\n";
 // UTF-8: alternative (invalid) UTF-8 sequence
 var_dump(_bin2hex(htmlspecialchars("\xc0\xa6", ENT_QUOTES, 'UTF-8')));
 var_dump(_bin2hex(htmlspecialchars("\xe0\x80\xa6", ENT_QUOTES, 'UTF-8')));
@@ -98,8 +114,22 @@
 ?>
 --EXPECT--
 string(0) ""
+string(4) "c280"
+string(14) "26416c7068613b"
+string(14) "26616c7068613b"
+string(4) "dfbf"
+string(6) "e0a080"
 string(0) ""
+string(16) "266865617274733b"
+string(6) "efbfbf"
 string(0) ""
+string(8) "f0908080"
+string(8) "f7bfbfbf"
+string(0) ""
+--
+string(0) ""
+string(0) ""
+string(0) ""
 string(2) "80"
 string(2) "a0"
 string(2) "a1"

Modified: php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt
===
--- php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt  2009-10-09 
17:03:56 UTC (rev 289428)
+++ php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt  2009-10-09 
17:13:05 UTC (rev 289429)
@@ -6,6 +6,22 @@
 return is_string($val) ? bin2hex($val): $val;
 }

+// UTF-8: basic tests
+var_dump(bin2hex(htmlentities("\xc1\xbf", ENT_QUOTES, "UTF-8")));
+var_dump(bin2hex(htmlentities("\xc2\x80", ENT_QUOTES, "UTF-8")));
+va

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/standard/html.c branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt branches/PHP_5_3/ext/standard/html.c branches/PHP_5_3/ext/standard/tests/str

2009-10-11 Thread Moriyoshi Koizumi
moriyoshiSun, 11 Oct 2009 23:52:33 +

Revision: http://svn.php.net/viewvc?view=revision&revision=289554

Log:
- A couple more fix for my previous fix.
  (one of the fix by Arnaud Le Blanc. Thanks!)

Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/html.c
U   php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/branches/PHP_5_3/ext/standard/html.c
U   php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt
U   
php/php-src/branches/PHP_5_3/ext/standard/tests/strings/htmlentities-utf-2.phpt
U   
php/php-src/branches/PHP_5_3/ext/standard/tests/strings/htmlentities-utf.phpt
U   php/php-src/trunk/ext/standard/html.c
U   php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/trunk/ext/standard/tests/strings/htmlentities-utf-2.phpt
U   php/php-src/trunk/ext/standard/tests/strings/htmlentities-utf.phpt

Modified: php/php-src/branches/PHP_5_2/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/html.c	2009-10-11 23:37:52 UTC (rev 289553)
+++ php/php-src/branches/PHP_5_2/ext/standard/html.c	2009-10-11 23:52:33 UTC (rev 289554)
@@ -484,6 +484,11 @@
 			}\
 			mbseq[mbpos++] = (mbchar); }

+#define MB_FAILURE(pos) do { \
+	*status = FAILURE; \
+	return 0; \
+} while (0)
+
 #define CHECK_LEN(pos, chars_need)			\
 	if((str_len - (pos)) < chars_need) {	\
 		*status = FAILURE;	\
@@ -526,10 +531,12 @@
 this_char = c;
 	pos++;
 } else if (c < 0xc0) {
-	*status = FAILURE;
-	return 0;
+	MB_FAILURE(pos);
 } else if (c < 0xe0) {
 	CHECK_LEN(pos, 2);
+	if (str[pos + 1] < 0x80 || str[pos + 1] > 0xbf) {
+MB_FAILURE(pos);
+	}
 	this_char = ((c & 0x1f) << 6) | (str[pos + 1] & 0x3f);
 	if (this_char < 0x80) {
 		*status = FAILURE;
@@ -540,10 +547,15 @@
 	pos += 2;
 } else if (c < 0xf0) {
 	CHECK_LEN(pos, 3);
+	if (str[pos + 1] < 0x80 || str[pos + 1] > 0xbf) {
+MB_FAILURE(pos);
+	}
+	if (str[pos + 2] < 0x80 || str[pos + 2] > 0xbf) {
+MB_FAILURE(pos);
+	}
 	this_char = ((c & 0x0f) << 12) | ((str[pos + 1] & 0x3f) << 6) | (str[pos + 2] & 0x3f);
 	if (this_char < 0x800) {
-		*status = FAILURE;
-		return 0;
+MB_FAILURE(pos);
 	}
 	MB_WRITE((unsigned char)c);
 	MB_WRITE((unsigned char)str[pos + 1]);
@@ -551,10 +563,18 @@
 	pos += 3;
 } else if (c < 0xf8) {
 	CHECK_LEN(pos, 4);
+	if (str[pos + 1] < 0x80 || str[pos + 1] > 0xbf) {
+MB_FAILURE(pos);
+	}
+	if (str[pos + 2] < 0x80 || str[pos + 2] > 0xbf) {
+MB_FAILURE(pos);
+	}
+	if (str[pos + 3] < 0x80 || str[pos + 3] > 0xbf) {
+MB_FAILURE(pos);
+	}
 	this_char = ((c & 0x07) << 18) | ((str[pos + 1] & 0x3f) << 12) | ((str[pos + 2] & 0x3f) << 6) | (str[pos + 3] & 0x3f);
 	if (this_char < 0x1) {
-		*status = FAILURE;
-		return 0;
+MB_FAILURE(pos);
 	}
 	MB_WRITE((unsigned char)c);
 	MB_WRITE((unsigned char)str[pos + 1]);
@@ -562,8 +582,7 @@
 	MB_WRITE((unsigned char)str[pos + 3]);
 	pos += 4;
 } else {
-	*status = FAILURE;
-	return 0;
+MB_FAILURE(pos);
 }
 			}
 			break;
@@ -585,8 +604,7 @@
 		MB_WRITE(next_char);
 		this_char = (this_char << 8) | next_char;
 	} else {
-		*status = FAILURE;
-		return 0;
+		MB_FAILURE(pos);
 	}
 } else {
 	MB_WRITE(this_char);
@@ -611,8 +629,7 @@
 		MB_WRITE(next_char);
 		this_char = (this_char << 8) | next_char;
 	} else {
-		*status = FAILURE;
-		return 0;
+		MB_FAILURE(pos);
 	}
 } else {
 	MB_WRITE(this_char);
@@ -634,8 +651,7 @@
 		MB_WRITE(next_char);
 		this_char = (this_char << 8) | next_char;
 	} else {
-		*status = FAILURE;
-		return 0;
+		MB_FAILURE(pos);
 	}
 } else if (this_char == 0x8e) {
 	/* peek at the next char */
@@ -647,8 +663,7 @@
 		MB_WRITE(next_char);
 		this_char = (this_char << 8) | next_char;
 	} else {
-		*status = FAILURE;
-		return 0;
+		MB_FAILURE(pos);
 	}
 } else if (this_char == 0x8f) {
 	/* peek at the next two char */
@@ -665,8 +680,7 @@
 		MB_WRITE(next2_char);
 		this_char = (this_char << 16) | (next_char << 8) | next_char;
 	} else {
-		*status = FAILURE;
-		return 0;
+		MB_FAILURE(pos);
 	}
 } else {
 	MB_WRITE(this_char);

Modified: php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
===
--- php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt	2009-10-11 23:37:52 UTC (rev

Re: [PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/standard/html.c branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt branches/PHP_5_3/ext/standard/html.c branches/PHP_5_3/ext/standard/tes

2009-10-12 Thread Moriyoshi Koizumi
Right.

Moriyoshi

On Mon, Oct 12, 2009 at 5:28 PM, Pierre Joye  wrote:
> hi,
>
> Is it about  #49785?
>
> Cheers,
> --
> Pierre
>
> On Mon, Oct 12, 2009 at 1:52 AM, Moriyoshi Koizumi  wrote:
>> moriyoshi                                Sun, 11 Oct 2009 23:52:33 +
>>
>> Revision: http://svn.php.net/viewvc?view=revision&revision=289554
>>
>> Log:
>> - A couple more fix for my previous fix.
>>  (one of the fix by Arnaud Le Blanc. Thanks!)
>>
>> Changed paths:
>>    U   php/php-src/branches/PHP_5_2/ext/standard/html.c
>>    U   php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
>>    U   php/php-src/branches/PHP_5_3/ext/standard/html.c
>>    U   php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt
>>    U   
>> php/php-src/branches/PHP_5_3/ext/standard/tests/strings/htmlentities-utf-2.phpt
>>    U   
>> php/php-src/branches/PHP_5_3/ext/standard/tests/strings/htmlentities-utf.phpt
>>    U   php/php-src/trunk/ext/standard/html.c
>>    U   php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt
>>    U   php/php-src/trunk/ext/standard/tests/strings/htmlentities-utf-2.phpt
>>    U   php/php-src/trunk/ext/standard/tests/strings/htmlentities-utf.phpt
>>
>>
>> --
>> PHP CVS Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>
>
> --
> Pierre
>
> http://blog.thepimp.net | http://www.libgd.org
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

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



[PHP-CVS] svn: /php/php-src/branches/PHP_5_2/ext/standard/ html.c

2009-10-12 Thread Moriyoshi Koizumi
moriyoshiMon, 12 Oct 2009 14:25:51 +

Revision: http://svn.php.net/viewvc?view=revision&revision=289565

Log:
- Bug #49785: take 3 - fixed infinite loop bug (only for 5.2) (reported by 
T.Komura. Thanks)

Bug: http://bugs.php.net/49785 (Closed) htmlspecialchars() should check byte 
sequence more strictly
  
Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/html.c

Modified: php/php-src/branches/PHP_5_2/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/html.c2009-10-12 14:23:29 UTC 
(rev 289564)
+++ php/php-src/branches/PHP_5_2/ext/standard/html.c2009-10-12 14:25:51 UTC 
(rev 289565)
@@ -484,15 +484,26 @@
}\
mbseq[mbpos++] = (mbchar); }

+/* skip one byte and return */
 #define MB_FAILURE(pos) do { \
+   *newpos = pos + 1; \
*status = FAILURE; \
return 0; \
 } while (0)

 #define CHECK_LEN(pos, chars_need) \
-   if((str_len - (pos)) < chars_need) {\
-   *status = FAILURE;  \
-   return 0;   
\
+   if (chars_need < 1) {   \
+   if((str_len - (pos)) < chars_need) {\
+   *newpos = pos;  
\
+   *status = FAILURE;  
\
+   return 0;   
\
+   }   
\
+   } else {
\
+   if((str_len - (pos)) < chars_need) {\
+   *newpos = pos + 1;  
\
+   *status = FAILURE;  
\
+   return 0;   
\
+   }   
\
}

 /* {{{ get_next_char

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/standard/html.c branches/PHP_5_3/ext/standard/html.c trunk/ext/standard/html.c

2009-10-12 Thread Moriyoshi Koizumi
moriyoshiMon, 12 Oct 2009 14:29:45 +

Revision: http://svn.php.net/viewvc?view=revision&revision=289567

Log:
- Bug #49785: take 4 - typo. this flaw is unharmful since the return value of 
get_next_char() is only used when UTF-8 is specified to the third argument.

Bug: http://bugs.php.net/49785 (Closed) htmlspecialchars() should check byte 
sequence more strictly
  
Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/html.c
U   php/php-src/branches/PHP_5_3/ext/standard/html.c
U   php/php-src/trunk/ext/standard/html.c

Modified: php/php-src/branches/PHP_5_2/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/html.c2009-10-12 14:26:47 UTC 
(rev 289566)
+++ php/php-src/branches/PHP_5_2/ext/standard/html.c2009-10-12 14:29:45 UTC 
(rev 289567)
@@ -689,7 +689,7 @@
MB_WRITE(this_char);
MB_WRITE(next_char);
MB_WRITE(next2_char);
-   this_char = (this_char << 16) | 
(next_char << 8) | next_char;
+   this_char = (this_char << 16) | 
(next_char << 8) | next2_char;
} else {
MB_FAILURE(pos);
}

Modified: php/php-src/branches/PHP_5_3/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_3/ext/standard/html.c2009-10-12 14:26:47 UTC 
(rev 289566)
+++ php/php-src/branches/PHP_5_3/ext/standard/html.c2009-10-12 14:29:45 UTC 
(rev 289567)
@@ -688,7 +688,7 @@
MB_WRITE(this_char);
MB_WRITE(next_char);
MB_WRITE(next2_char);
-   this_char = (this_char << 16) | 
(next_char << 8) | next_char;
+   this_char = (this_char << 16) | 
(next_char << 8) | next2_char;
} else {
MB_FAILURE(pos);
}

Modified: php/php-src/trunk/ext/standard/html.c
===
--- php/php-src/trunk/ext/standard/html.c   2009-10-12 14:26:47 UTC (rev 
289566)
+++ php/php-src/trunk/ext/standard/html.c   2009-10-12 14:29:45 UTC (rev 
289567)
@@ -694,7 +694,7 @@
MB_WRITE(this_char);
MB_WRITE(next_char);
MB_WRITE(next2_char);
-   this_char = (this_char << 16) | 
(next_char << 8) | next_char;
+   this_char = (this_char << 16) | 
(next_char << 8) | next2_char;
} else {
MB_FAILURE(pos);
}

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/standard/html.c branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt branches/PHP_5_3/ext/standard/html.c branches/PHP_5_3/ext/standard/tests/str

2009-10-12 Thread Moriyoshi Koizumi
moriyoshiTue, 13 Oct 2009 05:18:37 +

Revision: http://svn.php.net/viewvc?view=revision&revision=289605

Log:
- Bug #49785: take 5. What the hell happened to me...

Bug: http://bugs.php.net/49785 (Closed) htmlspecialchars() should check byte 
sequence more strictly
  
Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/html.c
U   php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/branches/PHP_5_3/ext/standard/html.c
U   php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/trunk/ext/standard/html.c
U   php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt

Modified: php/php-src/branches/PHP_5_2/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/html.c	2009-10-13 04:32:39 UTC (rev 289604)
+++ php/php-src/branches/PHP_5_2/ext/standard/html.c	2009-10-13 05:18:37 UTC (rev 289605)
@@ -539,19 +539,18 @@
 c = str[pos];
 if (c < 0x80) {
 	MB_WRITE(c);
-this_char = c;
+	this_char = c;
 	pos++;
 } else if (c < 0xc0) {
 	MB_FAILURE(pos);
 } else if (c < 0xe0) {
 	CHECK_LEN(pos, 2);
 	if (str[pos + 1] < 0x80 || str[pos + 1] > 0xbf) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	this_char = ((c & 0x1f) << 6) | (str[pos + 1] & 0x3f);
 	if (this_char < 0x80) {
-		*status = FAILURE;
-		return 0;
+		MB_FAILURE(pos);
 	}
 	MB_WRITE((unsigned char)c);
 	MB_WRITE((unsigned char)str[pos + 1]);
@@ -559,14 +558,14 @@
 } else if (c < 0xf0) {
 	CHECK_LEN(pos, 3);
 	if (str[pos + 1] < 0x80 || str[pos + 1] > 0xbf) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	if (str[pos + 2] < 0x80 || str[pos + 2] > 0xbf) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	this_char = ((c & 0x0f) << 12) | ((str[pos + 1] & 0x3f) << 6) | (str[pos + 2] & 0x3f);
 	if (this_char < 0x800) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	MB_WRITE((unsigned char)c);
 	MB_WRITE((unsigned char)str[pos + 1]);
@@ -575,17 +574,17 @@
 } else if (c < 0xf8) {
 	CHECK_LEN(pos, 4);
 	if (str[pos + 1] < 0x80 || str[pos + 1] > 0xbf) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	if (str[pos + 2] < 0x80 || str[pos + 2] > 0xbf) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	if (str[pos + 3] < 0x80 || str[pos + 3] > 0xbf) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	this_char = ((c & 0x07) << 18) | ((str[pos + 1] & 0x3f) << 12) | ((str[pos + 2] & 0x3f) << 6) | (str[pos + 3] & 0x3f);
 	if (this_char < 0x1) {
-MB_FAILURE(pos);
+		MB_FAILURE(pos);
 	}
 	MB_WRITE((unsigned char)c);
 	MB_WRITE((unsigned char)str[pos + 1]);
@@ -593,7 +592,7 @@
 	MB_WRITE((unsigned char)str[pos + 3]);
 	pos += 4;
 } else {
-MB_FAILURE(pos);
+	MB_FAILURE(pos);
 }
 			}
 			break;

Modified: php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
===
--- php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt	2009-10-13 04:32:39 UTC (rev 289604)
+++ php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt	2009-10-13 05:18:37 UTC (rev 289605)
@@ -36,6 +36,12 @@
 var_dump(_bin2hex(htmlentities("\xf8\x88\x80\x80\x80", ENT_QUOTES, "UTF-8")));

 echo "--\n";
+// UTF-8: with ENT_IGNORE
+var_dump(_bin2hex(htmlentities("\xc0\xa0\xc2\x80", ENT_QUOTES | ENT_IGNORE, "UTF-8")));
+var_dump(_bin2hex(htmlentities("\xe0\x80\x80\xe0\xa0\x80", ENT_QUOTES | ENT_IGNORE, "UTF-8")));
+var_dump(_bin2hex(htmlentities("\xf0\x80\x80\x80\xf0\x90\x80\x80", ENT_QUOTES | ENT_IGNORE, "UTF-8")));
+
+echo "--\n";
 // UTF-8: alternative (invalid) UTF-8 sequence
 var_dump(_bin2hex(htmlspecialchars("\xc0\xa6", ENT_QUOTES, 'UTF-8')));
 var_dump(_bin2hex(htmlspecialchars("\xe0\x80\xa6", ENT_QUOTES, 'UTF-8')));
@@ -155,6 +161,10 @@
 string(0) ""
 string(0) ""
 --
+string(4) "c280"
+string(6) "e0a080"
+string(8) "f0908080"
+--
 string(0) ""
 string(0) ""
 string(0) ""

Modified: php/php-src/branches/PHP_5_3/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_3/ext/standard/html.c	2009-10-13 04:32:39 UTC (rev 289604)
+++ php/php-src/branches/PHP_5_3/ext/standard/html.c	2009-10-13 05:18:37 UTC (rev 289605)
@@ -538,19 +538,18 @@
 c = str[pos];
 if (c < 0x80) {
 	MB_WRITE(c);
-this_char = c;
+	this_char = c;
 	pos++;
 } else if (c < 0xc0) {
 	MB_FAILURE(pos);
 } else if (c < 0xe0) {
 	CHECK_LEN(pos, 2);
 	if (str[pos + 1] < 0x80 || str[pos + 1] > 0

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/standard/html.c branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt branches/PHP_5_3/ext/standard/html.c branches/PHP_5_3/ext/standard/tests/str

2009-12-07 Thread Moriyoshi Koizumi
moriyoshiMon, 07 Dec 2009 15:41:43 +

Revision: http://svn.php.net/viewvc?view=revision&revision=291821

Log:
- Take account of surrogate pairs.

Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/html.c
U   php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/branches/PHP_5_3/ext/standard/html.c
U   php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt
U   php/php-src/trunk/ext/standard/html.c
U   php/php-src/trunk/ext/standard/tests/strings/bug49785.phpt

Modified: php/php-src/branches/PHP_5_2/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/html.c2009-12-07 15:34:13 UTC 
(rev 291820)
+++ php/php-src/branches/PHP_5_2/ext/standard/html.c2009-12-07 15:41:43 UTC 
(rev 291821)
@@ -566,6 +566,8 @@
this_char = ((c & 0x0f) << 12) | 
((str[pos + 1] & 0x3f) << 6) | (str[pos + 2] & 0x3f);
if (this_char < 0x800) {
MB_FAILURE(pos);
+   } else if (this_char >= 0xd800 && 
this_char <= 0xdfff) {
+   MB_FAILURE(pos);
}
MB_WRITE((unsigned char)c);
MB_WRITE((unsigned char)str[pos + 1]);

Modified: php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt
===
--- php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt   
2009-12-07 15:34:13 UTC (rev 291820)
+++ php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug49785.phpt   
2009-12-07 15:41:43 UTC (rev 291821)
@@ -36,10 +36,14 @@
 var_dump(_bin2hex(htmlentities("\xf8\x88\x80\x80\x80", ENT_QUOTES, "UTF-8")));

 echo "--\n";
-// UTF-8: alternative (invalid) UTF-8 sequence
+// UTF-8: alternative (invalid) UTF-8 sequence / surrogate pairs
 var_dump(_bin2hex(htmlspecialchars("\xc0\xa6", ENT_QUOTES, 'UTF-8')));
 var_dump(_bin2hex(htmlspecialchars("\xe0\x80\xa6", ENT_QUOTES, 'UTF-8')));
 var_dump(_bin2hex(htmlspecialchars("\xf0\x80\x80\xa6", ENT_QUOTES, 'UTF-8')));
+var_dump(_bin2hex(htmlspecialchars("\xec\xbf\xbf", ENT_QUOTES, 'UTF-8')));
+var_dump(_bin2hex(htmlspecialchars("\xed\xa0\x80", ENT_QUOTES, 'UTF-8')));
+var_dump(_bin2hex(htmlspecialchars("\xed\xbf\xbf", ENT_QUOTES, 'UTF-8')));
+var_dump(_bin2hex(htmlspecialchars("\xee\x80\x80", ENT_QUOTES, 'UTF-8')));

 // Shift_JIS: non-lead byte >= 0x80
 var_dump(_bin2hex(htmlspecialchars("\x80", ENT_QUOTES, 'Shift_JIS')));
@@ -158,6 +162,10 @@
 string(0) ""
 string(0) ""
 string(0) ""
+string(6) "ecbfbf"
+string(0) ""
+string(0) ""
+string(6) "ee8080"
 string(2) "80"
 string(2) "a0"
 string(2) "a1"

Modified: php/php-src/branches/PHP_5_3/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_3/ext/standard/html.c2009-12-07 15:34:13 UTC 
(rev 291820)
+++ php/php-src/branches/PHP_5_3/ext/standard/html.c2009-12-07 15:41:43 UTC 
(rev 291821)
@@ -565,6 +565,8 @@
this_char = ((c & 0x0f) << 12) | 
((str[pos + 1] & 0x3f) << 6) | (str[pos + 2] & 0x3f);
if (this_char < 0x800) {
MB_FAILURE(pos);
+   } else if (this_char >= 0xd800 && 
this_char <= 0xdfff) {
+   MB_FAILURE(pos);
}
MB_WRITE((unsigned char)c);
MB_WRITE((unsigned char)str[pos + 1]);

Modified: php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt
===
--- php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt   
2009-12-07 15:34:13 UTC (rev 291820)
+++ php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug49785.phpt   
2009-12-07 15:41:43 UTC (rev 291821)
@@ -42,10 +42,14 @@
 var_dump(_bin2hex(htmlentities("\xf0\x80\x80\x80\xf0\x90\x80\x80", ENT_QUOTES 
| ENT_IGNORE, "UTF-8")));

 echo "--\n";
-// UTF-8: alternative (invalid) UTF-8 sequence
+// UTF-8: alternative (invalid) UTF-8 sequence / surrogate pairs
 var_dump(_bin2hex(htmlspecialchars("\xc0\xa6", ENT_QUOTES, 'UTF-8')));
 var_dump(_bin2hex(htmlspecialchars("\xe0\x80\xa6", ENT_QUOTES, 'UTF-8')));
 var_dump(_bin2hex(htmlspecialchars("\xf0\x80\x80\xa6", ENT_QUOTES, 'UTF-8')));
+var_dump(_bin2hex(htmlspecialchars("\xec\xbf\xbf", ENT_QUOTES, 'UTF-8')));
+var_dump(_bin2hex(htmlspecialchars("\xed\xa0\x80", ENT_QUOTES, 'UTF-8')));
+var_dump(_bin2hex(htmlspecialchars("\xed\xbf\xbf", ENT_QUOTES, 'UTF-8')

[PHP-CVS] svn: /php/php-src/branches/PHP_5_3/ NEWS ext/standard/html.c ext/standard/tests/strings/html_entity_decode_html4.phpt ext/standard/tests/strings/htmlentities_html4.phpt

2009-12-22 Thread Moriyoshi Koizumi
moriyoshiTue, 22 Dec 2009 05:50:34 +

Revision: http://svn.php.net/viewvc?view=revision&revision=292467

Log:
- Fix bug #46478 (htmlentities() uses obsolete mapping table for character
  entity references)

Bug: http://bugs.php.net/46478 (Assigned) htmlentities() uses obsolete mapping 
table for character entity references
  
Changed paths:
U   php/php-src/branches/PHP_5_3/NEWS
U   php/php-src/branches/PHP_5_3/ext/standard/html.c
A   
php/php-src/branches/PHP_5_3/ext/standard/tests/strings/html_entity_decode_html4.phpt
A   
php/php-src/branches/PHP_5_3/ext/standard/tests/strings/htmlentities_html4.phpt

Modified: php/php-src/branches/PHP_5_3/NEWS
===
--- php/php-src/branches/PHP_5_3/NEWS	2009-12-22 03:19:47 UTC (rev 292466)
+++ php/php-src/branches/PHP_5_3/NEWS	2009-12-22 05:50:34 UTC (rev 292467)
@@ -134,6 +134,8 @@
 - Fixed bug #49174 (crash when extending PDOStatement and trying to set
   queryString property). (Felipe)
 - Fixed bug #47848 (importNode doesn't preserve attribute namespaces). (Rob)
+- Fixed bug #46478 (htmlentities() uses obsolete mapping table for character
+  entity references). (Moriyoshi)
 - Fixed bug #45599 (strip_tags() truncates rest of string with invalid
   attribute). (Ilia, hradtke)
 - Fixed bug #45120 (PDOStatement->execute() returns true then false for same

Modified: php/php-src/branches/PHP_5_3/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_3/ext/standard/html.c	2009-12-22 03:19:47 UTC (rev 292466)
+++ php/php-src/branches/PHP_5_3/ext/standard/html.c	2009-12-22 05:50:34 UTC (rev 292467)
@@ -144,7 +144,7 @@
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	"thetasym", "upsih",
 	NULL, NULL, NULL,
-	"piv"
+	"piv"
 };

 static entity_table_t ent_uni_punct[] = {
@@ -154,7 +154,7 @@
 	NULL, NULL, NULL, "ndash", "mdash", NULL, NULL, NULL,
 	/* 8216 */
 	"lsquo", "rsquo", "sbquo", NULL, "ldquo", "rdquo", "bdquo", NULL,
-	"dagger", "Dagger",	"bull", NULL, NULL, NULL, "hellip",
+	"dagger", "Dagger", "bull", NULL, NULL, NULL, "hellip",
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "permil", NULL,
 	/* 8242 */
 	"prime", "Prime", NULL, NULL, NULL, NULL, NULL, "lsaquo", "rsaquo", NULL,
@@ -194,39 +194,39 @@
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8656 (0x21d0) */
-	"lArr", "uArr", "rArr", "dArr", "hArr", "vArr", NULL, NULL,
-	NULL, NULL, "lAarr", "rAarr", NULL, "rarrw", NULL, NULL,
+	"lArr", "uArr", "rArr", "dArr", "hArr", NULL, NULL, NULL,
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8672 (0x21e0) */
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8704 (0x2200) */
-	"forall", "comp", "part", "exist", "nexist", "empty", NULL, "nabla",
-	"isin", "notin", "epsis", "ni", "notni", "bepsi", NULL, "prod",
+	"forall", NULL, "part", "exist", NULL, "empty", NULL, "nabla",
+	"isin", "notin", NULL, "ni", NULL, NULL, NULL, "prod",
 	/* 8720 (0x2210) */
-	"coprod", "sum", "minus", "mnplus", "plusdo", NULL, "setmn", "lowast",
-	"compfn", NULL, "radic", NULL, NULL, "prop", "infin", "ang90",
+	NULL, "sum", "minus", NULL, NULL, NULL, NULL, "lowast",
+	NULL, NULL, "radic", NULL, NULL, "prop", "infin", NULL,
 	/* 8736 (0x2220) */
-	"ang", "angmsd", "angsph", "mid", "nmid", "par", "npar", "and",
-	"or", "cap", "cup", "int", NULL, NULL, "conint", NULL,
+	"ang", NULL, NULL, NULL, NULL, NULL, NULL, "and",
+	"or", "cap", "cup", "int", NULL, NULL, NULL, NULL,
 	/* 8752 (0x2230) */
-	NULL, NULL, NULL, NULL, "there4", "becaus", NULL, NULL,
-	NULL, NULL, NULL, NULL, "sim", "bsim", NULL, NULL,
+	NULL, NULL, NULL, NULL, "there4", NULL, NULL, NULL,
+	NULL, NULL, NULL, NULL, "sim", NULL, NULL, NULL,
 	/* 8768 (0x2240) */
-	"wreath", "nsim", NULL, "sime", "nsime", "cong", NULL, "ncong",
-	"asymp", "nap", "ape", NULL, "bcong", "asymp", "bump", "bumpe",
+	NULL, NULL, NULL, NULL, NULL, "cong", NULL, NULL,
+	"asymp", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8784 (0x2250) */
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8800 (0x2260) */
-	"ne", "equiv", NULL, NULL, "le", "ge", "lE", "gE",
-	"lnE", "gnE", "Lt", "Gt", "twixt", NULL, "nlt", "ngt",
+	"ne", "equiv", NULL, NULL, "le", "ge", NULL, NULL,
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8816 (0x2270) */
-	"nles", "nges", "lsim", "gsim", NULL, NULL, "lg", "gl",
-	NULL, NULL, "pr", "sc", "cupre", "sscue", "prsim", "scsim",
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8832 (0x2280) */
-	"npr", "nsc", "sub", "sup", "nsub", "nsup", "sube", "supe",
+	NULL, NULL, "sub", "sup", "nsub", NULL, "sube", "supe",
 	NULL, NULL, N

Re: [PHP-CVS] svn: /php/php-src/branches/PHP_5_3/ NEWS ext/standard/html.c ext/standard/tests/strings/html_entity_decode_html4.phpt ext/standard/tests/strings/htmlentities_html4.phpt

2009-12-23 Thread Moriyoshi Koizumi
I just forgot about HEAD. The change will be available shortly.

Moriyoshi

On Thu, Dec 24, 2009 at 5:56 AM, Jani Taskinen  wrote:
> You seem to have forgot to commit to HEAD first and then _merge_ to branch
> again. Or was this something that isn't needed in HEAD or what?
>
> --Jani
>
>
> 22.12.2009 7:50, Moriyoshi Koizumi wrote:
>>
>> moriyoshi                                Tue, 22 Dec 2009 05:50:34 +
>>
>> Revision: http://svn.php.net/viewvc?view=revision&revision=292467
>>
>> Log:
>> - Fix bug #46478 (htmlentities() uses obsolete mapping table for character
>>   entity references)
>>
>> Bug: http://bugs.php.net/46478 (Assigned) htmlentities() uses obsolete
>> mapping table for character entity references
>>
>> Changed paths:
>>     U   php/php-src/branches/PHP_5_3/NEWS
>>     U   php/php-src/branches/PHP_5_3/ext/standard/html.c
>>     A
>> php/php-src/branches/PHP_5_3/ext/standard/tests/strings/html_entity_decode_html4.phpt
>>     A
>> php/php-src/branches/PHP_5_3/ext/standard/tests/strings/htmlentities_html4.phpt
>>
>>
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

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



[PHP-CVS] svn: /php/php-src/trunk/ext/standard/ html.c tests/strings/html_entity_decode_html4.phpt tests/strings/htmlentities_html4.phpt

2009-12-24 Thread Moriyoshi Koizumi
moriyoshiThu, 24 Dec 2009 09:32:52 +

Revision: http://svn.php.net/viewvc?view=revision&revision=292588

Log:
- MFB: Fix bug #46478 (htmlentities() uses obsolete mapping table for character
  entity references)
  (this should be gone to r292467)

Bug: http://bugs.php.net/46478 (Closed) htmlentities() uses obsolete mapping 
table for character entity references
  
Changed paths:
U   php/php-src/trunk/ext/standard/html.c
A   
php/php-src/trunk/ext/standard/tests/strings/html_entity_decode_html4.phpt
A   php/php-src/trunk/ext/standard/tests/strings/htmlentities_html4.phpt

Modified: php/php-src/trunk/ext/standard/html.c
===
--- php/php-src/trunk/ext/standard/html.c	2009-12-24 09:00:56 UTC (rev 292587)
+++ php/php-src/trunk/ext/standard/html.c	2009-12-24 09:32:52 UTC (rev 292588)
@@ -150,7 +150,7 @@
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	"thetasym", "upsih",
 	NULL, NULL, NULL,
-	"piv"
+	"piv"
 };

 static entity_table_t ent_uni_punct[] = {
@@ -160,7 +160,7 @@
 	NULL, NULL, NULL, "ndash", "mdash", NULL, NULL, NULL,
 	/* 8216 */
 	"lsquo", "rsquo", "sbquo", NULL, "ldquo", "rdquo", "bdquo", NULL,
-	"dagger", "Dagger",	"bull", NULL, NULL, NULL, "hellip",
+	"dagger", "Dagger", "bull", NULL, NULL, NULL, "hellip",
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "permil", NULL,
 	/* 8242 */
 	"prime", "Prime", NULL, NULL, NULL, NULL, NULL, "lsaquo", "rsaquo", NULL,
@@ -200,39 +200,39 @@
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8656 (0x21d0) */
-	"lArr", "uArr", "rArr", "dArr", "hArr", "vArr", NULL, NULL,
-	NULL, NULL, "lAarr", "rAarr", NULL, "rarrw", NULL, NULL,
+	"lArr", "uArr", "rArr", "dArr", "hArr", NULL, NULL, NULL,
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8672 (0x21e0) */
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8704 (0x2200) */
-	"forall", "comp", "part", "exist", "nexist", "empty", NULL, "nabla",
-	"isin", "notin", "epsis", "ni", "notni", "bepsi", NULL, "prod",
+	"forall", NULL, "part", "exist", NULL, "empty", NULL, "nabla",
+	"isin", "notin", NULL, "ni", NULL, NULL, NULL, "prod",
 	/* 8720 (0x2210) */
-	"coprod", "sum", "minus", "mnplus", "plusdo", NULL, "setmn", "lowast",
-	"compfn", NULL, "radic", NULL, NULL, "prop", "infin", "ang90",
+	NULL, "sum", "minus", NULL, NULL, NULL, NULL, "lowast",
+	NULL, NULL, "radic", NULL, NULL, "prop", "infin", NULL,
 	/* 8736 (0x2220) */
-	"ang", "angmsd", "angsph", "mid", "nmid", "par", "npar", "and",
-	"or", "cap", "cup", "int", NULL, NULL, "conint", NULL,
+	"ang", NULL, NULL, NULL, NULL, NULL, NULL, "and",
+	"or", "cap", "cup", "int", NULL, NULL, NULL, NULL,
 	/* 8752 (0x2230) */
-	NULL, NULL, NULL, NULL, "there4", "becaus", NULL, NULL,
-	NULL, NULL, NULL, NULL, "sim", "bsim", NULL, NULL,
+	NULL, NULL, NULL, NULL, "there4", NULL, NULL, NULL,
+	NULL, NULL, NULL, NULL, "sim", NULL, NULL, NULL,
 	/* 8768 (0x2240) */
-	"wreath", "nsim", NULL, "sime", "nsime", "cong", NULL, "ncong",
-	"asymp", "nap", "ape", NULL, "bcong", "asymp", "bump", "bumpe",
+	NULL, NULL, NULL, NULL, NULL, "cong", NULL, NULL,
+	"asymp", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8784 (0x2250) */
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8800 (0x2260) */
-	"ne", "equiv", NULL, NULL, "le", "ge", "lE", "gE",
-	"lnE", "gnE", "Lt", "Gt", "twixt", NULL, "nlt", "ngt",
+	"ne", "equiv", NULL, NULL, "le", "ge", NULL, NULL,
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8816 (0x2270) */
-	"nles", "nges", "lsim", "gsim", NULL, NULL, "lg", "gl",
-	NULL, NULL, "pr", "sc", "cupre", "sscue", "prsim", "scsim",
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8832 (0x2280) */
-	"npr", "nsc", "sub", "sup", "nsub", "nsup", "sube", "supe",
+	NULL, NULL, "sub", "sup", "nsub", NULL, "sube", "supe",
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	/* 8848 (0x2290) */
 	NULL, NULL, NULL, NULL, NULL, "oplus", NULL, "otimes",

Added: php/php-src/trunk/ext/standard/tests/strings/html_entity_decode_html4.phpt
===
--- php/php-src/trunk/ext/standard/tests/strings/html_entity_decode_html4.phpt	(rev 0)
+++ php/php-src/trunk/ext/standard/tests/strings/html_entity_decode_html4.phpt	2009-12-24 09:32:52 UTC (rev 292588)
@@ -0,0 +1,516 @@
+--TEST--
+html_entity_decode() conformance check (HTML 4)
+--FILE--
+
+--EXPECT--
+22
+26
+3c
+3e
+c2a0
+c2a1
+c2a2
+c2a3
+c2a4
+c2a5
+c2a6
+c2a7
+c2a8
+c2a9
+c2aa
+c2ab
+c2ac
+c2ad
+c2ae
+c2af
+c2b0
+c2b1
+c2b2
+c2b3
+c2b4
+c2b5
+c2b6
+c2b7
+c2b8
+c2b9
+c2ba
+c2bb
+c2bc
+c2bd
+c2be
+c2bf
+c380
+c381
+c382
+c383
+c384
+c3

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c trunk/ext/mbstring/libmbfl/filters/

2010-02-27 Thread Moriyoshi Koizumi
moriyoshiSun, 28 Feb 2010 07:49:36 +

Revision: http://svn.php.net/viewvc?view=revision&revision=295575

Log:
- Whitespaces.

Changed paths:
U   
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
U   php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c

Modified: 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
===
--- 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 04:02:52 UTC (rev 295574)
+++ 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 07:49:36 UTC (rev 295575)
@@ -153,8 +153,8 @@
w = cp932ext1_ucs_table[s - 
cp932ext1_ucs_table_min];
} else if (s >= 0 && s < 
jisx0208_ucs_table_size) { /* X 0208 */
w = jisx0208_ucs_table[s];
-   } else if (s >= (84*94)) {  /* user 
(85ku - 94ku) */
-   w = s - (84*94) + 0xe000;
+   } else if (s >= (84 * 94)) {/* user 
(85ku - 94ku) */
+   w = s - (84 * 94) + 0xe000;
}
}
if (w <= 0) {

Modified: 
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
===
--- 
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 04:02:52 UTC (rev 295574)
+++ 
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 07:49:36 UTC (rev 295575)
@@ -153,8 +153,8 @@
w = cp932ext1_ucs_table[s - 
cp932ext1_ucs_table_min];
} else if (s >= 0 && s < 
jisx0208_ucs_table_size) { /* X 0208 */
w = jisx0208_ucs_table[s];
-   } else if (s >= (84*94)) {  /* user 
(85ku - 94ku) */
-   w = s - (84*94) + 0xe000;
+   } else if (s >= (84 * 94)) {/* user 
(85ku - 94ku) */
+   w = s - (84 * 94) + 0xe000;
}
}
if (w <= 0) {

Modified: php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
===
--- php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
2010-02-28 04:02:52 UTC (rev 295574)
+++ php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
2010-02-28 07:49:36 UTC (rev 295575)
@@ -153,8 +153,8 @@
w = cp932ext1_ucs_table[s - 
cp932ext1_ucs_table_min];
} else if (s >= 0 && s < 
jisx0208_ucs_table_size) { /* X 0208 */
w = jisx0208_ucs_table[s];
-   } else if (s >= (84*94)) {  /* user 
(85ku - 94ku) */
-   w = s - (84*94) + 0xe000;
+   } else if (s >= (84 * 94)) {/* user 
(85ku - 94ku) */
+   w = s - (84 * 94) + 0xe000;
}
}
if (w <= 0) {

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c trunk/ext/mbstring/libmbfl/filters/

2010-02-28 Thread Moriyoshi Koizumi
moriyoshiSun, 28 Feb 2010 09:33:05 +

Revision: http://svn.php.net/viewvc?view=revision&revision=295576

Log:
- Merge from upstream (note: this is no behavioral change, so need not to be
  merged to 5.3.2 branch)

Changed paths:
U   
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
U   php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c

Modified: 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
===
--- 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 07:49:36 UTC (rev 295575)
+++ 
php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 09:33:05 UTC (rev 295576)
@@ -327,8 +327,10 @@
c1 = 0;
c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min;
while (c1 < c2) {   /* CP932 vendor ext1 
(13ku) */
+   const int oh = cp932ext1_ucs_table_min / 94;
+
if (c == cp932ext1_ucs_table[c1]) {
-   s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 
0x21);
+   s1 = ((c1 / 94 + oh + 0x21) << 8) + (c1 
% 94 + 0x21);
break;
}
c1++;

Modified: 
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
===
--- 
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 07:49:36 UTC (rev 295575)
+++ 
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c 
2010-02-28 09:33:05 UTC (rev 295576)
@@ -327,8 +327,10 @@
c1 = 0;
c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min;
while (c1 < c2) {   /* CP932 vendor ext1 
(13ku) */
+   const int oh = cp932ext1_ucs_table_min / 94;
+
if (c == cp932ext1_ucs_table[c1]) {
-   s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 
0x21);
+   s1 = ((c1 / 94 + oh + 0x21) << 8) + (c1 
% 94 + 0x21);
break;
}
c1++;

Modified: php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
===
--- php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
2010-02-28 07:49:36 UTC (rev 295575)
+++ php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.c
2010-02-28 09:33:05 UTC (rev 295576)
@@ -327,8 +327,10 @@
c1 = 0;
c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min;
while (c1 < c2) {   /* CP932 vendor ext1 
(13ku) */
+   const int oh = cp932ext1_ucs_table_min / 94;
+
if (c == cp932ext1_ucs_table[c1]) {
-   s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 
0x21);
+   s1 = ((c1 / 94 + oh + 0x21) << 8) + (c1 
% 94 + 0x21);
break;
}
c1++;

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/NEWS branches/PHP_5_2/acinclude.m4 branches/PHP_5_2/ext/iconv/iconv.c branches/PHP_5_2/ext/iconv/php_iconv.h branches/PHP_5_3/acinclude.m4 branches/PHP_5_

2010-03-05 Thread Moriyoshi Koizumi
moriyoshiFri, 05 Mar 2010 09:12:13 +

Revision: http://svn.php.net/viewvc?view=revision&revision=295848

Log:
- Fixed bug #49267 (linking fails for iconv)

Bug: http://bugs.php.net/49267 (No Feedback) Linking fails for iconv: 
"Undefined symbols: _libiconv"
  
Changed paths:
U   php/php-src/branches/PHP_5_2/NEWS
U   php/php-src/branches/PHP_5_2/acinclude.m4
U   php/php-src/branches/PHP_5_2/ext/iconv/iconv.c
U   php/php-src/branches/PHP_5_2/ext/iconv/php_iconv.h
U   php/php-src/branches/PHP_5_3/acinclude.m4
U   php/php-src/branches/PHP_5_3/ext/iconv/iconv.c
U   php/php-src/branches/PHP_5_3/ext/iconv/php_iconv.h
U   php/php-src/trunk/acinclude.m4
U   php/php-src/trunk/ext/iconv/iconv.c
U   php/php-src/trunk/ext/iconv/php_iconv.h

Modified: php/php-src/branches/PHP_5_2/NEWS
===
--- php/php-src/branches/PHP_5_2/NEWS   2010-03-05 06:45:28 UTC (rev 295847)
+++ php/php-src/branches/PHP_5_2/NEWS   2010-03-05 09:12:13 UTC (rev 295848)
@@ -11,6 +11,7 @@
   an invalid option is provided). (Ilia)
 - Fixed bug #51086 (DBA DB4 doesn't work with Berkeley DB 4.8). (Chris Jones)
 - Fixed bug #51062 (DBA DB4 uses mismatched headers and libraries). (Chris 
Jones)
+- Fixed bug #49267 (Linking fails for iconv). (Moriyosh)
 - Fixed bug #43314 (iconv_mime_encode(), broken Q scheme). (Rasmus)
 - Fixed bug #23229 (syslog function truncates messages). (Adam)


Modified: php/php-src/branches/PHP_5_2/acinclude.m4
===
--- php/php-src/branches/PHP_5_2/acinclude.m4   2010-03-05 06:45:28 UTC (rev 
295847)
+++ php/php-src/branches/PHP_5_2/acinclude.m4   2010-03-05 09:12:13 UTC (rev 
295848)
@@ -2424,6 +2424,7 @@
   echo > ext/iconv/php_have_libiconv.h
   echo > ext/iconv/php_have_iconv.h
   echo > ext/iconv/php_php_iconv_impl.h
+  echo > ext/iconv/php_have_libiconv_in_libiconv.h
   echo > ext/iconv/php_php_iconv_h_path.h
   echo > ext/iconv/php_iconv_supports_errno.h

@@ -2471,6 +2472,8 @@
 found_iconv=yes
 PHP_DEFINE(HAVE_LIBICONV,1,[ext/iconv])
 AC_DEFINE(HAVE_LIBICONV,1,[ ])
+PHP_DEFINE([HAVE_LIBICONV_IN_LIBICONV],1,[ext/iconv])
+AC_DEFINE([HAVE_LIBICONV_IN_LIBICONV],1,[iconv() is aliased to 
libiconv() in -liconv])
   ], [
 PHP_CHECK_LIBRARY($iconv_lib_name, iconv, [
   found_iconv=yes

Modified: php/php-src/branches/PHP_5_2/ext/iconv/iconv.c
===
--- php/php-src/branches/PHP_5_2/ext/iconv/iconv.c  2010-03-05 06:45:28 UTC 
(rev 295847)
+++ php/php-src/branches/PHP_5_2/ext/iconv/iconv.c  2010-03-05 09:12:13 UTC 
(rev 295848)
@@ -193,7 +193,7 @@
 }
 /* }}} */

-#ifdef HAVE_LIBICONV
+#if defined(HAVE_LIBICONV) && defined(HAVE_LIBICONV_IN_LIBICONV)
 #define iconv libiconv
 #endif


Modified: php/php-src/branches/PHP_5_2/ext/iconv/php_iconv.h
===
--- php/php-src/branches/PHP_5_2/ext/iconv/php_iconv.h  2010-03-05 06:45:28 UTC 
(rev 295847)
+++ php/php-src/branches/PHP_5_2/ext/iconv/php_iconv.h  2010-03-05 09:12:13 UTC 
(rev 295848)
@@ -35,6 +35,7 @@
 #ifdef PHP_ATOM_INC
 #include "ext/iconv/php_have_iconv.h"
 #include "ext/iconv/php_have_libiconv.h"
+#include "ext/iconv/php_have_libiconv_in_libiconv.h"
 #include "ext/iconv/php_have_glibc_iconv.h"
 #include "ext/iconv/php_have_bsd_iconv.h"
 #include "ext/iconv/php_iconv_supports_errno.h"

Modified: php/php-src/branches/PHP_5_3/acinclude.m4
===
--- php/php-src/branches/PHP_5_3/acinclude.m4   2010-03-05 06:45:28 UTC (rev 
295847)
+++ php/php-src/branches/PHP_5_3/acinclude.m4   2010-03-05 09:12:13 UTC (rev 
295848)
@@ -2424,6 +2424,7 @@
   echo > ext/iconv/php_have_libiconv.h
   echo > ext/iconv/php_have_iconv.h
   echo > ext/iconv/php_php_iconv_impl.h
+  echo > ext/iconv/php_have_libiconv_in_libiconv.h
   echo > ext/iconv/php_php_iconv_h_path.h
   echo > ext/iconv/php_iconv_supports_errno.h

@@ -2471,6 +2472,8 @@
 found_iconv=yes
 PHP_DEFINE(HAVE_LIBICONV,1,[ext/iconv])
 AC_DEFINE(HAVE_LIBICONV,1,[ ])
+PHP_DEFINE([HAVE_LIBICONV_IN_LIBICONV],1,[ext/iconv])
+AC_DEFINE([HAVE_LIBICONV_IN_LIBICONV],1,[iconv() is aliased to 
libiconv() in -liconv])
   ], [
 PHP_CHECK_LIBRARY($iconv_lib_name, iconv, [
   found_iconv=yes

Modified: php/php-src/branches/PHP_5_3/ext/iconv/iconv.c
===
--- php/php-src/branches/PHP_5_3/ext/iconv/iconv.c  2010-03-05 06:45:28 UTC 
(rev 295847)
+++ php/php-src/branches/PHP_5_3/ext/iconv/iconv.c  2010-03-05 09:12:13 UTC 
(rev 295848)
@@ -182,7 +182,7 @@
 }
 /* }}} */

-#ifdef HAVE_LIBICONV
+#if defined(HAVE_LIBICONV) && defined(HAVE_LIBICONV_IN_LIBICONV)
 #define iconv libiconv
 #endif


M

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mbstring/config.m4 branches/PHP_5_3/ext/mbstring/config.w32 branches/PHP_5_3/ext/mbstring/libmbfl/Makefile.am branches/PHP_5_3/ext/mbstring/libmbfl/Ma

2010-03-11 Thread Moriyoshi Koizumi
moriyoshiFri, 12 Mar 2010 04:55:37 +

Revision: http://svn.php.net/viewvc?view=revision&revision=296101

Log:
- Update the bundled libmbfl to the latest on upstream.

Changed paths:
U   php/php-src/branches/PHP_5_3/ext/mbstring/config.m4
U   php/php-src/branches/PHP_5_3/ext/mbstring/config.w32
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/Makefile.am
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/Makefile.bcc32
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/config.h.bcc32
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/config.h.in
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/config.h.vc6
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/configure.in
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/Makefile.am
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/Makefile.bcc32
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_cp5022x.h
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_cp51932.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_cp932.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_cp932.h
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.c
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_jis.c
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.c
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_sjis_open.h
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.c
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.h
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/mbfilter_utf7.c
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/filters/translit_kana_jisx0201_jisx0208.h
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/libmbfl.dsp
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/libmbfl.dsw
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/libmbfl.sln
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/libmbfl.vcproj
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/Makefile.am
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/Makefile.bcc32
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/eaw_table.h
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfilter.c
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfilter.h
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfl_convert.c
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfl_convert.h
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfl_encoding.c
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfl_ident.c
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl.def
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl.rc
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mksbcc32.bat
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/nls/Makefile.am
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/nls/Makefile.bcc32
D   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/rules.mak.bcc32
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/tests/conv_encoding.tests/Makefile.am
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/tests/conv_encoding.tests/gen_exp.c
A   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/tests/conv_encoding.tests/yensign.exp
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/tests/sample.c
U   
php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/tests/strcut.tests/iso2022jp.exp
U   php/php-src/trunk/ext/mbstring/config.m4
U   php/php-src/trunk/ext/mbstring/config.w32
U   php/php-src/trunk/ext/mbstring/libmbfl/Makefile.am
D   php/php-src/trunk/ext/mbstring/libmbfl/Makefile.bcc32
D   php/php-src/trunk/ext/mbstring/libmbfl/config.h.bcc32
U   php/php-src/trunk/ext/mbstring/libmbfl/config.h.in
D   php/php-src/trunk/ext/mbstring/libmbfl/config.h.vc6

[PHP-CVS] svn: /php/php-src/trunk/ext/standard/ html.c

2010-03-12 Thread Moriyoshi Koizumi
moriyoshiFri, 12 Mar 2010 14:44:35 +

Revision: http://svn.php.net/viewvc?view=revision&revision=296118

Log:
- Oops.

Changed paths:
U   php/php-src/trunk/ext/standard/html.c

Modified: php/php-src/trunk/ext/standard/html.c
===
--- php/php-src/trunk/ext/standard/html.c   2010-03-12 13:46:52 UTC (rev 
296117)
+++ php/php-src/trunk/ext/standard/html.c   2010-03-12 14:44:35 UTC (rev 
296118)
@@ -747,8 +747,8 @@
return cs_eucjp;

case mbfl_no_encoding_sjis:
-   case mbfl_no_encoding_sjis_win:
-   case mbfl_no_encoding_sjis_mac:
+   case mbfl_no_encoding_sjis_open:
+   case mbfl_no_encoding_cp932:
return cs_sjis;

case mbfl_no_encoding_cp1252:

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

Re: [PHP-CVS] svn: /php/php-src/trunk/ext/standard/ html.c

2010-03-12 Thread Moriyoshi Koizumi
I forgot to apply the patch to trunk at that time. So 5_3 should have
been working. Doesn't it?

Moriyoshi

On Fri, Mar 12, 2010 at 11:53 PM, Felipe Pena  wrote:
> and 5_3? Thanks.
>
> 2010/3/12 Moriyoshi Koizumi 
>
>> moriyoshi                                Fri, 12 Mar 2010 14:44:35 +
>>
>> Revision: http://svn.php.net/viewvc?view=revision&revision=296118
>>
>> Log:
>> - Oops.
>>
>> Changed paths:
>>    U   php/php-src/trunk/ext/standard/html.c
>>
>> Modified: php/php-src/trunk/ext/standard/html.c
>> ===
>> --- php/php-src/trunk/ext/standard/html.c       2010-03-12 13:46:52 UTC
>> (rev 296117)
>> +++ php/php-src/trunk/ext/standard/html.c       2010-03-12 14:44:35 UTC
>> (rev 296118)
>> @@ -747,8 +747,8 @@
>>                        return cs_eucjp;
>>
>>                case mbfl_no_encoding_sjis:
>> -               case mbfl_no_encoding_sjis_win:
>> -               case mbfl_no_encoding_sjis_mac:
>> +               case mbfl_no_encoding_sjis_open:
>> +               case mbfl_no_encoding_cp932:
>>                        return cs_sjis;
>>
>>                case mbfl_no_encoding_cp1252:
>>
>>
>> --
>> PHP CVS Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>
>
> --
> Regards,
> Felipe Pena
>

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



[PHP-CVS] svn: /php/php-src/branches/ PHP_5_2/ext/standard/html.c PHP_5_3/ext/standard/html.c PHP_5_4/ext/standard/html.c

2010-03-12 Thread Moriyoshi Koizumi
moriyoshiFri, 12 Mar 2010 16:19:25 +

Revision: http://svn.php.net/viewvc?view=revision&revision=296121

Log:
- Forgot to commit this patch. Sorry.

Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/html.c
U   php/php-src/branches/PHP_5_3/ext/standard/html.c
U   php/php-src/branches/PHP_5_4/ext/standard/html.c

Modified: php/php-src/branches/PHP_5_2/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/html.c2010-03-12 15:01:14 UTC 
(rev 296120)
+++ php/php-src/branches/PHP_5_2/ext/standard/html.c2010-03-12 16:19:25 UTC 
(rev 296121)
@@ -742,8 +742,8 @@
return cs_eucjp;

case mbfl_no_encoding_sjis:
-   case mbfl_no_encoding_sjis_win:
-   case mbfl_no_encoding_sjis_mac:
+   case mbfl_no_encoding_sjis_open:
+   case mbfl_no_encoding_cp932:
return cs_sjis;

case mbfl_no_encoding_cp1252:

Modified: php/php-src/branches/PHP_5_3/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_3/ext/standard/html.c2010-03-12 15:01:14 UTC 
(rev 296120)
+++ php/php-src/branches/PHP_5_3/ext/standard/html.c2010-03-12 16:19:25 UTC 
(rev 296121)
@@ -741,8 +741,8 @@
return cs_eucjp;

case mbfl_no_encoding_sjis:
-   case mbfl_no_encoding_sjis_win:
-   case mbfl_no_encoding_sjis_mac:
+   case mbfl_no_encoding_sjis_open:
+   case mbfl_no_encoding_cp932:
return cs_sjis;

case mbfl_no_encoding_cp1252:

Modified: php/php-src/branches/PHP_5_4/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_4/ext/standard/html.c2010-03-12 15:01:14 UTC 
(rev 296120)
+++ php/php-src/branches/PHP_5_4/ext/standard/html.c2010-03-12 16:19:25 UTC 
(rev 296121)
@@ -741,8 +741,8 @@
return cs_eucjp;

case mbfl_no_encoding_sjis:
-   case mbfl_no_encoding_sjis_win:
-   case mbfl_no_encoding_sjis_mac:
+   case mbfl_no_encoding_sjis_open:
+   case mbfl_no_encoding_cp932:
return cs_sjis;

case mbfl_no_encoding_cp1252:

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

[PHP-CVS] svn: /php/php-src/branches/PHP_5_2/ext/standard/ html.c

2010-03-12 Thread Moriyoshi Koizumi
moriyoshiFri, 12 Mar 2010 16:23:18 +

Revision: http://svn.php.net/viewvc?view=revision&revision=296122

Log:
- Revert accidental commit.

Changed paths:
U   php/php-src/branches/PHP_5_2/ext/standard/html.c

Modified: php/php-src/branches/PHP_5_2/ext/standard/html.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/html.c2010-03-12 16:19:25 UTC 
(rev 296121)
+++ php/php-src/branches/PHP_5_2/ext/standard/html.c2010-03-12 16:23:18 UTC 
(rev 296122)
@@ -742,8 +742,8 @@
return cs_eucjp;

case mbfl_no_encoding_sjis:
-   case mbfl_no_encoding_sjis_open:
-   case mbfl_no_encoding_cp932:
+   case mbfl_no_encoding_sjis_win:
+   case mbfl_no_encoding_sjis_mac:
return cs_sjis;

case mbfl_no_encoding_cp1252:

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/mbstring/config.w32 branches/PHP_5_2/ext/mbstring/libmbfl/config.h.vc6 branches/PHP_5_2/ext/mbstring/libmbfl/config.h.w32 branches/PHP_5_3/ext/mbstrin

2010-03-15 Thread Moriyoshi Koizumi
moriyoshiMon, 15 Mar 2010 14:19:51 +

Revision: http://svn.php.net/viewvc?view=revision&revision=296242

Log:
- Fix win32 build. (notified by Rob. Thanks)

Changed paths:
U   php/php-src/branches/PHP_5_2/ext/mbstring/config.w32
D   php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.vc6
A   php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.w32
A   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/config.h.w32
U   php/php-src/trunk/ext/mbstring/config.w32
A   php/php-src/trunk/ext/mbstring/libmbfl/config.h.w32

Modified: php/php-src/branches/PHP_5_2/ext/mbstring/config.w32
===
--- php/php-src/branches/PHP_5_2/ext/mbstring/config.w322010-03-15 
13:56:12 UTC (rev 296241)
+++ php/php-src/branches/PHP_5_2/ext/mbstring/config.w322010-03-15 
14:19:51 UTC (rev 296242)
@@ -7,7 +7,7 @@

 if (PHP_MBSTRING == "yes") {

-   FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.vc6",
+   FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.w32",
"ext\\mbstring\\libmbfl\\config.h", true);
FSO.CopyFile("ext\\mbstring\\oniguruma\\win32\\config.h",
"ext\\mbstring\\oniguruma\\config.h", true);

Deleted: php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.vc6
===
--- php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.vc6  
2010-03-15 13:56:12 UTC (rev 296241)
+++ php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.vc6  
2010-03-15 14:19:51 UTC (rev 296242)
@@ -1,12 +0,0 @@
-#define HAVE_STDIO_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STDDEF_H 1
-#define HAVE_ASSERT_H 1
-#define HAVE_MEMORY_H 1
-/* #undef HAVE_STRINGS_H */
-#define HAVE_STRING_H 1
-/* #undef HAVE_STRCASECMP */
-#define HAVE_STRICMP 1
-#define HAVE_WIN32_NATIVE_THREAD 1
-#define USE_WIN32_NATIVE_THREAD 1
-#define ENABLE_THREADS 1

Added: php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.w32
===
--- php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.w32  
(rev 0)
+++ php/php-src/branches/PHP_5_2/ext/mbstring/libmbfl/config.h.w32  
2010-03-15 14:19:51 UTC (rev 296242)
@@ -0,0 +1,12 @@
+#define HAVE_STDIO_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_ASSERT_H 1
+#define HAVE_MEMORY_H 1
+/* #undef HAVE_STRINGS_H */
+#define HAVE_STRING_H 1
+/* #undef HAVE_STRCASECMP */
+#define HAVE_STRICMP 1
+#define HAVE_WIN32_NATIVE_THREAD 1
+#define USE_WIN32_NATIVE_THREAD 1
+#define ENABLE_THREADS 1

Added: php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/config.h.w32
===
--- php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/config.h.w32  
(rev 0)
+++ php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/config.h.w32  
2010-03-15 14:19:51 UTC (rev 296242)
@@ -0,0 +1,12 @@
+#define HAVE_STDIO_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_ASSERT_H 1
+#define HAVE_MEMORY_H 1
+/* #undef HAVE_STRINGS_H */
+#define HAVE_STRING_H 1
+/* #undef HAVE_STRCASECMP */
+#define HAVE_STRICMP 1
+#define HAVE_WIN32_NATIVE_THREAD 1
+#define USE_WIN32_NATIVE_THREAD 1
+#define ENABLE_THREADS 1

Modified: php/php-src/trunk/ext/mbstring/config.w32
===
--- php/php-src/trunk/ext/mbstring/config.w32   2010-03-15 13:56:12 UTC (rev 
296241)
+++ php/php-src/trunk/ext/mbstring/config.w32   2010-03-15 14:19:51 UTC (rev 
296242)
@@ -7,7 +7,7 @@

 if (PHP_MBSTRING != "no") {

-   FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.vc6",
+   FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.w32",
"ext\\mbstring\\libmbfl\\config.h", true);
FSO.CopyFile("ext\\mbstring\\oniguruma\\win32\\config.h",
"ext\\mbstring\\oniguruma\\config.h", true);

Added: php/php-src/trunk/ext/mbstring/libmbfl/config.h.w32
===
--- php/php-src/trunk/ext/mbstring/libmbfl/config.h.w32 
(rev 0)
+++ php/php-src/trunk/ext/mbstring/libmbfl/config.h.w32 2010-03-15 14:19:51 UTC 
(rev 296242)
@@ -0,0 +1,12 @@
+#define HAVE_STDIO_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_ASSERT_H 1
+#define HAVE_MEMORY_H 1
+/* #undef HAVE_STRINGS_H */
+#define HAVE_STRING_H 1
+/* #undef HAVE_STRCASECMP */
+#define HAVE_STRICMP 1
+#define HAVE_WIN32_NATIVE_THREAD 1
+#define USE_WIN32_NATIVE_THREAD 1
+#define ENABLE_THREADS 1

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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt branches/PHP_5_3/NEWS branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfilter.c branches/PHP_5_3/ext/

2010-11-08 Thread Moriyoshi Koizumi
moriyoshiTue, 09 Nov 2010 03:23:04 +

Revision: http://svn.php.net/viewvc?view=revision&revision=305214

Log:
- Fix bug #53273 (mb_strcut() returns garbage with the excessive length 
parameter).

Bug: http://bugs.php.net/53273 (Open) mb_strcut() returns garbage with the 
excessive length parameter
  
Changed paths:
A   
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
U   php/php-src/branches/PHP_5_3/NEWS
U   php/php-src/branches/PHP_5_3/ext/mbstring/libmbfl/mbfl/mbfilter.c
A   
php/php-src/branches/PHP_5_3/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
U   php/php-src/trunk/ext/mbstring/libmbfl/mbfl/mbfilter.c
A   
php/php-src/trunk/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt

Added: 
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
===
--- 
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
   (rev 0)
+++ 
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
   2010-11-09 03:23:04 UTC (rev 305214)
@@ -0,0 +1,62 @@
+--TEST--
+mb_strcut() missing boundary check.
+--SKIPIF--
+
+--FILE--
+
+--FILE--
+val + from;
end   = start + (length & -4);
} else if ((encoding->flag & MBFL_ENCTYPE_SBCS)) {
+   if (from + length >= string->len) {
+   length = string->len - from;
+   }
+
start = string->val + from;
end = start + length;
} else if (encoding->mblen_table != NULL) {

Added: 
php/php-src/branches/PHP_5_3/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
===
--- 
php/php-src/branches/PHP_5_3/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
   (rev 0)
+++ 
php/php-src/branches/PHP_5_3/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
   2010-11-09 03:23:04 UTC (rev 305214)
@@ -0,0 +1,31 @@
+--TEST--
+mb_strcut() missing boundary check.
+--SKIPIF--
+
+--FILE--
+val + from;
end   = start + (length & -4);
} else if ((encoding->flag & MBFL_ENCTYPE_SBCS)) {
+   if (from + length >= string->len) {
+   length = string->len - from;
+   }
+
start = string->val + from;
end = start + length;
} else if (encoding->mblen_table != NULL) {

Added: 
php/php-src/trunk/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
===
--- php/php-src/trunk/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt  
(rev 0)
+++ php/php-src/trunk/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt  
2010-11-09 03:23:04 UTC (rev 305214)
@@ -0,0 +1,31 @@
+--TEST--
+mb_strcut() missing boundary check.
+--SKIPIF--
+
+--FILE--
+-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/PHP_5_2/ext/mbstring/tests/ mb_strcut_missing_boundary_check.phpt

2010-11-08 Thread Moriyoshi Koizumi
moriyoshiTue, 09 Nov 2010 03:27:11 +

Revision: http://svn.php.net/viewvc?view=revision&revision=305215

Log:
- Remove duplicate portion.

Changed paths:
U   
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt

Modified: 
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
===
--- 
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
   2010-11-09 03:23:04 UTC (rev 305214)
+++ 
php/php-src/branches/PHP_5_2/ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt
   2010-11-09 03:27:11 UTC (rev 305215)
@@ -29,34 +29,3 @@
 string(12) "006100620063"
 string(6) "616263"
 string(6) "616263"
---TEST--
-mb_strcut() missing boundary check.
---SKIPIF--
-
---FILE--
--- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

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

2003-01-07 Thread Moriyoshi Koizumi
moriyoshi   Tue Jan  7 17:53:42 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Instances should not be freed in dtor()...
  
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.7 php4/ext/standard/filters.c:1.8
--- php4/ext/standard/filters.c:1.7 Tue Jan  7 17:52:24 2003
+++ php4/ext/standard/filters.c Tue Jan  7 17:53:42 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.7 2003/01/07 22:52:24 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.8 2003/01/07 22:53:42 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -265,8 +265,7 @@
 
 static void php_base64_filter_dtor(php_base64_filter *inst)
 {
-   assert(inst != NULL);
-   efree(inst);
+   /* do nothing */
 }
 
 static size_t strfilter_base64_write(php_stream *stream, php_stream_filter 
*thisfilter,
@@ -448,6 +447,9 @@
 static void strfilter_base64_dtor(php_stream_filter *thisfilter TSRMLS_DC)
 {
php_base64_filter_dtor((php_base64_filter *)thisfilter->abstract);
+
+   assert(thisfilter->abstract != NULL);
+   efree(thisfilter->abstract);
 }
 
 static php_stream_filter_ops strfilter_base64_ops = {



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




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

2003-01-07 Thread Moriyoshi Koizumi
moriyoshi   Tue Jan  7 17:52:24 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Made error msg format more consistent
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.6 php4/ext/standard/filters.c:1.7
--- php4/ext/standard/filters.c:1.6 Mon Jan  6 20:41:18 2003
+++ php4/ext/standard/filters.c Tue Jan  7 17:52:24 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.6 2003/01/07 01:41:18 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.7 2003/01/07 22:52:24 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -375,7 +375,7 @@
 
if (!(i & 0xc0)) {
if (ustat) {
-   php_error(E_WARNING, "stream 
filter(stream.base64): invalid base64 sequence");
+   php_error(E_WARNING, "stream filter(%s): 
+invalid base64 sequence", thisfilter->fops->label);
return 0;
}
if (6 <= pack_bcnt) {
@@ -390,7 +390,7 @@
}
} else if (ustat) {
if (pack_bcnt == 8 || pack_bcnt == 2) {
-   php_error(E_WARNING, "stream 
filter(stream.base64): unexpected end of stream");
+   php_error(E_WARNING, "stream filter(%s): 
+unexpected end of stream", thisfilter->fops->label);
return 0;
}
}
@@ -547,7 +547,7 @@
unsigned int nbl = (*ps >= 'A' ? *ps - 0x37 : *ps - 
0x30);
 
if (nbl > 15) {
-   php_error(E_WARNING, "stream 
filter(stream.quoted-printable): invalid character sequence"); 
+   php_error(E_WARNING, "stream filter(%s): 
+invalid character sequence", thisfilter->fops->label); 
return 0;
}
v = (v << 4) | nbl;



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




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

2003-01-08 Thread Moriyoshi Koizumi
moriyoshi   Wed Jan  8 18:44:38 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Reimplemented base64 filter to use iconv()-like facility for flexibility.
  # I'm leaving the code dirty & ugly prior to the discussion.
  
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.8 php4/ext/standard/filters.c:1.9
--- php4/ext/standard/filters.c:1.8 Tue Jan  7 17:53:42 2003
+++ php4/ext/standard/filters.c Wed Jan  8 18:44:38 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.8 2003/01/07 22:53:42 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.9 2003/01/08 23:44:38 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -207,14 +207,38 @@
 /* }}} */
 
 /* {{{ base64 stream filter implementation */
-typedef struct _php_base64_filter
-{
+
+typedef enum _php_conv_err_t {
+   PHP_CONV_ERR_SUCCESS = SUCCESS,
+   PHP_CONV_ERR_UNKNOWN,
+   PHP_CONV_ERR_TOO_BIG,
+   PHP_CONV_ERR_INVALID_SEQ,
+   PHP_CONV_ERR_UNEXPECTED_EOS
+} php_conv_err_t;
+
+typedef struct _php_conv php_conv;
+
+typedef php_conv_err_t (*php_conv_convert_func)(php_conv *, const char **, size_t *, 
+char **, size_t *);
+typedef void (*php_conv_dtor_func)(php_conv *);
+
+struct _php_conv {
+   php_conv_convert_func convert_op;
+   php_conv_dtor_func dtor;
+};
+
+#define php_conv_convert(a, b, c, d, e) ((php_conv *)(a))->convert_op((php_conv 
+*)(a), (b), (c), (d), (e))
+#define php_conv_dtor(a) ((php_conv *)a)->dtor((a))
+
+/* {{{ php_conv_base64_encode */
+typedef struct _php_conv_base64_encode {
+   php_conv _super;
+
unsigned char erem[3];
size_t erem_len;
-   unsigned int urem;
-   unsigned int urem_nbits;
-   unsigned int ustat;
-} php_base64_filter;
+} php_conv_base64_encode;
+
+static php_conv_err_t php_conv_base64_encode_convert(php_conv_base64_encode *inst, 
+const char **in_p, size_t *in_left, char **out_p, size_t *out_left);
+static void php_conv_base64_encode_dtor(php_conv_base64_encode *inst);
 
 static unsigned char b64_tbl_enc[256] = {
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
@@ -235,147 +259,252 @@
'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'
 };
 
-static unsigned int b64_tbl_unenc[256] = {
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63,
-   52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64,128, 64, 64,
-   64,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
-   15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64,
-   64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-   41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
-};
-
-
-static int php_base64_filter_ctor(php_base64_filter *inst)
+static php_conv_err_t php_conv_base64_encode_ctor(php_conv_base64_encode *inst)
 {
+   inst->_super.convert_op = (php_conv_convert_func) 
+php_conv_base64_encode_convert;
+   inst->_super.dtor = (php_conv_dtor_func) php_conv_base64_encode_dtor;
inst->erem_len = 0;
-   inst->urem_nbits = 0;
-   inst->ustat = 0;
return SUCCESS;
 }
 
-static void php_base64_filter_dtor(php_base64_filter *inst)
+static void php_conv_base64_encode_dtor(php_conv_base64_encode *inst)
 {
/* do nothing */
 }
 
-static size_t strfilter_base64_write(php_stream *stream, php_stream_filter 
*thisfilter,
-   const char *buf, size_t count TSRMLS_DC)
+static php_conv_err_t php_conv_base64_encode_convert(php_conv_base64_encode *inst, 
+const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
 {
-   register size_t chunk_left, bcnt;
+   register size_t ocnt, icnt;
register unsigned char *ps, *pd;
size_t nbytes_written;
-   char chunk[1024];
-   php_base64_filter *inst = (php_base64_filter *)thisfilter->abstract;
 
-   bcnt = count;
-   ps = (unsigned char *)buf;
-   pd = chunk;
-   chunk_left = sizeof(chunk);
+   pd = (unsigned char *)(*out_pp);
+   ocnt = *out_left_p;
nbytes_written = 0;
- 
-   /* consume the remainder first */
-   switch (inst->erem_len) {
- 

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

2003-01-09 Thread Moriyoshi Koizumi
moriyoshi   Thu Jan  9 15:23:36 2003 EDT

  Modified files:  
/php4/ext/ctype ctype.c 
  Log:
  Fixed typo
  
  
Index: php4/ext/ctype/ctype.c
diff -u php4/ext/ctype/ctype.c:1.25 php4/ext/ctype/ctype.c:1.26
--- php4/ext/ctype/ctype.c:1.25 Tue Dec 31 11:06:20 2002
+++ php4/ext/ctype/ctype.c  Thu Jan  9 15:23:36 2003
@@ -59,7 +59,7 @@
 };
 /* }}} */
 
-/* {{{ ctype_mpodule_entry
+/* {{{ ctype_module_entry
  */
 zend_module_entry ctype_module_entry = {
STANDARD_MODULE_HEADER,



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




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

2003-01-09 Thread Moriyoshi Koizumi
moriyoshi   Thu Jan  9 23:32:25 2003 EDT

  Modified files:  
/php4/ext/iconv iconv.c 
  Log:
  Added missing cast operators
  
  
Index: php4/ext/iconv/iconv.c
diff -u php4/ext/iconv/iconv.c:1.80 php4/ext/iconv/iconv.c:1.81
--- php4/ext/iconv/iconv.c:1.80 Mon Jan  6 10:47:24 2003
+++ php4/ext/iconv/iconv.c  Thu Jan  9 23:32:25 2003
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: iconv.c,v 1.80 2003/01/06 15:47:24 moriyoshi Exp $ */
+/* $Id: iconv.c,v 1.81 2003/01/10 04:32:25 moriyoshi Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -641,7 +641,7 @@
}
}
 
-   if (cnt >= offset) {
+   if (cnt >= (unsigned int)offset) {
if (cd2 == NULL) {
cd2 = icv_open(enc, GENERIC_SUPERSET_NAME);
 
@@ -790,7 +790,7 @@
}
}
if (offset >= 0) {
-   if (cnt >= offset) {
+   if (cnt >= (unsigned int)offset) {
if (_php_iconv_memequal(buf, ndl_buf_p, sizeof(buf))) {
if (match_ofs == (unsigned int)-1) {
match_ofs = cnt;



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




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

2003-01-09 Thread Moriyoshi Koizumi
moriyoshi   Thu Jan  9 23:37:26 2003 EDT

  Modified files:  
/php4/ext/mime_magicmime_magic.c 
  Log:
  Reduced compiler warnings
  
  
Index: php4/ext/mime_magic/mime_magic.c
diff -u php4/ext/mime_magic/mime_magic.c:1.22 php4/ext/mime_magic/mime_magic.c:1.23
--- php4/ext/mime_magic/mime_magic.c:1.22   Tue Dec 31 11:06:57 2002
+++ php4/ext/mime_magic/mime_magic.cThu Jan  9 23:37:26 2003
@@ -15,7 +15,7 @@
   | Author: Hartmut Holzgraefe  <[EMAIL PROTECTED]>   |
   +--+
 
-  $Id: mime_magic.c,v 1.22 2002/12/31 16:06:57 sebastian Exp $ 
+  $Id: mime_magic.c,v 1.23 2003/01/10 04:37:26 moriyoshi Exp $ 
 
   This module contains a lot of stuff taken from Apache mod_mime_magic,
   so the license section is a little bit longer than usual:
@@ -1425,7 +1425,7 @@
 {
 long offset = m->offset;
 
-if (offset + sizeof(union VALUETYPE) > nbytes)
+if (offset + (long)sizeof(union VALUETYPE) > nbytes)
return 0;
 
 memcpy(p, s + offset, sizeof(union VALUETYPE));
@@ -1447,7 +1447,7 @@
break;
}
 
-   if (offset + sizeof(union VALUETYPE) > nbytes)
+   if (offset + (long)sizeof(union VALUETYPE) > nbytes)
return 0;
 
memcpy(p, s + offset, sizeof(union VALUETYPE));



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




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

2003-01-09 Thread Moriyoshi Koizumi
moriyoshi   Thu Jan  9 23:44:22 2003 EDT

  Modified files:  
/php4/ext/standard  reg.c 
  Log:
  Reduced compiler warnings
  
  
Index: php4/ext/standard/reg.c
diff -u php4/ext/standard/reg.c:1.69 php4/ext/standard/reg.c:1.70
--- php4/ext/standard/reg.c:1.69Tue Dec 31 11:07:54 2002
+++ php4/ext/standard/reg.c Thu Jan  9 23:44:21 2003
@@ -17,7 +17,7 @@
|  Jaakko Hyvätti <[EMAIL PROTECTED]>  | 
+--+
  */
-/* $Id: reg.c,v 1.69 2002/12/31 16:07:54 sebastian Exp $ */
+/* $Id: reg.c,v 1.70 2003/01/10 04:44:21 moriyoshi Exp $ */
 
 #include 
 #include 
@@ -347,7 +347,7 @@
walkbuf = &buf[tmp + subs[0].rm_so];
walk = replace;
while (*walk)
-   if ('\\' == *walk && isdigit(walk[1]) && walk[1] - '0' 
<= re.re_nsub) {
+   if ('\\' == *walk && isdigit(walk[1]) && walk[1] - '0' 
+<= (int)re.re_nsub) {
if (subs[walk[1] - '0'].rm_so > -1 && 
subs[walk[1] - '0'].rm_eo > -1
/* this next case shouldn't happen. it 
does. */
&& subs[walk[1] - '0'].rm_so <= 
subs[walk[1] - '0'].rm_eo) {



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




[PHP-CVS] cvs: php4 /sapi/apache2filter php_functions.c

2003-01-11 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 11 17:36:38 2003 EDT

  Modified files:  
/php4/sapi/apache2filterphp_functions.c 
  Log:
  This patch is likely to fix win32 build
  
  
Index: php4/sapi/apache2filter/php_functions.c
diff -u php4/sapi/apache2filter/php_functions.c:1.34 
php4/sapi/apache2filter/php_functions.c:1.35
--- php4/sapi/apache2filter/php_functions.c:1.34Tue Dec 31 10:59:03 2002
+++ php4/sapi/apache2filter/php_functions.c Sat Jan 11 17:36:38 2003
@@ -16,13 +16,14 @@
+--+
  */
 
-/* $Id: php_functions.c,v 1.34 2002/12/31 15:59:03 sebastian Exp $ */
+/* $Id: php_functions.c,v 1.35 2003/01/11 22:36:38 moriyoshi Exp $ */
 
 #include "php.h"
 #include "ext/standard/php_smart_str.h"
 #include "ext/standard/info.h"
 #include "SAPI.h"
 
+#define CORE_PRIVATE
 #include "apr_strings.h"
 #include "apr_time.h"
 #include "ap_config.h"



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




[PHP-CVS] cvs: php4 /ext/standard browscap.c datetime.c pack.c reg.c string.c

2003-01-11 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 11 17:32:19 2003 EDT

  Modified files:  
/php4/ext/standard  browscap.c datetime.c pack.c reg.c string.c 
  Log:
  Reduced warnings in ZE2 build
  
  
Index: php4/ext/standard/browscap.c
diff -u php4/ext/standard/browscap.c:1.65 php4/ext/standard/browscap.c:1.66
--- php4/ext/standard/browscap.c:1.65   Mon Jan  6 16:43:28 2003
+++ php4/ext/standard/browscap.cSat Jan 11 17:32:19 2003
@@ -16,7 +16,7 @@
+--+
  */
 
-/* $Id: browscap.c,v 1.65 2003/01/06 21:43:28 iliaa Exp $ */
+/* $Id: browscap.c,v 1.66 2003/01/11 22:32:19 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_regex.h"
@@ -49,20 +49,20 @@
register int i, j;
char *t;
 
-   for (i=0; i  |
+--+
  */
-/* $Id: pack.c,v 1.43 2002/12/31 16:07:49 sebastian Exp $ */
+/* $Id: pack.c,v 1.44 2003/01/11 22:32:19 moriyoshi Exp $ */
 
 #include "php.h"
 
@@ -320,7 +320,7 @@
val = argv[currentarg++];
convert_to_string_ex(val);
memcpy(&output[outputpos], Z_STRVAL_PP(val),
-  (Z_STRLEN_PP(val) < arg) ? Z_STRLEN_PP(val) 
: arg);
+  ((int)Z_STRLEN_PP(val) < arg) ? 
+Z_STRLEN_PP(val) : arg);
outputpos += arg;
break;
 
@@ -334,7 +334,7 @@
convert_to_string_ex(val);
v = Z_STRVAL_PP(val);
outputpos--;
-   if(arg > Z_STRLEN_PP(val)) {
+   if(arg > (int)Z_STRLEN_PP(val)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"Type %c: not enough characters in string", code);
arg = Z_STRLEN_PP(val);
}
Index: php4/ext/standard/reg.c
diff -u php4/ext/standard/reg.c:1.70 php4/ext/standard/reg.c:1.71
--- php4/ext/standard/reg.c:1.70Thu Jan  9 23:44:21 2003
+++ php4/ext/standard/reg.c Sat Jan 11 17:32:19 2003
@@ -17,7 +17,7 @@
|  Jaakko Hyvätti <[EMAIL PROTECTED]>  | 
+--+
  */
-/* $Id: reg.c,v 1.70 2003/01/10 04:44:21 moriyoshi Exp $ */
+/* $Id: reg.c,v 1.71 2003/01/11 22:32:19 moriyoshi Exp $ */
 
 #include 
 #include 
@@ -605,7 +605,7 @@

tmp = emalloc((Z_STRLEN_PP(string) * 4) + 1);

-   for (i = j = 0; i < Z_STRLEN_PP(string); i++) {
+   for (i = j = 0; i < (int)Z_STRLEN_PP(string); i++) {
c = (unsigned char) Z_STRVAL_PP(string)[i];
if(isalpha(c)) {
tmp[j++] = '[';
Index: php4/ext/standard/string.c
diff -u php4/ext/standard/string.c:1.344 php4/ext/standard/string.c:1.345
--- php4/ext/standard/string.c:1.344Sat Jan 11 12:52:38 2003
+++ php4/ext/standard/string.c  Sat Jan 11 17:32:19 2003
@@ -18,7 +18,7 @@
+--+
  */
 
-/* $Id: string.c,v 1.344 2003/01/11 17:52:38 iliaa Exp $ */
+/* $Id: string.c,v 1.345 2003/01/11 22:32:19 moriyoshi Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -1557,7 +1557,7 @@
 
if (argc == 3) {
convert_to_long_ex(offset);
-   if (Z_LVAL_PP(offset) < 0 || Z_LVAL_PP(offset) > 
Z_STRLEN_PP(haystack)) {
+   if (Z_LVAL_PP(offset) < 0 || Z_LVAL_PP(offset) > 
+(int)Z_STRLEN_PP(haystack)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Offset not 
contained in string.");
RETURN_FALSE;
}
@@ -1597,7 +1597,7 @@
 
if (argc == 3) {
convert_to_long_ex(offset);
-   if (Z_LVAL_PP(offset) < 0 || Z_LVAL_PP(offset) > 
Z_STRLEN_PP(haystack)) {
+   if (Z_LVAL_PP(offset) < 0 || Z_LVAL_PP(offset) > 
+(int)Z_STRLEN_PP(haystack)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Offset not 
contained in string.");
RETURN_FALSE;
}
@@ -1786,11 +1786,11 @@
}
}
 
-   if (f >= Z_STRLEN_PP(str)) {
+   if (f >= (int)Z_STRLEN_PP(str)) {
RETURN_FALSE;
}
 
-   if ((f + l) > Z_STRLEN_PP(str)) {
+   if ((f + l) > (int)Z_STRLEN_PP(str)) {
l = Z_STRLEN_PP(str) - f;
}
 
@@ -1833,11 +1833,11 @@
 * of the string
 */
if (f < 0) {
-   f = Z_STRLEN_PP(str) + f;
+   f = (int)Z_STRLEN_PP(str) + f;
if (f < 0) {
f = 0;
}
-   } else if (f > Z_STRLEN_PP(str)) {
+   

[PHP-CVS] cvs: php4 /ext/standard browscap.c datetime.c file.c formatted_print.c pack.c reg.c string.c

2003-01-11 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 11 18:05:20 2003 EDT

  Modified files:  
/php4/ext/standard  browscap.c datetime.c file.c formatted_print.c 
pack.c reg.c string.c 
  Log:
  Reverted because correct decision has not been made yet.
  
  
Index: php4/ext/standard/browscap.c
diff -u php4/ext/standard/browscap.c:1.66 php4/ext/standard/browscap.c:1.67
--- php4/ext/standard/browscap.c:1.66   Sat Jan 11 17:32:19 2003
+++ php4/ext/standard/browscap.cSat Jan 11 18:05:19 2003
@@ -16,7 +16,7 @@
+--+
  */
 
-/* $Id: browscap.c,v 1.66 2003/01/11 22:32:19 moriyoshi Exp $ */
+/* $Id: browscap.c,v 1.67 2003/01/11 23:05:19 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_regex.h"
@@ -49,20 +49,20 @@
register int i, j;
char *t;
 
-   for (i = 0; i < (int)Z_STRLEN_P(pattern); i++) {
+   for (i=0; i 1 && (int)Z_STRLEN_P(return_value) < len / 2) {
+   if (argc > 1 && Z_STRLEN_P(return_value) < len / 2) {
Z_STRVAL_P(return_value) = erealloc(buf, line_len + 1);
}
}
@@ -1559,7 +1559,7 @@
}
convert_to_string_ex(arg2);
convert_to_long_ex(arg3);
-   num_bytes = MIN(Z_LVAL_PP(arg3), (int)Z_STRLEN_PP(arg2));
+   num_bytes = MIN(Z_LVAL_PP(arg3), Z_STRLEN_PP(arg2));
break;
default:
WRONG_PARAM_COUNT;
Index: php4/ext/standard/formatted_print.c
diff -u php4/ext/standard/formatted_print.c:1.62 
php4/ext/standard/formatted_print.c:1.63
--- php4/ext/standard/formatted_print.c:1.62Sat Jan 11 17:17:37 2003
+++ php4/ext/standard/formatted_print.c Sat Jan 11 18:05:19 2003
@@ -16,7 +16,7 @@
+--+
  */
 
-/* $Id: formatted_print.c,v 1.62 2003/01/11 22:17:37 moriyoshi Exp $ */
+/* $Id: formatted_print.c,v 1.63 2003/01/11 23:05:19 moriyoshi Exp $ */
 
 #include   /* modf() */
 #include "php.h"
@@ -504,7 +504,7 @@
 
currarg = 1;
 
-   while (inpos < (int)Z_STRLEN_PP(args[format_offset])) {
+   while (inpos  |
+--+
  */
-/* $Id: pack.c,v 1.44 2003/01/11 22:32:19 moriyoshi Exp $ */
+/* $Id: pack.c,v 1.45 2003/01/11 23:05:19 moriyoshi Exp $ */
 
 #include "php.h"
 
@@ -320,7 +320,7 @@
val = argv[currentarg++];
convert_to_string_ex(val);
memcpy(&output[outputpos], Z_STRVAL_PP(val),
-  ((int)Z_STRLEN_PP(val) < arg) ? 
Z_STRLEN_PP(val) : arg);
+  (Z_STRLEN_PP(val) < arg) ? Z_STRLEN_PP(val) 
+: arg);
outputpos += arg;
break;
 
@@ -334,7 +334,7 @@
convert_to_string_ex(val);
v = Z_STRVAL_PP(val);
outputpos--;
-   if(arg > (int)Z_STRLEN_PP(val)) {
+   if(arg > Z_STRLEN_PP(val)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"Type %c: not enough characters in string", code);
arg = Z_STRLEN_PP(val);
}
Index: php4/ext/standard/reg.c
diff -u php4/ext/standard/reg.c:1.71 php4/ext/standard/reg.c:1.72
--- php4/ext/standard/reg.c:1.71Sat Jan 11 17:32:19 2003
+++ php4/ext/standard/reg.c Sat Jan 11 18:05:19 2003
@@ -17,7 +17,7 @@
|  Jaakko Hyvätti <[EMAIL PROTECTED]>  | 
+--+
  */
-/* $Id: reg.c,v 1.71 2003/01/11 22:32:19 moriyoshi Exp $ */
+/* $Id: reg.c,v 1.72 2003/01/11 23:05:19 moriyoshi Exp $ */
 
 #include 
 #include 
@@ -605,7 +605,7 @@

tmp = emalloc((Z_STRLEN_PP(string) * 4) + 1);

-   for (i = j = 0; i < (int)Z_STRLEN_PP(string); i++) {
+   for (i = j = 0; i < Z_STRLEN_PP(string); i++) {
c = (unsigned char) Z_STRVAL_PP(string)[i];
if(isalpha(c)) {
tmp[j++] = '[';
Index: php4/ext/standard/string.c
diff -u php4/ext/standard/string.c:1.345 php4/ext/standard/string.c:1.346
--- php4/ext/standard/string.c:1.345Sat Jan 11 17:32:19 2003
+++ php4/ext/standard/string.c  Sat Jan 11 18:05:19 2003
@@ -18,7 +18,7 @@
+--+
  */
 
-/* $Id: string.c,v 1.345 2003/01/11 22:32:19 moriyoshi Exp $ */
+/* $Id: string.c,v 1.346 2003/01/11 23:05:19 moriyoshi Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -1557,7 +1557,7 @@
 
if (argc == 3) {
  

Re: [PHP-CVS] cvs: php4 /ext/standard browscap.c datetime.c pack.c reg.c string.c

2003-01-11 Thread Moriyoshi Koizumi
> >   Modified files:  
> > /php4/ext/standard  browscap.c datetime.c pack.c reg.c string.c 
> >   Log:
> >   Reduced warnings in ZE2 build
> 
> Isn't there another way for this, as this makes the code quire ugly?

These changes had been reverted prior to the discussion about the
change of len field in ZE2 zvalue_value, and it seems we have concluded to
restore the structure as it was in ZE1.

Moriyoshi

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




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

2003-01-12 Thread Moriyoshi Koizumi
moriyoshi   Sun Jan 12 07:48:13 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  . Updated quoted-printable filter by a neater implementation.
  . Changed emalloc family functions to pemalloc ones for persistent filters. 
  . Changed base64 and quoted-printable filter names to "convert.base64-encode",
"convert.base64-decode", "convert.quoted-printable-encode", and
"convert.quoted-printable-decode" respectively for the consistency that
may be requested later.
  
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.9 php4/ext/standard/filters.c:1.10
--- php4/ext/standard/filters.c:1.9 Wed Jan  8 18:44:38 2003
+++ php4/ext/standard/filters.c Sun Jan 12 07:48:13 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.9 2003/01/08 23:44:38 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.10 2003/01/12 12:48:13 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -206,7 +206,7 @@
 };
 /* }}} */
 
-/* {{{ base64 stream filter implementation */
+/* {{{ base64 / quoted_printable stream filter implementation */
 
 typedef enum _php_conv_err_t {
PHP_CONV_ERR_SUCCESS = SUCCESS,
@@ -552,69 +552,258 @@
 }
 /* }}} */
 
-typedef struct _php_base64_filter {
+/* {{{ php_conv_qprint_encode */
+typedef struct _php_conv_qprint_encode {
+   php_conv _super;
+} php_conv_qprint_encode;
+
+static void php_conv_qprint_encode_dtor(php_conv_qprint_encode *inst);
+static php_conv_err_t php_conv_qprint_encode_convert(php_conv_qprint_encode *inst, 
+const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p);
+
+static void php_conv_qprint_encode_dtor(php_conv_qprint_encode *inst)
+{
+   /* do nothing */
+}
+
+static php_conv_err_t php_conv_qprint_encode_convert(php_conv_qprint_encode *inst, 
+const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
+{
+   php_conv_err_t err = PHP_CONV_ERR_SUCCESS;
+   unsigned char *ps, *pd;
+   size_t icnt, ocnt;
+   unsigned int c;
+   static char qp_digits[] = "0123456789ABCDEF";
+
+   if (in_pp == NULL || in_left_p == NULL) {
+   return PHP_CONV_ERR_SUCCESS;
+   }
+
+   ps = (unsigned char *)(*in_pp);
+   icnt = *in_left_p;
+   pd = (unsigned char *)(*out_pp);
+   ocnt = *out_left_p;
+ 
+   for (; icnt > 0; icnt--, ps++) {
+   c = *ps;
+
+   if ((c >= 33 && c <= 60) || (c >= 62 && c <= 126)) { 
+   if (ocnt < 1) {
+   err = PHP_CONV_ERR_TOO_BIG;
+   break;
+   }
+   *(pd++) = c;
+   ocnt--;
+   } else {
+   if (ocnt < 3) {
+   err = PHP_CONV_ERR_TOO_BIG;
+   break;
+   }
+   *(pd++) = '=';
+   *(pd++) = qp_digits[(c >> 4)];
+   *(pd++) = qp_digits[(c & 0x0f)]; 
+   ocnt -= 3;
+   }
+   }
+
+   *in_pp = (const char *)ps;
+   *in_left_p = icnt;
+   *out_pp = (char *)pd;
+   *out_left_p = ocnt; 
+
+   return err;
+}
+
+static php_conv_err_t php_conv_qprint_encode_ctor(php_conv_qprint_encode *inst)
+{
+   inst->_super.convert_op = (php_conv_convert_func) 
+php_conv_qprint_encode_convert;
+   inst->_super.dtor = (php_conv_dtor_func) php_conv_qprint_encode_dtor;
+   return PHP_CONV_ERR_SUCCESS;
+}
+/* }}} */
+
+/* {{{ php_conv_qprint_decode */
+typedef struct _php_conv_qprint_decode {
+   php_conv _super;
+
+   int scan_stat;
+   unsigned int next_char;
+} php_conv_qprint_decode;
+
+static void php_conv_qprint_decode_dtor(php_conv_qprint_decode *inst)
+{
+   /* do nothing */
+}
+
+static php_conv_err_t php_conv_qprint_decode_convert(php_conv_qprint_decode *inst, 
+const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
+{
+   php_conv_err_t err = PHP_CONV_ERR_SUCCESS;
+   size_t icnt, ocnt;
+   unsigned char *ps, *pd;
+   unsigned int scan_stat;
+   unsigned int v;
+
+   if (in_pp == NULL || in_left_p == NULL) {
+   if (inst->scan_stat != 0) {
+   return PHP_CONV_ERR_UNEXPECTED_EOS;
+   }
+   return PHP_CONV_ERR_SUCCESS;
+   }
+
+   ps = (unsigned char *)(*in_pp);
+   icnt = *in_left_p;
+   pd = (unsigned char *)(*out_pp);
+   ocnt = *out_left_p;
+   scan_stat = inst->scan_stat;
+
+   v = 0;
+
+   for (;icnt > 0; icnt--) {
+   switch (scan_stat) {
+   case 0: {
+   if (*ps == '=') {
+   scan_stat = 1;
+   } else {
+   if (ocnt < 1) {
+   

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

2003-01-12 Thread Moriyoshi Koizumi
moriyoshi   Sun Jan 12 08:41:35 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed error msg format so it correctly reports the actual filter name
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.10 php4/ext/standard/filters.c:1.11
--- php4/ext/standard/filters.c:1.10Sun Jan 12 07:48:13 2003
+++ php4/ext/standard/filters.c Sun Jan 12 08:41:35 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.10 2003/01/12 12:48:13 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.11 2003/01/12 13:41:35 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -869,15 +869,15 @@
break;
 
case PHP_CONV_ERR_UNKNOWN:
-   php_error(E_WARNING, "stream filter(%s): 
unknown error", thisfilter->fops->label, err);
+   php_error(E_WARNING, "stream filter (%s): 
+unknown error", inst->filtername, err);
return 0;
 
case PHP_CONV_ERR_INVALID_SEQ:
-   php_error(E_WARNING, "stream filter(%s): 
invalid base64 sequence", thisfilter->fops->label, err);
+   php_error(E_WARNING, "stream filter (%s): 
+invalid base64 sequence", inst->filtername, err);
return 0;

case PHP_CONV_ERR_UNEXPECTED_EOS:
-   php_error(E_WARNING, "stream filter(%s): 
unexpected end of stream", thisfilter->fops->label, err);
+   php_error(E_WARNING, "stream filter (%s): 
+unexpected end of stream", inst->filtername, err);
return 0;
 
default:
@@ -923,15 +923,15 @@
 
switch (err) {
case PHP_CONV_ERR_UNKNOWN:
-   php_error(E_WARNING, "stream filter(%s): 
unknown error", thisfilter->fops->label, err);
+   php_error(E_WARNING, "stream filter (%s): 
+unknown error", inst->filtername, err);
return 0;
 
case PHP_CONV_ERR_INVALID_SEQ:
-   php_error(E_WARNING, "stream filter(%s): 
invalid base64 sequence", thisfilter->fops->label, err);
+   php_error(E_WARNING, "stream filter (%s): 
+invalid base64 sequence", inst->filtername, err);
return 0;
 
case PHP_CONV_ERR_UNEXPECTED_EOS:
-   php_error(E_WARNING, "stream filter(%s): 
unexpected end of stream", thisfilter->fops->label, err);
+   php_error(E_WARNING, "stream filter (%s): 
+unexpected end of stream", inst->filtername, err);
return 0;
 
default:
@@ -968,7 +968,7 @@
out_p = bucket_buf;
out_left = sizeof(bucket_buf);
} else {
-   php_error(E_WARNING, "stream filter(%s): 
unknown error", thisfilter->fops->label);
+   php_error(E_WARNING, "stream filter (%s): 
+unknown error", inst->filtername);
return 0;
}
}



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




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

2003-01-12 Thread Moriyoshi Koizumi
moriyoshi   Sun Jan 12 08:46:11 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed infinite loop bug when an invalid quoted-printable escape sequence
  appears in the streem.
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.11 php4/ext/standard/filters.c:1.12
--- php4/ext/standard/filters.c:1.11Sun Jan 12 08:41:35 2003
+++ php4/ext/standard/filters.c Sun Jan 12 08:46:11 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.11 2003/01/12 13:41:35 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.12 2003/01/12 13:46:11 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -675,7 +675,8 @@
unsigned int nbl = (*ps >= 'A' ? *ps - 0x37 : *ps - 
0x30);
 
if (nbl > 15) {
-   return 0;
+   err = PHP_CONV_ERR_INVALID_SEQ;
+   goto out;
}
v = (v << 4) | nbl;
 



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




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

2003-01-12 Thread Moriyoshi Koizumi
moriyoshi   Sun Jan 12 16:05:23 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed a bug of the base64 decoder that a sequence of intervening
  characters that are supposed to be ignored by the decoder cause output
  corruption. 
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.12 php4/ext/standard/filters.c:1.13
--- php4/ext/standard/filters.c:1.12Sun Jan 12 08:46:11 2003
+++ php4/ext/standard/filters.c Sun Jan 12 16:05:22 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.12 2003/01/12 13:46:11 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.13 2003/01/12 21:05:22 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -526,9 +526,6 @@
}
if ((pack_bcnt | ustat) == 0) {
if (ocnt < 1) {
-   urem |= (pack << urem_nbits);
-   urem_nbits += 8;
-
err = PHP_CONV_ERR_TOO_BIG;
break;
}
@@ -537,6 +534,14 @@
pack = 0;
pack_bcnt = nbitsof_pack;
}
+   }
+
+   if (urem_nbits >= pack_bcnt) {
+   urem |= (pack << (urem_nbits - pack_bcnt));
+   urem_nbits += (nbitsof_pack - pack_bcnt);
+   } else {
+   urem |= (pack >> (pack_bcnt - urem_nbits));
+   urem_nbits += (nbitsof_pack - pack_bcnt);
}
 
inst->urem = urem;



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




[PHP-CVS] cvs: php4 /tests/lang bug21600.phpt

2003-01-12 Thread Moriyoshi Koizumi
moriyoshi   Sun Jan 12 18:56:04 2003 EDT

  Added files: 
/php4/tests/langbug21600.phpt 
  Log:
  Added test case for bug #21600
  
  

Index: php4/tests/lang/bug21600.phpt
+++ php4/tests/lang/bug21600.phpt
--TEST--
Bug #21600 (assign by reference function call changes variable contents)
--FILE--

--EXPECT--
array(1) {
  ["foo"]=>
  string(4) "test"
}




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




[PHP-CVS] cvs: php4(PHP_4_3) /tests/lang bug21600.phpt

2003-01-12 Thread Moriyoshi Koizumi
moriyoshi   Sun Jan 12 18:57:20 2003 EDT

  Added files: (Branch: PHP_4_3)
/php4/tests/langbug21600.phpt 
  Log:
  MFH
  
  

Index: php4/tests/lang/bug21600.phpt
+++ php4/tests/lang/bug21600.phpt
--TEST--
Bug #21600 (assign by reference function call changes variable contents)
--FILE--

--EXPECT--
array(1) {
  ["foo"]=>
  string(4) "test"
}




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




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

2003-01-13 Thread Moriyoshi Koizumi
moriyoshi   Mon Jan 13 05:21:41 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  . Implemented a common filter parameter parsing function.
  # For example "base64-encode.line-break-chars=--,base64-decode.blah=foobar" 
  # will be parsed and splitted into a zval array as
  # array(2) {
  #   ["base64-encode"]=> 
  #   array(1) {
  # ["line-break-chars"]=>
  # string(2) "--"
  #   }
  #   ["base64-decode"]=>
  #   array(1) {
  # ["blah"] =>
  # string(6) "foobar"
  #   }
  # }
  . Added automatic line-breaking feature for base64 encode filter. This 
can be turned on by putting a option entry "base64-encode.line-length"
to the filter parameters.
  
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.13 php4/ext/standard/filters.c:1.14
--- php4/ext/standard/filters.c:1.13Sun Jan 12 16:05:22 2003
+++ php4/ext/standard/filters.c Mon Jan 13 05:21:40 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.13 2003/01/12 21:05:22 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.14 2003/01/13 10:21:40 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -213,7 +213,9 @@
PHP_CONV_ERR_UNKNOWN,
PHP_CONV_ERR_TOO_BIG,
PHP_CONV_ERR_INVALID_SEQ,
-   PHP_CONV_ERR_UNEXPECTED_EOS
+   PHP_CONV_ERR_UNEXPECTED_EOS,
+   PHP_CONV_ERR_EXISTS,
+   PHP_CONV_ERR_NOT_FOUND
 } php_conv_err_t;
 
 typedef struct _php_conv php_conv;
@@ -235,6 +237,12 @@
 
unsigned char erem[3];
size_t erem_len;
+   unsigned int line_ccnt;
+   unsigned int line_len;
+   const char *lbchars;
+   int lbchars_dup;
+   size_t lbchars_len;
+   int persistent;
 } php_conv_base64_encode;
 
 static php_conv_err_t php_conv_base64_encode_convert(php_conv_base64_encode *inst, 
const char **in_p, size_t *in_left, char **out_p, size_t *out_left);
@@ -259,134 +267,219 @@
'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'
 };
 
-static php_conv_err_t php_conv_base64_encode_ctor(php_conv_base64_encode *inst)
+static php_conv_err_t php_conv_base64_encode_ctor(php_conv_base64_encode *inst, 
+unsigned int line_len, const char *lbchars, size_t lbchars_len, int lbchars_dup, int 
+persistent)
 {
inst->_super.convert_op = (php_conv_convert_func) 
php_conv_base64_encode_convert;
inst->_super.dtor = (php_conv_dtor_func) php_conv_base64_encode_dtor;
inst->erem_len = 0;
+   inst->line_ccnt = line_len;
+   inst->line_len = line_len;
+   if (lbchars != NULL) {
+   inst->lbchars = (lbchars_dup ? pestrdup(lbchars, persistent) : 
+lbchars);
+   inst->lbchars_len = lbchars_len;
+   } else {
+   inst->lbchars = NULL;
+   }
+   inst->lbchars_dup = lbchars_dup;
+   inst->persistent = persistent;
return SUCCESS;
 }
 
 static void php_conv_base64_encode_dtor(php_conv_base64_encode *inst)
 {
-   /* do nothing */
+   assert(inst != NULL);
+   if (inst->lbchars_dup && inst->lbchars != NULL) {
+   pefree((void *)inst->lbchars, inst->persistent);
+   }
 }
 
-static php_conv_err_t php_conv_base64_encode_convert(php_conv_base64_encode *inst, 
const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
+static php_conv_err_t php_conv_base64_encode_flush(php_conv_base64_encode *inst, 
+const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
 {
-   register size_t ocnt, icnt;
-   register unsigned char *ps, *pd;
-   size_t nbytes_written;
+   volatile php_conv_err_t err = PHP_CONV_ERR_SUCCESS;
+   register unsigned char *pd;
+   register size_t ocnt;
+   unsigned int line_ccnt;
 
pd = (unsigned char *)(*out_pp);
ocnt = *out_left_p;
-   nbytes_written = 0;
+   line_ccnt = inst->line_ccnt;
 
-   if (in_pp != NULL && in_left_p != NULL) { 
-   ps = (unsigned char *)(*in_pp);
-   icnt = *in_left_p;
-   
-   /* consume the remainder first */
-   switch (inst->erem_len) {
-   case 1:
-   if (icnt >= 2) {
-   if (ocnt < 4) {
-   return PHP_CONV_ERR_TOO_BIG;
-   }
-   *(pd++) = b64_tbl_enc[(inst->erem[0] >> 2)];
-   *(pd++) = b64_tbl_enc[(unsigned 
char)(inst->erem[0] << 4) | (ps[0] >> 4)];
-   *(pd++) = b64_tbl_enc[(unsigned char)(ps[0] << 
2) | (ps[1] >> 6)];
-   *(pd++) = b64_tbl_enc[ps[1]];
-   ocnt -= 4;
-   ps += 2;
-   icnt -= 2;
- 

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

2003-01-13 Thread Moriyoshi Koizumi
moriyoshi   Mon Jan 13 06:00:24 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed a silly segfault bug caused by lack of strict type checking
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.14 php4/ext/standard/filters.c:1.15
--- php4/ext/standard/filters.c:1.14Mon Jan 13 05:21:40 2003
+++ php4/ext/standard/filters.c Mon Jan 13 06:00:22 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.14 2003/01/13 10:21:40 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.15 2003/01/13 11:00:22 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -1358,7 +1358,7 @@
memcpy(buf, node_name, node_name_len);
buf[node_name_len] = '\0';
 
-   if (zend_hash_find(Z_ARRVAL_P(node), 
buf, node_name_len + 1, (void **)&z_tmp) != SUCCESS) {
+   if (zend_hash_find(Z_ARRVAL_P(node), 
+buf, node_name_len + 1, (void **)&z_tmp) != SUCCESS || Z_TYPE_PP(z_tmp) != IS_ARRAY) {
zval *new_node;

MAKE_STD_ZVAL(new_node);
@@ -1456,10 +1456,14 @@
write_conv_opts = read_conv_opts = NULL;
 
if (strcasecmp(dot, "base64-encode") == 0) {
-   if (options != NULL && zend_hash_find(Z_ARRVAL_P(options), 
"base64-encode", sizeof("base64-encode"), (void **)&tmp_zval_pp) == SUCCESS) {
+   if (options != NULL &&
+   zend_hash_find(Z_ARRVAL_P(options), "base64-encode", 
+sizeof("base64-encode"), (void **)&tmp_zval_pp) == SUCCESS &&
+   Z_TYPE_PP(tmp_zval_pp) == IS_ARRAY) {
write_conv_opts = Z_ARRVAL_PP(tmp_zval_pp); 
}
-   if (options != NULL && zend_hash_find(Z_ARRVAL_P(options), 
"base64-decode", sizeof("base64-decode"), (void **)&tmp_zval_pp) == SUCCESS) {
+   if (options != NULL &&
+   zend_hash_find(Z_ARRVAL_P(options), "base64-decode", 
+sizeof("base64-decode"), (void **)&tmp_zval_pp) == SUCCESS &&
+   Z_TYPE_PP(tmp_zval_pp) == IS_ARRAY) {
read_conv_opts = Z_ARRVAL_PP(tmp_zval_pp);  
}
if (php_convert_filter_ctor(inst,
@@ -1470,10 +1474,14 @@
}   
retval = php_stream_filter_alloc(&strfilter_convert_ops, inst, 
persistent);
} else if (strcasecmp(dot, "base64-decode") == 0) {
-   if (options != NULL && zend_hash_find(Z_ARRVAL_P(options), 
"base64-decode", sizeof("base64-decode"), (void **)&tmp_zval_pp) == SUCCESS) {
+   if (options != NULL &&
+   zend_hash_find(Z_ARRVAL_P(options), "base64-decode", 
+sizeof("base64-decode"), (void **)&tmp_zval_pp) == SUCCESS &&
+   Z_TYPE_PP(tmp_zval_pp) == IS_ARRAY) {
write_conv_opts = Z_ARRVAL_PP(tmp_zval_pp); 
}
-   if (options != NULL && zend_hash_find(Z_ARRVAL_P(options), 
"base64-encode", sizeof("base64-encode"), (void **)&tmp_zval_pp) == SUCCESS) {
+   if (options != NULL &&
+   zend_hash_find(Z_ARRVAL_P(options), "base64-encode", 
+sizeof("base64-encode"), (void **)&tmp_zval_pp) == SUCCESS &&
+   Z_TYPE_PP(tmp_zval_pp) == IS_ARRAY) {
read_conv_opts = Z_ARRVAL_PP(tmp_zval_pp);  
}
if (php_convert_filter_ctor(inst,
@@ -1484,7 +1492,9 @@
}   
retval = php_stream_filter_alloc(&strfilter_convert_ops, inst, 
persistent);
} else if (strcasecmp(dot, "quoted-printable-encode") == 0) {
-   if (options != NULL && zend_hash_find(Z_ARRVAL_P(options), 
"quoted-printable-encode", sizeof("quoted-printable-encode"), (void **)&tmp_zval_pp) 
== SUCCESS) {
+   if (options != NULL &&
+   zend_hash_find(Z_ARRVAL_P(options), "quoted-printable-encode", 
+sizeof("quoted-printable-encode"), (void **)&tmp_zval_pp) == SUCCESS &&
+   Z_TYPE_PP(tmp_zval_pp) == IS_ARRAY) {
write_conv_opts = Z_ARRVAL_PP(tmp_zval_pp); 
}
if (options != NULL && zend_hash_find(Z_ARRVAL_P(options), 
"quoted-printable-decode", sizeof("quoted-printable-decode"), (void **)&tmp_zval_pp) 
== SUCCESS) {
@@ -1498,10 +1508,14 @@
}   
retval = php_stream_filter_alloc(&strfilter_convert_ops, inst, 
persistent);
} else if (strcasecmp(dot, "quoted-printable-decode") == 0) {
-   if (options != NULL && zend_hash_find(Z_ARRVAL_P(options), 
"

Re: [PHP-CVS] cvs: php4 /ext/standard filters.c

2003-01-13 Thread Moriyoshi Koizumi
On Mon, Jan 13, 2003 at 01:28:27PM +, Wez Furlong wrote:
> I am going to alter the API so that you can pass a zval directly to the
> filter implementation; this will make the code so much simpler.
> 
> I mentioned this last week, and I'd feel happier if there was less code
> to maintain, so please consider reverting the parameter parsing commit.
> 
> Sorry if this makes all your effort for nothing,

I took your ongoing work for the new API into account and I consider
my parameter parsing code temporary. I mean once the API is frozen, 
I'll throw mine away and use that instead.

Anyway I hope the trashed code would help somehow somewhere :)

Moriyoshi
 

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




[PHP-CVS] cvs: php4 /tests/run-test test008.phpt

2003-01-13 Thread Moriyoshi Koizumi
moriyoshi   Mon Jan 13 14:18:19 2003 EDT

  Modified files:  
/php4/tests/run-testtest008.phpt 
  Log:
  Fixed typoFixed typoFixed typoFixed typoFixed typoFixed typoFixed typoFixed typo
  
  
Index: php4/tests/run-test/test008.phpt
diff -u php4/tests/run-test/test008.phpt:1.1 php4/tests/run-test/test008.phpt:1.2
--- php4/tests/run-test/test008.phpt:1.1Wed Jan  1 07:43:59 2003
+++ php4/tests/run-test/test008.phptMon Jan 13 14:18:18 2003
@@ -2,7 +2,7 @@
 Error message handling (with ZendOptimizer)
 --SKIPIF--
 
 --FILE--
 http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[PHP-CVS] cvs: php4(PHP_4_3) /tests/run-test test008.phpt

2003-01-13 Thread Moriyoshi Koizumi
moriyoshi   Mon Jan 13 14:21:44 2003 EDT

  Modified files:  (Branch: PHP_4_3)
/php4/tests/run-testtest008.phpt 
  Log:
  MFH
  # The typo I made in the previous commit log is not intentional :)
  
  
Index: php4/tests/run-test/test008.phpt
diff -u php4/tests/run-test/test008.phpt:1.1.2.1 
php4/tests/run-test/test008.phpt:1.1.2.2
--- php4/tests/run-test/test008.phpt:1.1.2.1Wed Jan  1 07:44:47 2003
+++ php4/tests/run-test/test008.phptMon Jan 13 14:21:44 2003
@@ -2,7 +2,7 @@
 Error message handling (with ZendOptimizer)
 --SKIPIF--
 
 --FILE--
 http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




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

2003-01-13 Thread Moriyoshi Koizumi
moriyoshi   Mon Jan 13 20:23:36 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed quoted-printable encoder so that it produces RFC2045 complicant
  output. As per this specification requirement, the constructor now accepts
  three options: binary (boolean), line-len (uint), line-break-chars (string).
   
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.15 php4/ext/standard/filters.c:1.16
--- php4/ext/standard/filters.c:1.15Mon Jan 13 06:00:22 2003
+++ php4/ext/standard/filters.c Mon Jan 13 20:23:35 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.15 2003/01/13 11:00:22 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.16 2003/01/14 01:23:35 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -653,22 +653,53 @@
 /* {{{ php_conv_qprint_encode */
 typedef struct _php_conv_qprint_encode {
php_conv _super;
+
+   int opts;
+   unsigned int line_ccnt;
+   unsigned int line_len;
+   const char *lbchars;
+   int lbchars_dup;
+   size_t lbchars_len;
+   int persistent;
+   unsigned int lb_ptr;
+   unsigned int lb_cnt;
 } php_conv_qprint_encode;
 
+#define PHP_CONV_QPRINT_OPT_BINARY 0x0001
+
 static void php_conv_qprint_encode_dtor(php_conv_qprint_encode *inst);
 static php_conv_err_t php_conv_qprint_encode_convert(php_conv_qprint_encode *inst, 
const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p);
 
 static void php_conv_qprint_encode_dtor(php_conv_qprint_encode *inst)
 {
-   /* do nothing */
+   assert(inst != NULL);
+   if (inst->lbchars_dup && inst->lbchars != NULL) {
+   pefree((void *)inst->lbchars, inst->persistent);
+   }
 }
 
+#define NEXT_CHAR(ps, icnt, lb_ptr, lb_cnt, lbchars) \
+   ((lb_cnt) < (lb_ptr) ? (lbchars)[(lb_cnt)] : *(ps)) 
+
+#define CONSUME_CHAR(ps, icnt, lb_ptr, lb_cnt) \
+   if ((lb_cnt) < (lb_ptr)) { \
+   (lb_cnt)++; \
+   } else { \
+   (lb_cnt) = (lb_ptr) = 0; \
+   --(icnt); \
+   (ps)++; \
+   }
+
 static php_conv_err_t php_conv_qprint_encode_convert(php_conv_qprint_encode *inst, 
const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
 {
php_conv_err_t err = PHP_CONV_ERR_SUCCESS;
unsigned char *ps, *pd;
size_t icnt, ocnt;
unsigned int c;
+   unsigned int line_ccnt;
+   unsigned int lb_ptr;
+   unsigned int lb_cnt;
+   int opts;
static char qp_digits[] = "0123456789ABCDEF";
 
if (in_pp == NULL || in_left_p == NULL) {
@@ -679,18 +710,106 @@
icnt = *in_left_p;
pd = (unsigned char *)(*out_pp);
ocnt = *out_left_p;
- 
-   for (; icnt > 0; icnt--, ps++) {
-   c = *ps;
+   line_ccnt = inst->line_ccnt;
+   opts = inst->opts;
+   lb_ptr = inst->lb_ptr;
+   lb_cnt = inst->lb_cnt;
+
+   while (icnt > 0) {
+   if (!(opts & PHP_CONV_QPRINT_OPT_BINARY) && inst->lbchars != NULL && 
+inst->lbchars_len > 0) {
+   /* look ahead for the line break chars to make a right decision
+* how to consume incoming characters */
+
+   if (*ps == inst->lbchars[lb_cnt]) {
+   ps++;
+   icnt--;
+   lb_cnt++;
+
+   if (lb_cnt >= inst->lbchars_len) {
+   unsigned int i;
+
+   if (ocnt < lb_cnt) {
+   lb_cnt--;
+   err = PHP_CONV_ERR_TOO_BIG;
+   break;
+   }
+
+   for (i = 0; i < lb_cnt; i++) {
+   *(pd++) = inst->lbchars[i];
+   ocnt--;
+   }
+   line_ccnt = inst->line_len;
+   lb_ptr = lb_cnt = 0;
+   }
+   continue;
+   }
+   }
+
+   c = NEXT_CHAR(ps, icnt, lb_ptr, lb_cnt, inst->lbchars);
+
+   if (!(opts & PHP_CONV_QPRINT_OPT_BINARY) && (c == '\t' || c == ' ')) {
+   if (line_ccnt < 2 && inst->lbchars != NULL) {
+   if (ocnt < inst->lbchars_len + 1) {
+   err = PHP_CONV_ERR_TOO_BIG;
+   break;
+   }
+
+   *(pd++) = '=';
+   ocnt--;
+   line_ccnt--;
 
-  

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

2003-01-13 Thread Moriyoshi Koizumi
moriyoshi   Mon Jan 13 20:27:57 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed small memory leak that occurs when the invalid line length is passed
  to the qprint ctor.
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.16 php4/ext/standard/filters.c:1.17
--- php4/ext/standard/filters.c:1.16Mon Jan 13 20:23:35 2003
+++ php4/ext/standard/filters.c Mon Jan 13 20:27:57 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.16 2003/01/14 01:23:35 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.17 2003/01/14 01:27:57 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -1264,6 +1264,9 @@
if (read_cd != NULL) {
php_conv_dtor(read_cd);
pefree(read_cd, persistent);
+   }
+   if (inst->filtername != NULL) {
+   pefree(inst->filtername, persistent);
}
return FAILURE;
 }



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




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

2003-01-14 Thread Moriyoshi Koizumi
moriyoshi   Tue Jan 14 10:14:11 2003 EDT

  Modified files:  
/php4/ext/standard  quot_print.c 
  Log:
  Made php_quot_print_decode() RFC2045-compliant
  # this function is only used in iconv extension and the corresponding 
  # userland function doesn't use it, so I don't see any BC issue here. 
  
  
Index: php4/ext/standard/quot_print.c
diff -u php4/ext/standard/quot_print.c:1.24 php4/ext/standard/quot_print.c:1.25
--- php4/ext/standard/quot_print.c:1.24 Mon Jan  6 10:47:25 2003
+++ php4/ext/standard/quot_print.c  Tue Jan 14 10:14:11 2003
@@ -16,7 +16,7 @@
+--+
  */
 
-/* $Id: quot_print.c,v 1.24 2003/01/06 15:47:25 moriyoshi Exp $ */
+/* $Id: quot_print.c,v 1.25 2003/01/14 15:14:11 moriyoshi Exp $ */
 
 #include 
 
@@ -57,60 +57,78 @@
register unsigned char *p2;
register unsigned int h_nbl, l_nbl;
 
-   size_t decoded_len;
+   size_t decoded_len, buf_size;
unsigned char *retval;
 
static unsigned int hexval_tbl[256] = {
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 16, 16, 16, 16, 16, 16,
-   16, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-   16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 32, 16, 64, 64, 16, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   32, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 64, 64, 64, 64, 64, 64,
+   64, 10, 11, 12, 13, 14, 15, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+   64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
};
 
-   i = length, p1 = str; decoded_len = length;
+   i = length, p1 = str; buf_size = length;
 
-   while (i > 0 && *p1 != '\0') {
+   while (i > 1 && *p1 != '\0') {
if (*p1 == '=') {
-   decoded_len -= 2;
-   p1 += 2;
-   i -= 2;
+   buf_size -= 2;
+   p1++;
+   i--;
}
p1++;
i--;
}
 
-   retval = emalloc(decoded_len + 1);
+   retval = emalloc(buf_size + 1);
i = length; p1 = str; p2 = retval;
+   decoded_len = 0;
 
while (i > 0 && *p1 != '\0') {
if (*p1 == '=') {
-   if (i < 2 ||
-   (h_nbl = hexval_tbl[p1[1]]) > 15 ||
-   (l_nbl = hexval_tbl[p1[2]]) > 15) { 
-
+   i--, p1++;
+   if (i == 0 || *p1 == '\0') {
+   break;
+   }
+   h_nbl = hexval_tbl[*p1];
+   if (h_nbl < 16) {
+   /* next char should be a hexadecimal digit */
+   if ((--i) == 0 || (l_nbl = hexval_tbl[*(++p1)]) >= 16) 
+{
+ 

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

2003-01-14 Thread Moriyoshi Koizumi
moriyoshi   Tue Jan 14 11:42:19 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Added a new option "force-encode-first" to the quoted-printable encoder
  as per Wez's request. If enabled, the encoder forcefully does qp
  tranformation on every first character of lines in incoming stream.
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.17 php4/ext/standard/filters.c:1.18
--- php4/ext/standard/filters.c:1.17Mon Jan 13 20:27:57 2003
+++ php4/ext/standard/filters.c Tue Jan 14 11:42:18 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.17 2003/01/14 01:27:57 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.18 2003/01/14 16:42:18 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -665,7 +665,8 @@
unsigned int lb_cnt;
 } php_conv_qprint_encode;
 
-#define PHP_CONV_QPRINT_OPT_BINARY 0x0001
+#define PHP_CONV_QPRINT_OPT_BINARY 0x0001
+#define PHP_CONV_QPRINT_OPT_FORCE_ENCODE_FIRST 0x0002
 
 static void php_conv_qprint_encode_dtor(php_conv_qprint_encode *inst);
 static php_conv_err_t php_conv_qprint_encode_convert(php_conv_qprint_encode *inst, 
const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p);
@@ -772,7 +773,7 @@
line_ccnt--;
CONSUME_CHAR(ps, icnt, lb_ptr, lb_cnt);
}
-   } else if ((c >= 33 && c <= 60) || (c >= 62 && c <= 126)) { 
+   } else if ((!(opts & PHP_CONV_QPRINT_OPT_FORCE_ENCODE_FIRST) || 
+line_ccnt < inst->line_len) && ((c >= 33 && c <= 60) || (c >= 62 && c <= 126))) { 
if (line_ccnt < 2) {
if (ocnt < inst->lbchars_len + 1) {
err = PHP_CONV_ERR_TOO_BIG;
@@ -1172,10 +1173,12 @@
 
if (options != NULL) {
int opt_binary = 0;
+   int opt_force_encode_first = 0;
 
GET_STR_PROP(options, lbchars, lbchars_len, 
"line-break-chars", 0);
GET_UINT_PROP(options, line_len, "line-length");
GET_BOOL_PROP(options, opt_binary, "binary"); 
+   GET_BOOL_PROP(options, opt_force_encode_first, 
+"force-encode-first"); 
 
if (line_len < 4) {
if (lbchars != NULL) {
@@ -1189,6 +1192,7 @@
}
}
opts |= (opt_binary ? PHP_CONV_QPRINT_OPT_BINARY : 0);
+   opts |= (opt_force_encode_first ? 
+PHP_CONV_QPRINT_OPT_FORCE_ENCODE_FIRST : 0);
}
retval = pemalloc(sizeof(php_conv_qprint_encode), persistent);
if (lbchars != NULL) {



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




[PHP-CVS] cvs: php4 /ext/iconv/tests iconv_mime_decode.phpt

2003-01-14 Thread Moriyoshi Koizumi
moriyoshi   Tue Jan 14 14:25:10 2003 EDT

  Modified files:  
/php4/ext/iconv/tests   iconv_mime_decode.phpt 
  Log:
  Test update for new feature
  
  
Index: php4/ext/iconv/tests/iconv_mime_decode.phpt
diff -u php4/ext/iconv/tests/iconv_mime_decode.phpt:1.1 
php4/ext/iconv/tests/iconv_mime_decode.phpt:1.2
--- php4/ext/iconv/tests/iconv_mime_decode.phpt:1.1 Fri Jan  3 15:33:53 2003
+++ php4/ext/iconv/tests/iconv_mime_decode.phpt Tue Jan 14 14:25:10 2003
@@ -8,7 +8,7 @@
 http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




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

2003-01-14 Thread Moriyoshi Koizumi
moriyoshi   Tue Jan 14 14:26:00 2003 EDT

  Modified files:  
/php4/ext/iconv iconv.c 
  Log:
  Appended my name to the list of authors
  
  
Index: php4/ext/iconv/iconv.c
diff -u php4/ext/iconv/iconv.c:1.81 php4/ext/iconv/iconv.c:1.82
--- php4/ext/iconv/iconv.c:1.81 Thu Jan  9 23:32:25 2003
+++ php4/ext/iconv/iconv.c  Tue Jan 14 14:26:00 2003
@@ -14,10 +14,11 @@
+--+
| Authors: Rui Hirokawa <[EMAIL PROTECTED]>   |
|  Stig Bakken <[EMAIL PROTECTED]>   |
+   |      Moriyoshi Koizumi <[EMAIL PROTECTED]>   |
+--+
  */
 
-/* $Id: iconv.c,v 1.81 2003/01/10 04:32:25 moriyoshi Exp $ */
+/* $Id: iconv.c,v 1.82 2003/01/14 19:26:00 moriyoshi Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"



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




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

2003-01-15 Thread Moriyoshi Koizumi
moriyoshi   Wed Jan 15 10:05:18 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed a qp encoder bug that the constructor sometimes fails if
  line-breaking mode is off. 
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.18 php4/ext/standard/filters.c:1.19
--- php4/ext/standard/filters.c:1.18Tue Jan 14 11:42:18 2003
+++ php4/ext/standard/filters.c Wed Jan 15 10:05:17 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.18 2003/01/14 16:42:18 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.19 2003/01/15 15:05:17 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -838,7 +838,7 @@
 
 static php_conv_err_t php_conv_qprint_encode_ctor(php_conv_qprint_encode *inst, 
unsigned int line_len, const char *lbchars, size_t lbchars_len, int lbchars_dup, int 
opts, int persistent)
 {
-   if (line_len < 4) {
+   if (line_len < 4 && lbchars != NULL) {
return PHP_CONV_ERR_TOO_BIG;
}
inst->_super.convert_op = (php_conv_convert_func) 
php_conv_qprint_encode_convert;



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




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

2003-01-16 Thread Moriyoshi Koizumi
moriyoshi   Thu Jan 16 15:59:08 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Finally fixed a qp encoder bug that line break characters that appear exactly
  at the end of the chunk lost in the output.
  # I bet no more problems will occur in quoted-printable encoder.
  # But I recognised the counterpart is still buggy due to RFC2045-incompliance.
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.19 php4/ext/standard/filters.c:1.20
--- php4/ext/standard/filters.c:1.19Wed Jan 15 10:05:17 2003
+++ php4/ext/standard/filters.c Thu Jan 16 15:59:07 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.19 2003/01/15 15:05:17 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.20 2003/01/16 20:59:07 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -680,11 +680,11 @@
 }
 
 #define NEXT_CHAR(ps, icnt, lb_ptr, lb_cnt, lbchars) \
-   ((lb_cnt) < (lb_ptr) ? (lbchars)[(lb_cnt)] : *(ps)) 
+   ((lb_ptr) < (lb_cnt) ? (lbchars)[(lb_ptr)] : *(ps)) 
 
 #define CONSUME_CHAR(ps, icnt, lb_ptr, lb_cnt) \
-   if ((lb_cnt) < (lb_ptr)) { \
-   (lb_cnt)++; \
+   if ((lb_ptr) < (lb_cnt)) { \
+   (lb_ptr)++; \
} else { \
(lb_cnt) = (lb_ptr) = 0; \
--(icnt); \
@@ -703,7 +703,12 @@
int opts;
static char qp_digits[] = "0123456789ABCDEF";
 
-   if (in_pp == NULL || in_left_p == NULL) {
+   line_ccnt = inst->line_ccnt;
+   opts = inst->opts;
+   lb_ptr = inst->lb_ptr;
+   lb_cnt = inst->lb_cnt;
+
+   if ((in_pp == NULL || in_left_p == NULL) && (lb_ptr >=lb_cnt)) {
return PHP_CONV_ERR_SUCCESS;
}
 
@@ -711,19 +716,13 @@
icnt = *in_left_p;
pd = (unsigned char *)(*out_pp);
ocnt = *out_left_p;
-   line_ccnt = inst->line_ccnt;
-   opts = inst->opts;
-   lb_ptr = inst->lb_ptr;
-   lb_cnt = inst->lb_cnt;
 
-   while (icnt > 0) {
+   for (;;) {
if (!(opts & PHP_CONV_QPRINT_OPT_BINARY) && inst->lbchars != NULL && 
inst->lbchars_len > 0) {
/* look ahead for the line break chars to make a right decision
 * how to consume incoming characters */
 
-   if (*ps == inst->lbchars[lb_cnt]) {
-   ps++;
-   icnt--;
+   if (icnt > 0 && *ps == inst->lbchars[lb_cnt]) {
lb_cnt++;
 
if (lb_cnt >= inst->lbchars_len) {
@@ -742,9 +741,14 @@
line_ccnt = inst->line_len;
lb_ptr = lb_cnt = 0;
}
+   ps++, icnt--;
continue;
}
}
+
+   if (lb_ptr >= lb_cnt && icnt <= 0) {
+   break;
+   } 
 
c = NEXT_CHAR(ps, icnt, lb_ptr, lb_cnt, inst->lbchars);
 



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




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

2003-01-17 Thread Moriyoshi Koizumi
moriyoshi   Fri Jan 17 04:04:03 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Significant speed enhancements. I was underestimating the power of recent
  CPUs :)
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.20 php4/ext/standard/filters.c:1.21
--- php4/ext/standard/filters.c:1.20Thu Jan 16 15:59:07 2003
+++ php4/ext/standard/filters.c Fri Jan 17 04:04:02 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.20 2003/01/16 20:59:07 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.21 2003/01/17 09:04:02 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -533,6 +533,7 @@
/* do nothing */
 }
 
+#define bmask(a) (0x >> (16 - a))
 static php_conv_err_t php_conv_base64_decode_convert(php_conv_base64_decode *inst, 
const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
 {
php_conv_err_t err;
@@ -545,12 +546,6 @@
 
const static unsigned int nbitsof_pack = 8;
 
-   static unsigned int bmask[17] = {
-   0x, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f,
-   0x00ff, 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff,
-   0x
-   };
-
if (in_pp == NULL || in_left_p == NULL) {
if (inst->eos || inst->urem_nbits == 0) { 
return SUCCESS;
@@ -580,7 +575,7 @@
} else {
urem_nbits -= pack_bcnt;
pack |= (urem >> urem_nbits);
-   urem &= bmask[urem_nbits];
+   urem &= bmask(urem_nbits);
pack_bcnt = 0;
}
if (pack_bcnt > 0) {
@@ -606,7 +601,7 @@
} else {
urem_nbits = 6 - pack_bcnt;
pack |= (i >> urem_nbits);
-   urem = i & bmask[urem_nbits];
+   urem = i & bmask(urem_nbits);
pack_bcnt = 0;
}
} else if (ustat) {
@@ -648,6 +643,7 @@
 
return err;
 }
+#undef bmask
 /* }}} */
 
 /* {{{ php_conv_qprint_encode */



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




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

2003-01-17 Thread Moriyoshi Koizumi
moriyoshi   Fri Jan 17 15:00:33 2003 EDT

  Modified files:  
/php4/ext/standard  filters.c 
  Log:
  Fixed a quoted printable decoder so that it would conform to RFC2045.
  
  
Index: php4/ext/standard/filters.c
diff -u php4/ext/standard/filters.c:1.21 php4/ext/standard/filters.c:1.22
--- php4/ext/standard/filters.c:1.21Fri Jan 17 04:04:02 2003
+++ php4/ext/standard/filters.c Fri Jan 17 15:00:31 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: filters.c,v 1.21 2003/01/17 09:04:02 moriyoshi Exp $ */
+/* $Id: filters.c,v 1.22 2003/01/17 20:00:31 moriyoshi Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -865,11 +865,20 @@
 
int scan_stat;
unsigned int next_char;
+   const char *lbchars;
+   int lbchars_dup;
+   size_t lbchars_len;
+   int persistent;
+   unsigned int lb_ptr;
+   unsigned int lb_cnt;
 } php_conv_qprint_decode;
 
 static void php_conv_qprint_decode_dtor(php_conv_qprint_decode *inst)
 {
-   /* do nothing */
+   assert(inst != NULL);
+   if (inst->lbchars_dup && inst->lbchars != NULL) {
+   pefree((void *)inst->lbchars, inst->persistent);
+   }
 }
 
 static php_conv_err_t php_conv_qprint_decode_convert(php_conv_qprint_decode *inst, 
const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p)
@@ -878,9 +887,13 @@
size_t icnt, ocnt;
unsigned char *ps, *pd;
unsigned int scan_stat;
-   unsigned int v;
+   unsigned int next_char;
+   unsigned int lb_ptr, lb_cnt;
 
-   if (in_pp == NULL || in_left_p == NULL) {
+   lb_ptr = inst->lb_ptr;
+   lb_cnt = inst->lb_cnt;
+
+   if ((in_pp == NULL || in_left_p == NULL) && lb_cnt == lb_ptr) {
if (inst->scan_stat != 0) {
return PHP_CONV_ERR_UNEXPECTED_EOS;
}
@@ -892,12 +905,14 @@
pd = (unsigned char *)(*out_pp);
ocnt = *out_left_p;
scan_stat = inst->scan_stat;
+   next_char = inst->next_char;
 
-   v = 0;
-
-   for (;icnt > 0; icnt--) {
+   for (;;) {
switch (scan_stat) {
case 0: {
+   if (icnt <= 0) {
+   goto out;
+   }
if (*ps == '=') {
scan_stat = 1;
} else {
@@ -908,41 +923,104 @@
*(pd++) = *ps;
ocnt--;
}
+   ps++, icnt--;
} break;
 
-   case 1: case 2: {
-   unsigned int nbl = (*ps >= 'A' ? *ps - 0x37 : *ps - 
0x30);
+   case 1: {
+   if (icnt <= 0) {
+   goto out;
+   }
+   if (*ps == ' ' || *ps == '\t') {
+   scan_stat = 4;
+   ps++, icnt--;
+   break;
+   } else if (lb_cnt < inst->lbchars_len &&
+   *ps == (unsigned 
+char)inst->lbchars[lb_cnt]) {
+   lb_cnt++;
+   scan_stat = 5;
+   ps++, icnt--;
+   break;
+   }
+   } /* break is missing intentionally */
+
+   case 2: {
+   unsigned int nbl;
+   
+   if (icnt <= 0) {
+   goto out;
+   }
+   nbl = (*ps >= 'A' ? *ps - 0x37 : *ps - 0x30);
 
if (nbl > 15) {
err = PHP_CONV_ERR_INVALID_SEQ;
goto out;
}
-   v = (v << 4) | nbl;
+   next_char = (next_char << 4) | nbl;
 
scan_stat++;
-   if (scan_stat == 3) {
-   if (ocnt < 1) {
-   inst->next_char = v;
-   err = PHP_CONV_ERR_TOO_BIG;
-   goto out;
-   }
-   *(pd++) = v;
-   ocnt--;
-   scan_stat = 0;
+   ps++, icnt--;
+

[PHP-CVS] cvs: php4 /win32 md5crypt.c

2003-01-17 Thread Moriyoshi Koizumi
moriyoshi   Fri Jan 17 17:45:25 2003 EDT

  Modified files:  
/php4/win32 md5crypt.c 
  Log:
  WS fix
  
  
Index: php4/win32/md5crypt.c
diff -u php4/win32/md5crypt.c:1.2 php4/win32/md5crypt.c:1.3
--- php4/win32/md5crypt.c:1.2   Tue Dec 31 10:59:14 2002
+++ php4/win32/md5crypt.c   Fri Jan 17 17:45:23 2003
@@ -12,11 +12,11 @@
| obtain it through the world-wide-web, please send a note to  |
| [EMAIL PROTECTED] so we can mail you a copy immediately.   |
+--+
-   | Author: Edin Kadribasic  
   |
+   | Author: Edin Kadribasic  |
+--+
  */
 
-/* $Id: md5crypt.c,v 1.2 2002/12/31 15:59:14 sebastian Exp $ */
+/* $Id: md5crypt.c,v 1.3 2003/01/17 22:45:23 moriyoshi Exp $ */
 
 /*
  * 



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




[PHP-CVS] cvs: php4 / header

2003-01-17 Thread Moriyoshi Koizumi
moriyoshi   Fri Jan 17 17:54:47 2003 EDT

  Modified files:  
/php4   header 
  Log:
  Bump year.
  
  
Index: php4/header
diff -u php4/header:1.10 php4/header:1.11
--- php4/header:1.10Thu Feb 28 03:25:27 2002
+++ php4/header Fri Jan 17 17:54:47 2003
@@ -2,7 +2,7 @@
   +--+
   | PHP Version 4|
   +--+
-  | Copyright (c) 1997-2002 The PHP Group|
+  | Copyright (c) 1997-2003 The PHP Group|
   +--+
   | This source file is subject to version 2.02 of the PHP license,  |
   | that is bundled with this package in the file LICENSE, and is|
@@ -15,5 +15,5 @@
   | Author:  |
   +--+
 
-  $Id: header,v 1.10 2002/02/28 08:25:27 sebastian Exp $ 
+  $Id: header,v 1.11 2003/01/17 22:54:47 moriyoshi Exp $ 
 */



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




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

2003-01-18 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 18 13:31:14 2003 EDT

  Modified files:  
/php4/ext/standard  scanf.c 
  Log:
  Fixed bug #21726 and #21730
  
  
Index: php4/ext/standard/scanf.c
diff -u php4/ext/standard/scanf.c:1.19 php4/ext/standard/scanf.c:1.20
--- php4/ext/standard/scanf.c:1.19  Tue Dec 31 11:07:54 2002
+++ php4/ext/standard/scanf.c   Sat Jan 18 13:31:13 2003
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: scanf.c,v 1.19 2002/12/31 16:07:54 sebastian Exp $ */
+/* $Id: scanf.c,v 1.20 2003/01/18 18:31:13 moriyoshi Exp $ */
 
 /*
scanf.c --
@@ -762,9 +762,9 @@
 case 'n':
 if (!(flags & SCAN_SUPPRESS)) {
 if (numVars) {
-current = args[objIndex++];
-convert_to_long( *current );
-ZVAL_STRINGL( *current, string, end-string, 1);
+   current = args[objIndex++];
+zval_dtor( *current );
+ZVAL_LONG( *current, (long)(string - baseString) );
 } else {
 add_index_long(*return_value, objIndex++, string - 
baseString);
 }
@@ -883,8 +883,8 @@
 if (!(flags & SCAN_SUPPRESS)) {
 if (numVars) {
 current = args[objIndex++];
-convert_to_string( *current );
-ZVAL_STRINGL( *current, string, end-string, 1);
+   zval_dtor( *current );
+   ZVAL_STRINGL( *current, string, end-string, 1);
 } else {
 add_index_stringl( *return_value, objIndex++, string, end-string, 
1);
 }



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




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

2003-01-18 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 18 13:49:47 2003 EDT

  Modified files:  
/php4/ext/standard  scanf.c 
  Log:
  Tons of WS fixes
  
  
Index: php4/ext/standard/scanf.c
diff -u php4/ext/standard/scanf.c:1.20 php4/ext/standard/scanf.c:1.21
--- php4/ext/standard/scanf.c:1.20  Sat Jan 18 13:31:13 2003
+++ php4/ext/standard/scanf.c   Sat Jan 18 13:49:47 2003
@@ -16,13 +16,13 @@
+--+
 */
 
-/* $Id: scanf.c,v 1.20 2003/01/18 18:31:13 moriyoshi Exp $ */
+/* $Id: scanf.c,v 1.21 2003/01/18 18:49:47 moriyoshi Exp $ */
 
 /*
scanf.c --
  
-This file contains the base code which implements sscanf and by extension
-fscanf. Original code is from TCL8.3.0 and bears the following copyright
+   This file contains the base code which implements sscanf and by extension
+   fscanf. Original code is from TCL8.3.0 and bears the following copyright
  
  
  
@@ -108,14 +108,14 @@
  */
 
 typedef struct CharSet {
-int exclude;   /* 1 if this is an exclusion set. */
-int nchars;
-char *chars;
-int nranges;
-struct Range {
-char start;
-char end;
-} *ranges;
+   int exclude;/* 1 if this is an exclusion set. */
+   int nchars;
+   char *chars;
+   int nranges;
+   struct Range {
+   char start;
+   char end;
+   } *ranges;
 } CharSet;
 
 /*
@@ -147,92 +147,92 @@
  */
 static char * BuildCharSet(CharSet *cset, char *format)
 {
-char *ch, start;
-int  nranges;
-char *end;
-
-memset(cset, 0, sizeof(CharSet));
-
-ch = format;
-if (*ch == '^') {
-cset->exclude = 1;
-ch = ++format;
-}
-end = format + 1;/* verify this - cc */
-
-/*
- * Find the close bracket so we can overallocate the set.
- */
-
-if (*ch == ']') {
-ch = end++;
-}
-nranges = 0;
-while (*ch != ']') {
-if (*ch == '-') {
-nranges++;
-}
-ch = end++;
-}
-
-cset->chars = (char *) emalloc(sizeof(char) * (end - format - 1));
-if (nranges > 0) {
-cset->ranges = (struct Range *) emalloc(sizeof(struct Range)*nranges);
-} else {
-cset->ranges = NULL;
-}
-
-/*
- * Now build the character set.
- */
-
-cset->nchars = cset->nranges = 0;
-ch= format++;
-start = *ch;
-if (*ch == ']' || *ch == '-') {
-cset->chars[cset->nchars++] = *ch;
-ch = format++;
-}
-while (*ch != ']') {
-if (*format == '-') {
-/*
- * This may be the first character of a range, so don't add
- * it yet.
- */
-
-start = *ch;
-} else if (*ch == '-') {
-/*
- * Check to see if this is the last character in the set, in which
- * case it is not a range and we should add the previous character
- * as well as the dash.
- */
-
-if (*format == ']') {
-cset->chars[cset->nchars++] = start;
-cset->chars[cset->nchars++] = *ch;
-} else {
-ch = format++;
-
-/*
- * Check to see if the range is in reverse order.
- */
-
-if (start < *ch) {
-cset->ranges[cset->nranges].start = start;
-cset->ranges[cset->nranges].end = *ch;
-} else {
-cset->ranges[cset->nranges].start = *ch;
-cset->ranges[cset->nranges].end = start;
-}
-cset->nranges++;
-   }
-} else {
-cset->chars[cset->nchars++] = *ch;
-}
-ch = format++;
-}
-return format;
+   char *ch, start;
+   int  nranges;
+   char *end;
+
+   memset(cset, 0, sizeof(CharSet));
+   
+   ch = format;
+   if (*ch == '^') {
+   cset->exclude = 1;
+   ch = ++format;
+   }
+   end = format + 1;/* verify this - cc */
+
+   /*
+* Find the close bracket so we can overallocate the set.
+*/
+
+   if (*ch == ']') {
+   ch = end++;
+   }
+   nranges = 0;
+   while (*ch != ']') {
+   if (*ch == '-') {
+   nranges++;
+   }
+   ch = end++;
+   }
+
+   cset->chars = (char *) emalloc(sizeof(char) * (end - format - 1));
+   if (nranges > 0) {
+   cset->ranges = (struct Range *) emalloc(sizeof(struct Range)*nranges);
+   } else {
+   cset->ranges = NULL;
+   }
+
+   /*
+* Now build the character set.
+*/
+
+   cset->nchars = cset->nranges = 0;
+   ch= format++;
+   start = *ch;
+   if (*ch == ']' || *ch == '-') {
+   cset->chars[cset->nchars++] = *ch;
+   ch = forma

[PHP-CVS] cvs: php4 /ext/standard/tests/strings bug21730.phpt

2003-01-18 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 18 13:59:27 2003 EDT

  Added files: 
/php4/ext/standard/tests/stringsbug21730.phpt 
  Log:
  Added test case for bug #21730
  
  

Index: php4/ext/standard/tests/strings/bug21730.phpt
+++ php4/ext/standard/tests/strings/bug21730.phpt
--TEST--
Bug #21730 (*scanf "%n" conversion flag gives string instead of integer)
--FILE--

--EXPECTS--
array(3) {
  [0]=>
  string(3) "ABC"
  [1]=>
  string(3) "DEF"
  [2]=>
  int(9)
}
array(3) {
  [0]=>
  string(3) "ABC"
  [1]=>
  string(3) "DEF"
  [2]=>
  int(9)
}



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




[PHP-CVS] cvs: php4 /ext/standard/tests/strings bug21730.phpt

2003-01-18 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 18 14:02:23 2003 EDT

  Modified files:  
/php4/ext/standard/tests/stringsbug21730.phpt 
  Log:
  Fixed typo
  
  
Index: php4/ext/standard/tests/strings/bug21730.phpt
diff -u php4/ext/standard/tests/strings/bug21730.phpt:1.1 
php4/ext/standard/tests/strings/bug21730.phpt:1.2
--- php4/ext/standard/tests/strings/bug21730.phpt:1.1   Sat Jan 18 13:59:27 2003
+++ php4/ext/standard/tests/strings/bug21730.phpt   Sat Jan 18 14:02:21 2003
@@ -16,7 +16,7 @@
 var_dump($res_a);
 var_dump($res_b);
 ?>
---EXPECTS--
+--EXPECT--
 array(3) {
   [0]=>
   string(3) "ABC"



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




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

2003-01-18 Thread Moriyoshi Koizumi
moriyoshi   Sat Jan 18 14:26:02 2003 EDT

  Modified files:  
/php4/ext/standard  scanf.c 
  Log:
  WS
  
  
Index: php4/ext/standard/scanf.c
diff -u php4/ext/standard/scanf.c:1.21 php4/ext/standard/scanf.c:1.22
--- php4/ext/standard/scanf.c:1.21  Sat Jan 18 13:49:47 2003
+++ php4/ext/standard/scanf.c   Sat Jan 18 14:26:01 2003
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: scanf.c,v 1.21 2003/01/18 18:49:47 moriyoshi Exp $ */
+/* $Id: scanf.c,v 1.22 2003/01/18 19:26:01 moriyoshi Exp $ */
 
 /*
scanf.c --
@@ -364,15 +364,15 @@
}
 
if ( isdigit( (int)*ch ) ) { 
-  /*
-   * Check for an XPG3-style %n$ specification.  Note: there
-   * must not be a mixture of XPG3 specs and non-XPG3 specs
-   * in the same format string.
-   */
-
-  value = strtoul(format-1, &end, 10); 
-  if (*end != '$') {
- goto notXpg;
+   /*
+* Check for an XPG3-style %n$ specification.  Note: there
+* must not be a mixture of XPG3 specs and non-XPG3 specs
+* in the same format string.
+*/
+
+   value = strtoul(format-1, &end, 10); 
+   if (*end != '$') {
+   goto notXpg;
}
format = end+1;
ch = format++;
@@ -391,10 +391,10 @@
 * guaranteed to be > 0.
 */
 
-/* set a lower artificial limit on this
- * in the interest of security and resource 
friendliness
- * 255 arguments should be more than enough. - cc
- */
+   /* set a lower artificial limit on this
+* in the interest of security and resource 
+friendliness
+* 255 arguments should be more than enough. - cc
+*/
if (value > SCAN_MAX_ARGS) {
goto badIndex;
}
@@ -402,7 +402,7 @@
xpgSize = (xpgSize > value) ? xpgSize : value;
}
goto xpgCheckDone;
-   }
+   }
 
notXpg:
gotSequential = 1;
@@ -413,52 +413,52 @@
}
 
xpgCheckDone:
-   /*
-* Parse any width specifier.
-*/
-
-   if (isdigit(UCHAR(*ch))) { 
-   value = strtoul(format-1, &format, 10);
-   flags |= SCAN_WIDTH;
-   ch = format++;
-   }
-
-   /*
-* Ignore size specifier.
-*/
+   /*
+* Parse any width specifier.
+*/
+
+   if (isdigit(UCHAR(*ch))) { 
+   value = strtoul(format-1, &format, 10);
+   flags |= SCAN_WIDTH;
+   ch = format++;
+   }
 
-   if ((*ch == 'l') || (*ch == 'L') || (*ch == 'h')) {
-   ch = format++;
-   }
+   /*
+* Ignore size specifier.
+*/
 
-   if (!(flags & SCAN_SUPPRESS) && numVars && (objIndex >= numVars)) {
-   goto badIndex;
-   }
+   if ((*ch == 'l') || (*ch == 'L') || (*ch == 'h')) {
+   ch = format++;
+   }
 
-   /*
-* Handle the various field types.
-*/
+   if (!(flags & SCAN_SUPPRESS) && numVars && (objIndex >= numVars)) {
+   goto badIndex;
+   }
 
-   switch (*ch) {
-   case 'n':
-   case 'd':
-   case 'D':   
-   case 'i':
-   case 'o':
-   case 'x':
-   case 'X':   
-   case 'u':
-   case 'f':
-   case 'e':
-   case 'E':   
-   case 'g':
-   case 's':
- break;
-   case 'c':
-   /* we differ here with the TCL implementation in allowing for 
*/
-   /* a character width specification, to be more consistent with 
*/
-   /* ANSI. since Zend auto allocates space for vars, this is no 
*/
-   /* problem - cc   
*/
+   /*
+* Handle the various field types.
+*/
+
+   switch (*ch) {
+   case 'n':
+

  1   2   3   4   5   6   7   8   9   10   >