cvs: php-src /ext/unicode locale.c php_unicode.h unicode.c
| From: | Derick Rethans | Date: | Wed, 14 Sep 2005 14:56:03 +0000 |
| Subject: | cvs: php-src /ext/unicode locale.c php_unicode.h unicode.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-33949@lists.php.net to get a copy of this message | ||
derick Wed Sep 14 10:56:03 2005 EDT
Modified files:
/php-src/ext/unicode locale.c php_unicode.h unicode.c
Log:
- Rename icu_loc* to i18n_loc*
- Added i18n_strtotitle (name is not sure yet) - work in progress.
http://cvs.php.net/diff.php/php-src/ext/unicode/locale.c?r1=1.3&r2=1.4&ty=u
Index: php-src/ext/unicode/locale.c
diff -u php-src/ext/unicode/locale.c:1.3 php-src/ext/unicode/locale.c:1.4
--- php-src/ext/unicode/locale.c:1.3 Thu Aug 18 08:56:36 2005
+++ php-src/ext/unicode/locale.c Wed Sep 14 10:56:01 2005
@@ -14,11 +14,12 @@
+----------------------------------------------------------------------+
*/
-/* $Id: locale.c,v 1.3 2005/08/18 12:56:36 sniper Exp $ */
+/* $Id: locale.c,v 1.4 2005/09/14 14:56:01 derick Exp $ */
#include "php_unicode.h"
#if HAVE_UNICODE
+#include "unicode/ubrk.h"
static void php_canonicalize_locale_id(char **target, int32_t *target_len, char *locale, UErrorCode
*status)
{
@@ -39,7 +40,7 @@
*target_len = canonicalized_len;
}
-PHP_FUNCTION(icu_loc_get_default)
+PHP_FUNCTION(i18n_loc_get_default)
{
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "") == FAILURE) {
return;
@@ -48,7 +49,7 @@
RETURN_STRING(UG(default_locale), 1);
}
-PHP_FUNCTION(icu_loc_set_default)
+PHP_FUNCTION(i18n_loc_set_default)
{
char *locale;
int locale_len;
@@ -79,6 +80,67 @@
RETURN_TRUE;
}
+/* {{{ php_strtotitle
+ */
+PHPAPI char *php_strtotitle(char *s, size_t len)
+{
+ s[0] = toupper(s[0]);
+ return s;
+}
+/* }}} */
+
+/* {{{ php_u_strtotitle
+ */
+PHPAPI UChar* php_u_strtotitle(UChar **s, int32_t *len, const char* locale)
+{
+ UChar *dest = NULL;
+ int32_t dest_len;
+ UErrorCode status = U_ZERO_ERROR;
+ UBreakIterator *brkiter;
+
+ dest_len = *len;
+ brkiter = ubrk_open(UBRK_TITLE, locale, *s, *len, &status);
+ while (1) {
+ status = U_ZERO_ERROR;
+ dest = eurealloc(dest, dest_len+1);
+ dest_len = u_strToTitle(dest, dest_len, *s, *len, NULL, locale, &status);
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+ }
+ ubrk_close(brkiter);
+
+ if (U_SUCCESS(status)) {
+ efree(*s);
+ dest[dest_len] = 0;
+ *s = dest;
+ *len = dest_len;
+ } else {
+ efree(dest);
+ }
+
+ return *s;
+}
+/* }}} */
+
+
+/* {{{ proto string strtoupper(string str)
+ Makes a string uppercase */
+PHP_FUNCTION(i18n_strtotitle)
+{
+ zval **arg;
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg)) {
+ WRONG_PARAM_COUNT;
+ }
+ if (Z_TYPE_PP(arg) != IS_STRING && Z_TYPE_PP(arg) != IS_UNICODE) {
+ convert_to_text_ex(arg);
+ }
+
+ RETVAL_ZVAL(*arg, 1, 0);
+ php_u_strtotitle(&Z_USTRVAL_P(return_value), &Z_USTRLEN_P(return_value),
UG(default_locale));
+}
+/* }}} */
#endif /* HAVE_UNICODE */
http://cvs.php.net/diff.php/php-src/ext/unicode/php_unicode.h?r1=1.2&r2=1.3&ty=u
Index: php-src/ext/unicode/php_unicode.h
diff -u php-src/ext/unicode/php_unicode.h:1.2 php-src/ext/unicode/php_unicode.h:1.3
--- php-src/ext/unicode/php_unicode.h:1.2 Fri Aug 12 05:10:04 2005
+++ php-src/ext/unicode/php_unicode.h Wed Sep 14 10:56:01 2005
@@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_unicode.h,v 1.2 2005/08/12 09:10:04 sniper Exp $ */
+/* $Id: php_unicode.h,v 1.3 2005/09/14 14:56:01 derick Exp $ */
#ifndef PHP_UNICODE_H
#define PHP_UNICODE_H
@@ -55,8 +55,9 @@
#include "TSRM.h"
#endif
-PHP_FUNCTION(icu_loc_get_default);
-PHP_FUNCTION(icu_loc_set_default);
+PHP_FUNCTION(i18n_loc_get_default);
+PHP_FUNCTION(i18n_loc_set_default);
+PHP_FUNCTION(i18n_strtotitle);
extern php_stream_filter_factory php_unicode_filter_factory;
http://cvs.php.net/diff.php/php-src/ext/unicode/unicode.c?r1=1.4&r2=1.5&ty=u
Index: php-src/ext/unicode/unicode.c
diff -u php-src/ext/unicode/unicode.c:1.4 php-src/ext/unicode/unicode.c:1.5
--- php-src/ext/unicode/unicode.c:1.4 Sat Aug 13 22:03:02 2005
+++ php-src/ext/unicode/unicode.c Wed Sep 14 10:56:01 2005
@@ -15,7 +15,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: unicode.c,v 1.4 2005/08/14 02:03:02 sniper Exp $ */
+/* $Id: unicode.c,v 1.5 2005/09/14 14:56:01 derick Exp $ */
#include "php_unicode.h"
#if HAVE_UNICODE
@@ -102,10 +102,11 @@
}
/* {{{ unicode_functions[] */
function_entry unicode_functions[] = {
- PHP_FE(icu_loc_get_default, NULL)
- PHP_FE(icu_loc_set_default, NULL)
+ PHP_FE(i18n_loc_get_default, NULL)
+ PHP_FE(i18n_loc_set_default, NULL)
PHP_FE(unicode_decode, NULL)
PHP_FE(unicode_encode, NULL)
+ PHP_FE(i18n_strtotitle, NULL)
{ NULL, NULL, NULL }
};
/* }}} */