summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Coallier <davidc@php.net>2008-01-16 03:11:26 +0000
committerDavid Coallier <davidc@php.net>2008-01-16 03:11:26 +0000
commitd6806d5eadcf65642c727dc18cac7060018efb35 (patch)
treeec3b6f5226cc2dfe4cc8912736f769bb6898d281
parent44a985f63ee8168fd8abbf7e25a95e649311d4cd (diff)
downloadphp-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.c24
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));
}
/* }}} */