Makefile uses $> more often; cgen supports filename argument; added

lower, upper and swapcase to strop; cosmetics.
This commit is contained in:
Guido van Rossum 1992-09-11 23:55:51 +00:00
parent d10d8291f1
commit 5c85062e1c
2 changed files with 113 additions and 0 deletions

View File

@ -376,6 +376,11 @@ def mkobject(type, arg):
return 'mknew' + type + 'object(' + arg + ')'
# Open optional file argument
if sys.argv[1:]:
sys.stdin = open(sys.argv[1], 'r')
# Input line number
lno = 0

View File

@ -181,13 +181,121 @@ strop_strip(self, args)
}
#include <ctype.h>
static object *
strop_lower(self, args)
object *self; /* Not used */
object *args;
{
char *s;
int i, n;
object *new;
int changed;
if (!getargs(args, "s#", &s, &n))
return NULL;
new = newsizedstringobject(s, n);
if (new == NULL)
return NULL;
s = getstringvalue(new);
changed = 0;
for (i = 0; i < n; i++) {
char c = s[i];
if (isupper(c)) {
changed = 1;
s[i] = tolower(c);
}
}
if (!changed) {
DECREF(new);
INCREF(args);
return args;
}
return new;
}
static object *
strop_upper(self, args)
object *self; /* Not used */
object *args;
{
char *s;
int i, n;
object *new;
int changed;
if (!getargs(args, "s#", &s, &n))
return NULL;
new = newsizedstringobject(s, n);
if (new == NULL)
return NULL;
s = getstringvalue(new);
changed = 0;
for (i = 0; i < n; i++) {
char c = s[i];
if (islower(c)) {
changed = 1;
s[i] = toupper(c);
}
}
if (!changed) {
DECREF(new);
INCREF(args);
return args;
}
return new;
}
static object *
strop_swapcase(self, args)
object *self; /* Not used */
object *args;
{
char *s;
int i, n;
object *new;
int changed;
if (!getargs(args, "s#", &s, &n))
return NULL;
new = newsizedstringobject(s, n);
if (new == NULL)
return NULL;
s = getstringvalue(new);
changed = 0;
for (i = 0; i < n; i++) {
char c = s[i];
if (islower(c)) {
changed = 1;
s[i] = toupper(c);
}
else if (isupper(c)) {
changed = 1;
s[i] = tolower(c);
}
}
if (!changed) {
DECREF(new);
INCREF(args);
return args;
}
return new;
}
/* List of functions defined in the module */
static struct methodlist strop_methods[] = {
{"index", strop_index},
{"lower", strop_lower},
{"split", strop_split},
{"splitfields", strop_splitfields},
{"strip", strop_strip},
{"swapcase", strop_swapcase},
{"upper", strop_upper},
{NULL, NULL} /* sentinel */
};