Use fileobject's filegetline() to implement unlimited raw_input().

This commit is contained in:
Guido van Rossum 1991-04-04 15:20:41 +00:00
parent 6590d4a250
commit 26203aa422
1 changed files with 1 additions and 19 deletions

View File

@ -436,29 +436,11 @@ builtin_raw_input(self, v)
object *self;
object *v;
{
FILE *in = sysgetfile("stdin", stdin);
FILE *out = sysgetfile("stdout", stdout);
char *p;
int err;
int n = 1000;
flushline();
if (v != NULL)
printobject(v, out, PRINT_RAW);
v = newsizedstringobject((char *)NULL, n);
if (v != NULL) {
if ((err = fgets_intr(getstringvalue(v), n+1, in)) != E_OK) {
err_input(err);
DECREF(v);
return NULL;
}
else {
n = strlen(getstringvalue(v));
if (n > 0 && getstringvalue(v)[n-1] == '\n')
n--;
resizestring(&v, n);
}
}
return v;
return filegetline(sysget("stdin"), -1);
}
static object *