diff options
author | David Coallier <davidc@php.net> | 2008-01-16 03:11:26 +0000 |
---|---|---|
committer | David Coallier <davidc@php.net> | 2008-01-16 03:11:26 +0000 |
commit | d6806d5eadcf65642c727dc18cac7060018efb35 (patch) | |
tree | ec3b6f5226cc2dfe4cc8912736f769bb6898d281 | |
parent | 44a985f63ee8168fd8abbf7e25a95e649311d4cd (diff) | |
download | php-git-d6806d5eadcf65642c727dc18cac7060018efb35.tar.gz |
- MFH
- Making sure this is also using the good zend parsing and added
the php_ucfirst function
-rw-r--r-- | ext/standard/string.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index 170ae14dd0..eab5b24da5 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2616,23 +2616,33 @@ PHP_FUNCTION(chr) } /* }}} */ +/* {{{ php_ucfirst + Uppercase the first character of the word in a native string */ +static void php_ucfirst(char *str) +{ + register char *r; + r = str; + *r = toupper((unsigned char) *r); +} +/* }}} */ + /* {{{ proto string ucfirst(string str) Makes a string's first character uppercase */ PHP_FUNCTION(ucfirst) { - zval **str; + char *str; + int str_len; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) { + return; } - convert_to_string_ex(str); - if (!Z_STRLEN_PP(str)) { + if (!str_len) { RETURN_EMPTY_STRING(); } - ZVAL_STRINGL(return_value, Z_STRVAL_PP(str), Z_STRLEN_PP(str), 1); - *Z_STRVAL_P(return_value) = toupper((unsigned char) *Z_STRVAL_P(return_value)); + ZVAL_STRINGL(return_value, str, str_len, 1); + php_ucfirst(Z_STRVAL_P(return_value)); } /* }}} */ |