diff options
author | Guido van Rossum <guido@python.org> | 1996-06-12 04:24:52 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1996-06-12 04:24:52 (GMT) |
commit | 2745753b91b1f83f8c24a2e3ed39f103ba1a1043 (patch) | |
tree | 92c23f33645e1b658fa6951ae09cf858e79de7ea /Modules/stropmodule.c | |
parent | 4f0fbf884b50399423a494a682063d13e1a51391 (diff) | |
download | cpython-2745753b91b1f83f8c24a2e3ed39f103ba1a1043.zip cpython-2745753b91b1f83f8c24a2e3ed39f103ba1a1043.tar.gz cpython-2745753b91b1f83f8c24a2e3ed39f103ba1a1043.tar.bz2 |
added capitalize()
Diffstat (limited to 'Modules/stropmodule.c')
-rw-r--r-- | Modules/stropmodule.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c index a82c313..52d4cee 100644 --- a/Modules/stropmodule.c +++ b/Modules/stropmodule.c @@ -368,6 +368,50 @@ strop_upper(self, args) static object * +strop_capitalize(self, args) + object *self; /* Not used */ + object *args; +{ + char *s, *s_new; + int i, n; + object *new; + int changed; + + if (!getargs(args, "s#", &s, &n)) + return NULL; + new = newsizedstringobject(NULL, n); + if (new == NULL) + return NULL; + s_new = getstringvalue(new); + changed = 0; + { + int c = Py_CHARMASK(*s++); + if (islower(c)) { + changed = 1; + *s_new = toupper(c); + } else + *s_new = c; + s_new++; + } + for (i = 1; i < n; i++) { + int c = Py_CHARMASK(*s++); + if (isupper(c)) { + changed = 1; + *s_new = tolower(c); + } else + *s_new = c; + s_new++; + } + if (!changed) { + DECREF(new); + INCREF(args); + return args; + } + return new; +} + + +static object * strop_swapcase(self, args) object *self; /* Not used */ object *args; @@ -538,6 +582,7 @@ static struct methodlist strop_methods[] = { {"atof", strop_atof}, {"atoi", strop_atoi}, {"atol", strop_atol}, + {"capitalize", strop_capitalize}, {"find", strop_find}, {"join", strop_joinfields, 1}, {"joinfields", strop_joinfields, 1}, |