mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
- added optional bufsize argument to new popen methods.
for the moment, this argument must be left out or set to -1 (only the default bufsize is supported, that is)
This commit is contained in:
parent
6c86b99dc1
commit
766ccdcf18
1 changed files with 30 additions and 7 deletions
|
@ -2155,7 +2155,7 @@ posix_popen(PyObject *self, PyObject *args)
|
|||
|
||||
char *cmdstring;
|
||||
char *mode = "r";
|
||||
if (!PyArg_ParseTuple(args, "s|s:popen", &cmdstring, &mode))
|
||||
if (!PyArg_ParseTuple(args, "s|si:popen", &cmdstring, &mode, &bufsize))
|
||||
return NULL;
|
||||
|
||||
s = PyTuple_New(0);
|
||||
|
@ -2168,6 +2168,11 @@ posix_popen(PyObject *self, PyObject *args)
|
|||
} else
|
||||
tm = _O_WRONLY;
|
||||
|
||||
if (bufsize != -1) {
|
||||
PyErr_SetString(PyExc_ValueError, "bufsize must be -1");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (*(mode+1) == 't')
|
||||
f = _PyPopen(cmdstring, tm | _O_TEXT , POPEN_1);
|
||||
else if (*(mode+1) == 'b')
|
||||
|
@ -2192,7 +2197,8 @@ win32_popen2(PyObject *self, PyObject *args)
|
|||
|
||||
char *cmdstring;
|
||||
char *mode = "t";
|
||||
if (!PyArg_ParseTuple(args, "s|s:popen2", &cmdstring, &mode))
|
||||
int bufsize = -1;
|
||||
if (!PyArg_ParseTuple(args, "s|si:popen2", &cmdstring, &mode, &bufsize))
|
||||
return NULL;
|
||||
|
||||
if (*mode == 't')
|
||||
|
@ -2203,7 +2209,12 @@ win32_popen2(PyObject *self, PyObject *args)
|
|||
} else
|
||||
tm = _O_BINARY;
|
||||
|
||||
f = _PyPopen(cmdstring, tm , POPEN_2);
|
||||
if (bufsize != -1) {
|
||||
PyErr_SetString(PyExc_ValueError, "bufsize must be -1");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
f = _PyPopen(cmdstring, tm, POPEN_2);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
@ -2223,7 +2234,8 @@ win32_popen3(PyObject *self, PyObject *args)
|
|||
|
||||
char *cmdstring;
|
||||
char *mode = "t";
|
||||
if (!PyArg_ParseTuple(args, "s|s:Popen3", &cmdstring, &mode))
|
||||
int bufsize = -1;
|
||||
if (!PyArg_ParseTuple(args, "s|si:popen3", &cmdstring, &mode, &bufsize))
|
||||
return NULL;
|
||||
|
||||
if (*mode == 't')
|
||||
|
@ -2234,6 +2246,11 @@ win32_popen3(PyObject *self, PyObject *args)
|
|||
} else
|
||||
tm = _O_BINARY;
|
||||
|
||||
if (bufsize != -1) {
|
||||
PyErr_SetString(PyExc_ValueError, "bufsize must be -1");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
f = _PyPopen(cmdstring, tm, POPEN_3);
|
||||
|
||||
return f;
|
||||
|
@ -2254,7 +2271,8 @@ win32_popen4(PyObject *self, PyObject *args)
|
|||
|
||||
char *cmdstring;
|
||||
char *mode = "t";
|
||||
if (!PyArg_ParseTuple(args, "s|s:popen4", &cmdstring, &mode))
|
||||
int bufsize = -1;
|
||||
if (!PyArg_ParseTuple(args, "s|si:popen4", &cmdstring, &mode, &bufsize))
|
||||
return NULL;
|
||||
|
||||
if (*mode == 't')
|
||||
|
@ -2265,6 +2283,11 @@ win32_popen4(PyObject *self, PyObject *args)
|
|||
} else
|
||||
tm = _O_BINARY;
|
||||
|
||||
if (bufsize != -1) {
|
||||
PyErr_SetString(PyExc_ValueError, "bufsize must be -1");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
f = _PyPopen(cmdstring, tm , POPEN_4);
|
||||
|
||||
return f;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue