mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
Use fileobject's filegetline() to implement unlimited raw_input().
This commit is contained in:
parent
6590d4a250
commit
26203aa422
1 changed files with 1 additions and 19 deletions
|
@ -436,29 +436,11 @@ builtin_raw_input(self, v)
|
||||||
object *self;
|
object *self;
|
||||||
object *v;
|
object *v;
|
||||||
{
|
{
|
||||||
FILE *in = sysgetfile("stdin", stdin);
|
|
||||||
FILE *out = sysgetfile("stdout", stdout);
|
FILE *out = sysgetfile("stdout", stdout);
|
||||||
char *p;
|
|
||||||
int err;
|
|
||||||
int n = 1000;
|
|
||||||
flushline();
|
flushline();
|
||||||
if (v != NULL)
|
if (v != NULL)
|
||||||
printobject(v, out, PRINT_RAW);
|
printobject(v, out, PRINT_RAW);
|
||||||
v = newsizedstringobject((char *)NULL, n);
|
return filegetline(sysget("stdin"), -1);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static object *
|
static object *
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue