bpo-36589: Fix the error handling in curses.update_lines_cols(). (GH-12766)
Return None instead of 1.
This commit is contained in:
parent
111772fc27
commit
2bc343417a
|
@ -0,0 +1,2 @@
|
|||
The :func:`curses.update_lines_cols` function now returns ``None`` instead
|
||||
of ``1`` on success.
|
|
@ -3837,15 +3837,18 @@ update_lines_cols(void)
|
|||
}
|
||||
|
||||
/*[clinic input]
|
||||
_curses.update_lines_cols -> int
|
||||
_curses.update_lines_cols
|
||||
|
||||
[clinic start generated code]*/
|
||||
|
||||
static int
|
||||
static PyObject *
|
||||
_curses_update_lines_cols_impl(PyObject *module)
|
||||
/*[clinic end generated code: output=0345e7f072ea711a input=3a87760f7d5197f0]*/
|
||||
/*[clinic end generated code: output=423f2b1e63ed0f75 input=5f065ab7a28a5d90]*/
|
||||
{
|
||||
return update_lines_cols();
|
||||
if (!update_lines_cols()) {
|
||||
return NULL;
|
||||
}
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -3929,8 +3932,10 @@ _curses_resizeterm_impl(PyObject *module, int nlines, int ncols)
|
|||
result = PyCursesCheckERR(resizeterm(nlines, ncols), "resizeterm");
|
||||
if (!result)
|
||||
return NULL;
|
||||
if (!update_lines_cols())
|
||||
if (!update_lines_cols()) {
|
||||
Py_DECREF(result);
|
||||
return NULL;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -3966,8 +3971,10 @@ _curses_resize_term_impl(PyObject *module, int nlines, int ncols)
|
|||
result = PyCursesCheckERR(resize_term(nlines, ncols), "resize_term");
|
||||
if (!result)
|
||||
return NULL;
|
||||
if (!update_lines_cols())
|
||||
if (!update_lines_cols()) {
|
||||
Py_DECREF(result);
|
||||
return NULL;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif /* HAVE_CURSES_RESIZE_TERM */
|
||||
|
@ -4038,12 +4045,18 @@ _curses_start_color_impl(PyObject *module)
|
|||
c = PyLong_FromLong((long) COLORS);
|
||||
if (c == NULL)
|
||||
return NULL;
|
||||
PyDict_SetItemString(ModDict, "COLORS", c);
|
||||
if (PyDict_SetItemString(ModDict, "COLORS", c) < 0) {
|
||||
Py_DECREF(c);
|
||||
return NULL;
|
||||
}
|
||||
Py_DECREF(c);
|
||||
cp = PyLong_FromLong((long) COLOR_PAIRS);
|
||||
if (cp == NULL)
|
||||
return NULL;
|
||||
PyDict_SetItemString(ModDict, "COLOR_PAIRS", cp);
|
||||
if (PyDict_SetItemString(ModDict, "COLOR_PAIRS", cp) < 0) {
|
||||
Py_DECREF(cp);
|
||||
return NULL;
|
||||
}
|
||||
Py_DECREF(cp);
|
||||
Py_RETURN_NONE;
|
||||
} else {
|
||||
|
|
|
@ -3921,23 +3921,13 @@ PyDoc_STRVAR(_curses_update_lines_cols__doc__,
|
|||
#define _CURSES_UPDATE_LINES_COLS_METHODDEF \
|
||||
{"update_lines_cols", (PyCFunction)_curses_update_lines_cols, METH_NOARGS, _curses_update_lines_cols__doc__},
|
||||
|
||||
static int
|
||||
static PyObject *
|
||||
_curses_update_lines_cols_impl(PyObject *module);
|
||||
|
||||
static PyObject *
|
||||
_curses_update_lines_cols(PyObject *module, PyObject *Py_UNUSED(ignored))
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
int _return_value;
|
||||
|
||||
_return_value = _curses_update_lines_cols_impl(module);
|
||||
if ((_return_value == -1) && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
return_value = PyLong_FromLong((long)_return_value);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
return _curses_update_lines_cols_impl(module);
|
||||
}
|
||||
|
||||
#endif /* (defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM)) */
|
||||
|
@ -4691,4 +4681,4 @@ _curses_use_default_colors(PyObject *module, PyObject *Py_UNUSED(ignored))
|
|||
#ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF
|
||||
#define _CURSES_USE_DEFAULT_COLORS_METHODDEF
|
||||
#endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */
|
||||
/*[clinic end generated code: output=985c0849e841acec input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=0ca4f95323c5d585 input=a9049054013a1b77]*/
|
||||
|
|
Loading…
Reference in New Issue