Re: [PHP-CVS] cvs: php-src /ext/standard basic_functions.c php_string.h string.c /ext/standard/tests/strings lcfirst.phpt

2008-01-27 Thread Hannes Magnusson
2008/1/19 David Coallier [EMAIL PROTECTED]:
 davidc  Sat Jan 19 19:23:25 2008 UTC

   Added files:
 /php-src/ext/standard/tests/strings lcfirst.phpt

   Modified files:
 /php-src/ext/standard   basic_functions.c php_string.h string.c
   Log:
   - Added lcfirst() function. The sister function of ucfirst()
   - Test #1 for lcfirst()

This test is failing with unicode_semantics=on (and has a really weird
testname).

-Hannes

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



Re: [PHP-CVS] cvs: php-src /ext/standard basic_functions.c php_string.h string.c /ext/standard/tests/strings lcfirst.phpt

2008-01-27 Thread David Coallier
On Jan 27, 2008 2:36 PM, Hannes Magnusson [EMAIL PROTECTED] wrote:
 2008/1/19 David Coallier [EMAIL PROTECTED]:
  davidc  Sat Jan 19 19:23:25 2008 UTC
 
Added files:
  /php-src/ext/standard/tests/strings lcfirst.phpt
 
Modified files:
  /php-src/ext/standard   basic_functions.c php_string.h string.c
Log:
- Added lcfirst() function. The sister function of ucfirst()
- Test #1 for lcfirst()

 This test is failing with unicode_semantics=on (and has a really weird
 testname).

Arrrgh! this switch! :))

Ok will fix and commit sorry about that.


 -Hannes




-- 
David Coallier,
Founder  Software Architect,
Agora Production (http://agoraproduction.com)
51.42.06.70.18

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



[PHP-CVS] cvs: php-src /ext/standard basic_functions.c php_string.h string.c /ext/standard/tests/strings lcfirst.phpt

2008-01-19 Thread David Coallier
davidc  Sat Jan 19 19:23:25 2008 UTC

  Added files: 
/php-src/ext/standard/tests/strings lcfirst.phpt 

  Modified files:  
/php-src/ext/standard   basic_functions.c php_string.h string.c 
  Log:
  - Added lcfirst() function. The sister function of ucfirst()
  - Test #1 for lcfirst()
  
  http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.886r2=1.887diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.886 
php-src/ext/standard/basic_functions.c:1.887
--- php-src/ext/standard/basic_functions.c:1.886Mon Dec 31 07:12:15 2007
+++ php-src/ext/standard/basic_functions.c  Sat Jan 19 19:23:25 2008
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: basic_functions.c,v 1.886 2007/12/31 07:12:15 sebastian Exp $ */
+/* $Id: basic_functions.c,v 1.887 2008/01/19 19:23:25 davidc Exp $ */
 
 #include php.h
 #include php_streams.h
@@ -2635,6 +2635,11 @@
 ZEND_END_ARG_INFO()
 
 static
+ZEND_BEGIN_ARG_INFO(arginfo_lcfirst, 0)
+   ZEND_ARG_INFO(0, str)
+ZEND_END_ARG_INFO()
+
+static
 ZEND_BEGIN_ARG_INFO(arginfo_ucwords, 0)
ZEND_ARG_INFO(0, str)
 ZEND_END_ARG_INFO()
@@ -3189,6 +3194,7 @@
PHP_FE(substr_replace,  
arginfo_substr_replace)
PHP_FE(quotemeta,   
arginfo_quotemeta)
PHP_FE(ucfirst, 
arginfo_ucfirst)
+   PHP_FE(lcfirst, 
arginfo_lcfirst)
PHP_FE(ucwords, 
arginfo_ucwords)
PHP_FE(strtr,   
arginfo_strtr)
PHP_FE(addslashes,  
arginfo_addslashes)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/php_string.h?r1=1.109r2=1.110diff_format=u
Index: php-src/ext/standard/php_string.h
diff -u php-src/ext/standard/php_string.h:1.109 
php-src/ext/standard/php_string.h:1.110
--- php-src/ext/standard/php_string.h:1.109 Mon Dec 31 07:12:16 2007
+++ php-src/ext/standard/php_string.h   Sat Jan 19 19:23:25 2008
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_string.h,v 1.109 2007/12/31 07:12:16 sebastian Exp $ */
+/* $Id: php_string.h,v 1.110 2008/01/19 19:23:25 davidc Exp $ */
 
 /* Synced with php 3.0 revision 1.43 1999-06-16 [ssb] */
 
@@ -54,6 +54,7 @@
 PHP_FUNCTION(substr);
 PHP_FUNCTION(quotemeta);
 PHP_FUNCTION(ucfirst);
+PHP_FUNCTION(lcfirst);
 PHP_FUNCTION(ucwords);
 PHP_FUNCTION(strtr);
 PHP_FUNCTION(strrev);
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.662r2=1.663diff_format=u
Index: php-src/ext/standard/string.c
diff -u php-src/ext/standard/string.c:1.662 php-src/ext/standard/string.c:1.663
--- php-src/ext/standard/string.c:1.662 Wed Jan 16 08:34:06 2008
+++ php-src/ext/standard/string.c   Sat Jan 19 19:23:25 2008
@@ -18,7 +18,7 @@
+--+
  */
 
-/* $Id: string.c,v 1.662 2008/01/16 08:34:06 tony2001 Exp $ */
+/* $Id: string.c,v 1.663 2008/01/19 19:23:25 davidc Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -3856,6 +3856,69 @@
 }
 /* }}} */
 
+/* {{{ php_u_lcfirst()
+   Makes an Unicode string's first character lowercase */
+static void php_u_lcfirst(UChar *ustr, int ustr_len, zval *return_value 
TSRMLS_DC)
+{
+   UChar tmp[3] = { 0, 0, 0 }; /* UChar32 will be converted to upto 2 
UChar units */
+   int tmp_len = 0;
+   int pos = 0;
+   UErrorCode status = U_ZERO_ERROR;
+
+   U16_FWD_1(ustr, pos, ustr_len);
+   tmp_len = u_strToUpper(tmp, sizeof(tmp)/sizeof(UChar), ustr, pos, 
UG(default_locale), status);
+
+   Z_USTRVAL_P(return_value) = eumalloc(tmp_len + ustr_len - pos+1);
+   
+   Z_USTRVAL_P(return_value)[0] = tmp[0];
+   if (tmp_len  1) {
+   Z_USTRVAL_P(return_value)[1] = tmp[1];
+   }
+   u_memcpy(Z_USTRVAL_P(return_value)+tmp_len, ustr + pos, ustr_len - 
pos+1);
+   Z_USTRLEN_P(return_value) = tmp_len + ustr_len - pos;
+}
+/* }}} */
+
+/* {{{ php_lcfirst 
+   Lowercase the first character of the word in a native string */
+static void php_lcfirst(char *str)
+{
+   register char *r;
+   r = str;
+   *r = tolower((unsigned char) *r);
+}
+/* }}} */
+