moriyoshi Sun Oct 20 21:45:00 2002 EDT
Added files:
/php4/ext/mbstring/tests 026.inc 026.phpt
Modified files:
/php4/ext/mbstring mbstring.c mbstring.h
Log:
Added mb_strtolower() and mb_strtoupper()
@- Added mb_strtolower() and mb_strtoupper(). (Moriyoshi)
Index: php4/ext/mbstring/mbstring.c
diff -u php4/ext/mbstring/mbstring.c:1.107 php4/ext/mbstring/mbstring.c:1.108
--- php4/ext/mbstring/mbstring.c:1.107 Sun Oct 20 03:16:20 2002
+++ php4/ext/mbstring/mbstring.c Sun Oct 20 21:44:59 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.107 2002/10/20 07:16:20 moriyoshi Exp $ */
+/* $Id: mbstring.c,v 1.108 2002/10/21 01:44:59 moriyoshi Exp $ */
/*
* PHP4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -162,6 +162,8 @@
{MB_OVERLOAD_STRING, "strpos", "mb_strpos", "mb_orig_strrpos"},
{MB_OVERLOAD_STRING, "strrpos", "mb_strrpos", "mb_orig_strrpos"},
{MB_OVERLOAD_STRING, "substr", "mb_substr", "mb_orig_substr"},
+ {MB_OVERLOAD_STRING, "strtolower", "mb_strtolower", "mb_orig_strtolower"},
+ {MB_OVERLOAD_STRING, "strtoupper", "mb_strtoupper", "mb_orig_strtoupper"},
#if HAVE_MBREGEX
{MB_OVERLOAD_REGEX, "ereg", "mb_ereg", "mb_orig_ereg"},
{MB_OVERLOAD_REGEX, "eregi", "mb_eregi", "mb_orig_eregi"},
@@ -189,6 +191,8 @@
function_entry mbstring_functions[] = {
PHP_FE(mb_convert_case, NULL)
+ PHP_FE(mb_strtoupper, NULL)
+ PHP_FE(mb_strtolower, NULL)
PHP_FE(mb_language, NULL)
PHP_FE(mb_internal_encoding, NULL)
PHP_FE(mb_http_input, NULL)
@@ -2579,6 +2583,55 @@
}
/* }}} */
+
+/* {{{ proto string mb_strtoupper(string sourcestring, [, string encoding])
+ * Returns a uppercased version of sourcestring
+ */
+PHP_FUNCTION(mb_strtoupper)
+{
+ char *str, *from_encoding =
+(char*)mbfl_no2preferred_mime_name(MBSTRG(current_internal_encoding));
+ long str_len, from_encoding_len;
+ long case_mode = 0;
+ char *newstr;
+ size_t ret_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!", &str, &str_len,
+ &from_encoding, &from_encoding_len) == FAILURE) {
+ RETURN_FALSE;
+ }
+ newstr = php_unicode_convert_case(PHP_UNICODE_CASE_UPPER, str, str_len,
+&ret_len, from_encoding TSRMLS_CC);
+
+ if (newstr)
+ RETURN_STRINGL(newstr, ret_len, 0);
+
+ RETURN_FALSE;
+}
+/* }}} */
+
+/* {{{ proto string mb_strtolower(string sourcestring, [, string encoding])
+ * Returns a lowercased version of sourcestring
+ */
+PHP_FUNCTION(mb_strtolower)
+{
+ char *str, *from_encoding =
+(char*)mbfl_no2preferred_mime_name(MBSTRG(current_internal_encoding));
+ long str_len, from_encoding_len;
+ long case_mode = 0;
+ char *newstr;
+ size_t ret_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!", &str, &str_len,
+ &from_encoding, &from_encoding_len) == FAILURE) {
+ RETURN_FALSE;
+ }
+ newstr = php_unicode_convert_case(PHP_UNICODE_CASE_LOWER, str, str_len,
+&ret_len, from_encoding TSRMLS_CC);
+
+ if (newstr)
+ RETURN_STRINGL(newstr, ret_len, 0);
+
+ RETURN_FALSE;
+}
+/* }}} */
+
/* {{{ proto string mb_detect_encoding(string str [, mixed encoding_list])
Encodings of the given string is returned (as a string) */
Index: php4/ext/mbstring/mbstring.h
diff -u php4/ext/mbstring/mbstring.h:1.33 php4/ext/mbstring/mbstring.h:1.34
--- php4/ext/mbstring/mbstring.h:1.33 Sat Oct 19 22:57:39 2002
+++ php4/ext/mbstring/mbstring.h Sun Oct 20 21:44:59 2002
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.h,v 1.33 2002/10/20 02:57:39 fujimoto Exp $ */
+/* $Id: mbstring.h,v 1.34 2002/10/21 01:44:59 moriyoshi Exp $ */
/*
* PHP4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -78,6 +78,8 @@
/* functions in php_unicode.c */
PHP_FUNCTION(mb_convert_case);
+PHP_FUNCTION(mb_strtoupper);
+PHP_FUNCTION(mb_strtolower);
/* php function registration */
PHP_FUNCTION(mb_language);
Index: php4/ext/mbstring/tests/026.inc
+++ php4/ext/mbstring/tests/026.inc
<?php
print mb_strtolower( "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n" );
print mb_strtoupper( mb_strtolower( "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n" ) );
?>
Index: php4/ext/mbstring/tests/026.phpt
+++ php4/ext/mbstring/tests/026.phpt
--TEST--
mb_strtoupper() / mb_strtolower()
--SKIPIF--
<?php include('skipif.inc'); ?>
function_exists('mb_strtolower') or die("SKIP");
--POST--
--GET--
--FILE--
<?php include('026.inc'); ?>
--EXPECT--
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php