17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_addch__doc__,
67db96d56Sopenharmony_ci"addch([y, x,] ch, [attr=_curses.A_NORMAL])\n"
77db96d56Sopenharmony_ci"Paint the character.\n"
87db96d56Sopenharmony_ci"\n"
97db96d56Sopenharmony_ci"  y\n"
107db96d56Sopenharmony_ci"    Y-coordinate.\n"
117db96d56Sopenharmony_ci"  x\n"
127db96d56Sopenharmony_ci"    X-coordinate.\n"
137db96d56Sopenharmony_ci"  ch\n"
147db96d56Sopenharmony_ci"    Character to add.\n"
157db96d56Sopenharmony_ci"  attr\n"
167db96d56Sopenharmony_ci"    Attributes for the character.\n"
177db96d56Sopenharmony_ci"\n"
187db96d56Sopenharmony_ci"Paint character ch at (y, x) with attributes attr,\n"
197db96d56Sopenharmony_ci"overwriting any character previously painted at that location.\n"
207db96d56Sopenharmony_ci"By default, the character position and attributes are the\n"
217db96d56Sopenharmony_ci"current settings for the window object.");
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci#define _CURSES_WINDOW_ADDCH_METHODDEF    \
247db96d56Sopenharmony_ci    {"addch", (PyCFunction)_curses_window_addch, METH_VARARGS, _curses_window_addch__doc__},
257db96d56Sopenharmony_ci
267db96d56Sopenharmony_cistatic PyObject *
277db96d56Sopenharmony_ci_curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1,
287db96d56Sopenharmony_ci                          int y, int x, PyObject *ch, int group_right_1,
297db96d56Sopenharmony_ci                          long attr);
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_cistatic PyObject *
327db96d56Sopenharmony_ci_curses_window_addch(PyCursesWindowObject *self, PyObject *args)
337db96d56Sopenharmony_ci{
347db96d56Sopenharmony_ci    PyObject *return_value = NULL;
357db96d56Sopenharmony_ci    int group_left_1 = 0;
367db96d56Sopenharmony_ci    int y = 0;
377db96d56Sopenharmony_ci    int x = 0;
387db96d56Sopenharmony_ci    PyObject *ch;
397db96d56Sopenharmony_ci    int group_right_1 = 0;
407db96d56Sopenharmony_ci    long attr = A_NORMAL;
417db96d56Sopenharmony_ci
427db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
437db96d56Sopenharmony_ci        case 1:
447db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O:addch", &ch)) {
457db96d56Sopenharmony_ci                goto exit;
467db96d56Sopenharmony_ci            }
477db96d56Sopenharmony_ci            break;
487db96d56Sopenharmony_ci        case 2:
497db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Ol:addch", &ch, &attr)) {
507db96d56Sopenharmony_ci                goto exit;
517db96d56Sopenharmony_ci            }
527db96d56Sopenharmony_ci            group_right_1 = 1;
537db96d56Sopenharmony_ci            break;
547db96d56Sopenharmony_ci        case 3:
557db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiO:addch", &y, &x, &ch)) {
567db96d56Sopenharmony_ci                goto exit;
577db96d56Sopenharmony_ci            }
587db96d56Sopenharmony_ci            group_left_1 = 1;
597db96d56Sopenharmony_ci            break;
607db96d56Sopenharmony_ci        case 4:
617db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOl:addch", &y, &x, &ch, &attr)) {
627db96d56Sopenharmony_ci                goto exit;
637db96d56Sopenharmony_ci            }
647db96d56Sopenharmony_ci            group_right_1 = 1;
657db96d56Sopenharmony_ci            group_left_1 = 1;
667db96d56Sopenharmony_ci            break;
677db96d56Sopenharmony_ci        default:
687db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.addch requires 1 to 4 arguments");
697db96d56Sopenharmony_ci            goto exit;
707db96d56Sopenharmony_ci    }
717db96d56Sopenharmony_ci    return_value = _curses_window_addch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
727db96d56Sopenharmony_ci
737db96d56Sopenharmony_ciexit:
747db96d56Sopenharmony_ci    return return_value;
757db96d56Sopenharmony_ci}
767db96d56Sopenharmony_ci
777db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_addstr__doc__,
787db96d56Sopenharmony_ci"addstr([y, x,] str, [attr])\n"
797db96d56Sopenharmony_ci"Paint the string.\n"
807db96d56Sopenharmony_ci"\n"
817db96d56Sopenharmony_ci"  y\n"
827db96d56Sopenharmony_ci"    Y-coordinate.\n"
837db96d56Sopenharmony_ci"  x\n"
847db96d56Sopenharmony_ci"    X-coordinate.\n"
857db96d56Sopenharmony_ci"  str\n"
867db96d56Sopenharmony_ci"    String to add.\n"
877db96d56Sopenharmony_ci"  attr\n"
887db96d56Sopenharmony_ci"    Attributes for characters.\n"
897db96d56Sopenharmony_ci"\n"
907db96d56Sopenharmony_ci"Paint the string str at (y, x) with attributes attr,\n"
917db96d56Sopenharmony_ci"overwriting anything previously on the display.\n"
927db96d56Sopenharmony_ci"By default, the character position and attributes are the\n"
937db96d56Sopenharmony_ci"current settings for the window object.");
947db96d56Sopenharmony_ci
957db96d56Sopenharmony_ci#define _CURSES_WINDOW_ADDSTR_METHODDEF    \
967db96d56Sopenharmony_ci    {"addstr", (PyCFunction)_curses_window_addstr, METH_VARARGS, _curses_window_addstr__doc__},
977db96d56Sopenharmony_ci
987db96d56Sopenharmony_cistatic PyObject *
997db96d56Sopenharmony_ci_curses_window_addstr_impl(PyCursesWindowObject *self, int group_left_1,
1007db96d56Sopenharmony_ci                           int y, int x, PyObject *str, int group_right_1,
1017db96d56Sopenharmony_ci                           long attr);
1027db96d56Sopenharmony_ci
1037db96d56Sopenharmony_cistatic PyObject *
1047db96d56Sopenharmony_ci_curses_window_addstr(PyCursesWindowObject *self, PyObject *args)
1057db96d56Sopenharmony_ci{
1067db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1077db96d56Sopenharmony_ci    int group_left_1 = 0;
1087db96d56Sopenharmony_ci    int y = 0;
1097db96d56Sopenharmony_ci    int x = 0;
1107db96d56Sopenharmony_ci    PyObject *str;
1117db96d56Sopenharmony_ci    int group_right_1 = 0;
1127db96d56Sopenharmony_ci    long attr = 0;
1137db96d56Sopenharmony_ci
1147db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
1157db96d56Sopenharmony_ci        case 1:
1167db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O:addstr", &str)) {
1177db96d56Sopenharmony_ci                goto exit;
1187db96d56Sopenharmony_ci            }
1197db96d56Sopenharmony_ci            break;
1207db96d56Sopenharmony_ci        case 2:
1217db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Ol:addstr", &str, &attr)) {
1227db96d56Sopenharmony_ci                goto exit;
1237db96d56Sopenharmony_ci            }
1247db96d56Sopenharmony_ci            group_right_1 = 1;
1257db96d56Sopenharmony_ci            break;
1267db96d56Sopenharmony_ci        case 3:
1277db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiO:addstr", &y, &x, &str)) {
1287db96d56Sopenharmony_ci                goto exit;
1297db96d56Sopenharmony_ci            }
1307db96d56Sopenharmony_ci            group_left_1 = 1;
1317db96d56Sopenharmony_ci            break;
1327db96d56Sopenharmony_ci        case 4:
1337db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOl:addstr", &y, &x, &str, &attr)) {
1347db96d56Sopenharmony_ci                goto exit;
1357db96d56Sopenharmony_ci            }
1367db96d56Sopenharmony_ci            group_right_1 = 1;
1377db96d56Sopenharmony_ci            group_left_1 = 1;
1387db96d56Sopenharmony_ci            break;
1397db96d56Sopenharmony_ci        default:
1407db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.addstr requires 1 to 4 arguments");
1417db96d56Sopenharmony_ci            goto exit;
1427db96d56Sopenharmony_ci    }
1437db96d56Sopenharmony_ci    return_value = _curses_window_addstr_impl(self, group_left_1, y, x, str, group_right_1, attr);
1447db96d56Sopenharmony_ci
1457db96d56Sopenharmony_ciexit:
1467db96d56Sopenharmony_ci    return return_value;
1477db96d56Sopenharmony_ci}
1487db96d56Sopenharmony_ci
1497db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_addnstr__doc__,
1507db96d56Sopenharmony_ci"addnstr([y, x,] str, n, [attr])\n"
1517db96d56Sopenharmony_ci"Paint at most n characters of the string.\n"
1527db96d56Sopenharmony_ci"\n"
1537db96d56Sopenharmony_ci"  y\n"
1547db96d56Sopenharmony_ci"    Y-coordinate.\n"
1557db96d56Sopenharmony_ci"  x\n"
1567db96d56Sopenharmony_ci"    X-coordinate.\n"
1577db96d56Sopenharmony_ci"  str\n"
1587db96d56Sopenharmony_ci"    String to add.\n"
1597db96d56Sopenharmony_ci"  n\n"
1607db96d56Sopenharmony_ci"    Maximal number of characters.\n"
1617db96d56Sopenharmony_ci"  attr\n"
1627db96d56Sopenharmony_ci"    Attributes for characters.\n"
1637db96d56Sopenharmony_ci"\n"
1647db96d56Sopenharmony_ci"Paint at most n characters of the string str at (y, x) with\n"
1657db96d56Sopenharmony_ci"attributes attr, overwriting anything previously on the display.\n"
1667db96d56Sopenharmony_ci"By default, the character position and attributes are the\n"
1677db96d56Sopenharmony_ci"current settings for the window object.");
1687db96d56Sopenharmony_ci
1697db96d56Sopenharmony_ci#define _CURSES_WINDOW_ADDNSTR_METHODDEF    \
1707db96d56Sopenharmony_ci    {"addnstr", (PyCFunction)_curses_window_addnstr, METH_VARARGS, _curses_window_addnstr__doc__},
1717db96d56Sopenharmony_ci
1727db96d56Sopenharmony_cistatic PyObject *
1737db96d56Sopenharmony_ci_curses_window_addnstr_impl(PyCursesWindowObject *self, int group_left_1,
1747db96d56Sopenharmony_ci                            int y, int x, PyObject *str, int n,
1757db96d56Sopenharmony_ci                            int group_right_1, long attr);
1767db96d56Sopenharmony_ci
1777db96d56Sopenharmony_cistatic PyObject *
1787db96d56Sopenharmony_ci_curses_window_addnstr(PyCursesWindowObject *self, PyObject *args)
1797db96d56Sopenharmony_ci{
1807db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1817db96d56Sopenharmony_ci    int group_left_1 = 0;
1827db96d56Sopenharmony_ci    int y = 0;
1837db96d56Sopenharmony_ci    int x = 0;
1847db96d56Sopenharmony_ci    PyObject *str;
1857db96d56Sopenharmony_ci    int n;
1867db96d56Sopenharmony_ci    int group_right_1 = 0;
1877db96d56Sopenharmony_ci    long attr = 0;
1887db96d56Sopenharmony_ci
1897db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
1907db96d56Sopenharmony_ci        case 2:
1917db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oi:addnstr", &str, &n)) {
1927db96d56Sopenharmony_ci                goto exit;
1937db96d56Sopenharmony_ci            }
1947db96d56Sopenharmony_ci            break;
1957db96d56Sopenharmony_ci        case 3:
1967db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oil:addnstr", &str, &n, &attr)) {
1977db96d56Sopenharmony_ci                goto exit;
1987db96d56Sopenharmony_ci            }
1997db96d56Sopenharmony_ci            group_right_1 = 1;
2007db96d56Sopenharmony_ci            break;
2017db96d56Sopenharmony_ci        case 4:
2027db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOi:addnstr", &y, &x, &str, &n)) {
2037db96d56Sopenharmony_ci                goto exit;
2047db96d56Sopenharmony_ci            }
2057db96d56Sopenharmony_ci            group_left_1 = 1;
2067db96d56Sopenharmony_ci            break;
2077db96d56Sopenharmony_ci        case 5:
2087db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOil:addnstr", &y, &x, &str, &n, &attr)) {
2097db96d56Sopenharmony_ci                goto exit;
2107db96d56Sopenharmony_ci            }
2117db96d56Sopenharmony_ci            group_right_1 = 1;
2127db96d56Sopenharmony_ci            group_left_1 = 1;
2137db96d56Sopenharmony_ci            break;
2147db96d56Sopenharmony_ci        default:
2157db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.addnstr requires 2 to 5 arguments");
2167db96d56Sopenharmony_ci            goto exit;
2177db96d56Sopenharmony_ci    }
2187db96d56Sopenharmony_ci    return_value = _curses_window_addnstr_impl(self, group_left_1, y, x, str, n, group_right_1, attr);
2197db96d56Sopenharmony_ci
2207db96d56Sopenharmony_ciexit:
2217db96d56Sopenharmony_ci    return return_value;
2227db96d56Sopenharmony_ci}
2237db96d56Sopenharmony_ci
2247db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_bkgd__doc__,
2257db96d56Sopenharmony_ci"bkgd($self, ch, attr=_curses.A_NORMAL, /)\n"
2267db96d56Sopenharmony_ci"--\n"
2277db96d56Sopenharmony_ci"\n"
2287db96d56Sopenharmony_ci"Set the background property of the window.\n"
2297db96d56Sopenharmony_ci"\n"
2307db96d56Sopenharmony_ci"  ch\n"
2317db96d56Sopenharmony_ci"    Background character.\n"
2327db96d56Sopenharmony_ci"  attr\n"
2337db96d56Sopenharmony_ci"    Background attributes.");
2347db96d56Sopenharmony_ci
2357db96d56Sopenharmony_ci#define _CURSES_WINDOW_BKGD_METHODDEF    \
2367db96d56Sopenharmony_ci    {"bkgd", _PyCFunction_CAST(_curses_window_bkgd), METH_FASTCALL, _curses_window_bkgd__doc__},
2377db96d56Sopenharmony_ci
2387db96d56Sopenharmony_cistatic PyObject *
2397db96d56Sopenharmony_ci_curses_window_bkgd_impl(PyCursesWindowObject *self, PyObject *ch, long attr);
2407db96d56Sopenharmony_ci
2417db96d56Sopenharmony_cistatic PyObject *
2427db96d56Sopenharmony_ci_curses_window_bkgd(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
2437db96d56Sopenharmony_ci{
2447db96d56Sopenharmony_ci    PyObject *return_value = NULL;
2457db96d56Sopenharmony_ci    PyObject *ch;
2467db96d56Sopenharmony_ci    long attr = A_NORMAL;
2477db96d56Sopenharmony_ci
2487db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("bkgd", nargs, 1, 2)) {
2497db96d56Sopenharmony_ci        goto exit;
2507db96d56Sopenharmony_ci    }
2517db96d56Sopenharmony_ci    ch = args[0];
2527db96d56Sopenharmony_ci    if (nargs < 2) {
2537db96d56Sopenharmony_ci        goto skip_optional;
2547db96d56Sopenharmony_ci    }
2557db96d56Sopenharmony_ci    attr = PyLong_AsLong(args[1]);
2567db96d56Sopenharmony_ci    if (attr == -1 && PyErr_Occurred()) {
2577db96d56Sopenharmony_ci        goto exit;
2587db96d56Sopenharmony_ci    }
2597db96d56Sopenharmony_ciskip_optional:
2607db96d56Sopenharmony_ci    return_value = _curses_window_bkgd_impl(self, ch, attr);
2617db96d56Sopenharmony_ci
2627db96d56Sopenharmony_ciexit:
2637db96d56Sopenharmony_ci    return return_value;
2647db96d56Sopenharmony_ci}
2657db96d56Sopenharmony_ci
2667db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_attroff__doc__,
2677db96d56Sopenharmony_ci"attroff($self, attr, /)\n"
2687db96d56Sopenharmony_ci"--\n"
2697db96d56Sopenharmony_ci"\n"
2707db96d56Sopenharmony_ci"Remove attribute attr from the \"background\" set.");
2717db96d56Sopenharmony_ci
2727db96d56Sopenharmony_ci#define _CURSES_WINDOW_ATTROFF_METHODDEF    \
2737db96d56Sopenharmony_ci    {"attroff", (PyCFunction)_curses_window_attroff, METH_O, _curses_window_attroff__doc__},
2747db96d56Sopenharmony_ci
2757db96d56Sopenharmony_cistatic PyObject *
2767db96d56Sopenharmony_ci_curses_window_attroff_impl(PyCursesWindowObject *self, long attr);
2777db96d56Sopenharmony_ci
2787db96d56Sopenharmony_cistatic PyObject *
2797db96d56Sopenharmony_ci_curses_window_attroff(PyCursesWindowObject *self, PyObject *arg)
2807db96d56Sopenharmony_ci{
2817db96d56Sopenharmony_ci    PyObject *return_value = NULL;
2827db96d56Sopenharmony_ci    long attr;
2837db96d56Sopenharmony_ci
2847db96d56Sopenharmony_ci    attr = PyLong_AsLong(arg);
2857db96d56Sopenharmony_ci    if (attr == -1 && PyErr_Occurred()) {
2867db96d56Sopenharmony_ci        goto exit;
2877db96d56Sopenharmony_ci    }
2887db96d56Sopenharmony_ci    return_value = _curses_window_attroff_impl(self, attr);
2897db96d56Sopenharmony_ci
2907db96d56Sopenharmony_ciexit:
2917db96d56Sopenharmony_ci    return return_value;
2927db96d56Sopenharmony_ci}
2937db96d56Sopenharmony_ci
2947db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_attron__doc__,
2957db96d56Sopenharmony_ci"attron($self, attr, /)\n"
2967db96d56Sopenharmony_ci"--\n"
2977db96d56Sopenharmony_ci"\n"
2987db96d56Sopenharmony_ci"Add attribute attr from the \"background\" set.");
2997db96d56Sopenharmony_ci
3007db96d56Sopenharmony_ci#define _CURSES_WINDOW_ATTRON_METHODDEF    \
3017db96d56Sopenharmony_ci    {"attron", (PyCFunction)_curses_window_attron, METH_O, _curses_window_attron__doc__},
3027db96d56Sopenharmony_ci
3037db96d56Sopenharmony_cistatic PyObject *
3047db96d56Sopenharmony_ci_curses_window_attron_impl(PyCursesWindowObject *self, long attr);
3057db96d56Sopenharmony_ci
3067db96d56Sopenharmony_cistatic PyObject *
3077db96d56Sopenharmony_ci_curses_window_attron(PyCursesWindowObject *self, PyObject *arg)
3087db96d56Sopenharmony_ci{
3097db96d56Sopenharmony_ci    PyObject *return_value = NULL;
3107db96d56Sopenharmony_ci    long attr;
3117db96d56Sopenharmony_ci
3127db96d56Sopenharmony_ci    attr = PyLong_AsLong(arg);
3137db96d56Sopenharmony_ci    if (attr == -1 && PyErr_Occurred()) {
3147db96d56Sopenharmony_ci        goto exit;
3157db96d56Sopenharmony_ci    }
3167db96d56Sopenharmony_ci    return_value = _curses_window_attron_impl(self, attr);
3177db96d56Sopenharmony_ci
3187db96d56Sopenharmony_ciexit:
3197db96d56Sopenharmony_ci    return return_value;
3207db96d56Sopenharmony_ci}
3217db96d56Sopenharmony_ci
3227db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_attrset__doc__,
3237db96d56Sopenharmony_ci"attrset($self, attr, /)\n"
3247db96d56Sopenharmony_ci"--\n"
3257db96d56Sopenharmony_ci"\n"
3267db96d56Sopenharmony_ci"Set the \"background\" set of attributes.");
3277db96d56Sopenharmony_ci
3287db96d56Sopenharmony_ci#define _CURSES_WINDOW_ATTRSET_METHODDEF    \
3297db96d56Sopenharmony_ci    {"attrset", (PyCFunction)_curses_window_attrset, METH_O, _curses_window_attrset__doc__},
3307db96d56Sopenharmony_ci
3317db96d56Sopenharmony_cistatic PyObject *
3327db96d56Sopenharmony_ci_curses_window_attrset_impl(PyCursesWindowObject *self, long attr);
3337db96d56Sopenharmony_ci
3347db96d56Sopenharmony_cistatic PyObject *
3357db96d56Sopenharmony_ci_curses_window_attrset(PyCursesWindowObject *self, PyObject *arg)
3367db96d56Sopenharmony_ci{
3377db96d56Sopenharmony_ci    PyObject *return_value = NULL;
3387db96d56Sopenharmony_ci    long attr;
3397db96d56Sopenharmony_ci
3407db96d56Sopenharmony_ci    attr = PyLong_AsLong(arg);
3417db96d56Sopenharmony_ci    if (attr == -1 && PyErr_Occurred()) {
3427db96d56Sopenharmony_ci        goto exit;
3437db96d56Sopenharmony_ci    }
3447db96d56Sopenharmony_ci    return_value = _curses_window_attrset_impl(self, attr);
3457db96d56Sopenharmony_ci
3467db96d56Sopenharmony_ciexit:
3477db96d56Sopenharmony_ci    return return_value;
3487db96d56Sopenharmony_ci}
3497db96d56Sopenharmony_ci
3507db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_bkgdset__doc__,
3517db96d56Sopenharmony_ci"bkgdset($self, ch, attr=_curses.A_NORMAL, /)\n"
3527db96d56Sopenharmony_ci"--\n"
3537db96d56Sopenharmony_ci"\n"
3547db96d56Sopenharmony_ci"Set the window\'s background.\n"
3557db96d56Sopenharmony_ci"\n"
3567db96d56Sopenharmony_ci"  ch\n"
3577db96d56Sopenharmony_ci"    Background character.\n"
3587db96d56Sopenharmony_ci"  attr\n"
3597db96d56Sopenharmony_ci"    Background attributes.");
3607db96d56Sopenharmony_ci
3617db96d56Sopenharmony_ci#define _CURSES_WINDOW_BKGDSET_METHODDEF    \
3627db96d56Sopenharmony_ci    {"bkgdset", _PyCFunction_CAST(_curses_window_bkgdset), METH_FASTCALL, _curses_window_bkgdset__doc__},
3637db96d56Sopenharmony_ci
3647db96d56Sopenharmony_cistatic PyObject *
3657db96d56Sopenharmony_ci_curses_window_bkgdset_impl(PyCursesWindowObject *self, PyObject *ch,
3667db96d56Sopenharmony_ci                            long attr);
3677db96d56Sopenharmony_ci
3687db96d56Sopenharmony_cistatic PyObject *
3697db96d56Sopenharmony_ci_curses_window_bkgdset(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
3707db96d56Sopenharmony_ci{
3717db96d56Sopenharmony_ci    PyObject *return_value = NULL;
3727db96d56Sopenharmony_ci    PyObject *ch;
3737db96d56Sopenharmony_ci    long attr = A_NORMAL;
3747db96d56Sopenharmony_ci
3757db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("bkgdset", nargs, 1, 2)) {
3767db96d56Sopenharmony_ci        goto exit;
3777db96d56Sopenharmony_ci    }
3787db96d56Sopenharmony_ci    ch = args[0];
3797db96d56Sopenharmony_ci    if (nargs < 2) {
3807db96d56Sopenharmony_ci        goto skip_optional;
3817db96d56Sopenharmony_ci    }
3827db96d56Sopenharmony_ci    attr = PyLong_AsLong(args[1]);
3837db96d56Sopenharmony_ci    if (attr == -1 && PyErr_Occurred()) {
3847db96d56Sopenharmony_ci        goto exit;
3857db96d56Sopenharmony_ci    }
3867db96d56Sopenharmony_ciskip_optional:
3877db96d56Sopenharmony_ci    return_value = _curses_window_bkgdset_impl(self, ch, attr);
3887db96d56Sopenharmony_ci
3897db96d56Sopenharmony_ciexit:
3907db96d56Sopenharmony_ci    return return_value;
3917db96d56Sopenharmony_ci}
3927db96d56Sopenharmony_ci
3937db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_border__doc__,
3947db96d56Sopenharmony_ci"border($self, ls=_curses.ACS_VLINE, rs=_curses.ACS_VLINE,\n"
3957db96d56Sopenharmony_ci"       ts=_curses.ACS_HLINE, bs=_curses.ACS_HLINE,\n"
3967db96d56Sopenharmony_ci"       tl=_curses.ACS_ULCORNER, tr=_curses.ACS_URCORNER,\n"
3977db96d56Sopenharmony_ci"       bl=_curses.ACS_LLCORNER, br=_curses.ACS_LRCORNER, /)\n"
3987db96d56Sopenharmony_ci"--\n"
3997db96d56Sopenharmony_ci"\n"
4007db96d56Sopenharmony_ci"Draw a border around the edges of the window.\n"
4017db96d56Sopenharmony_ci"\n"
4027db96d56Sopenharmony_ci"  ls\n"
4037db96d56Sopenharmony_ci"    Left side.\n"
4047db96d56Sopenharmony_ci"  rs\n"
4057db96d56Sopenharmony_ci"    Right side.\n"
4067db96d56Sopenharmony_ci"  ts\n"
4077db96d56Sopenharmony_ci"    Top side.\n"
4087db96d56Sopenharmony_ci"  bs\n"
4097db96d56Sopenharmony_ci"    Bottom side.\n"
4107db96d56Sopenharmony_ci"  tl\n"
4117db96d56Sopenharmony_ci"    Upper-left corner.\n"
4127db96d56Sopenharmony_ci"  tr\n"
4137db96d56Sopenharmony_ci"    Upper-right corner.\n"
4147db96d56Sopenharmony_ci"  bl\n"
4157db96d56Sopenharmony_ci"    Bottom-left corner.\n"
4167db96d56Sopenharmony_ci"  br\n"
4177db96d56Sopenharmony_ci"    Bottom-right corner.\n"
4187db96d56Sopenharmony_ci"\n"
4197db96d56Sopenharmony_ci"Each parameter specifies the character to use for a specific part of the\n"
4207db96d56Sopenharmony_ci"border.  The characters can be specified as integers or as one-character\n"
4217db96d56Sopenharmony_ci"strings.  A 0 value for any parameter will cause the default character to be\n"
4227db96d56Sopenharmony_ci"used for that parameter.");
4237db96d56Sopenharmony_ci
4247db96d56Sopenharmony_ci#define _CURSES_WINDOW_BORDER_METHODDEF    \
4257db96d56Sopenharmony_ci    {"border", _PyCFunction_CAST(_curses_window_border), METH_FASTCALL, _curses_window_border__doc__},
4267db96d56Sopenharmony_ci
4277db96d56Sopenharmony_cistatic PyObject *
4287db96d56Sopenharmony_ci_curses_window_border_impl(PyCursesWindowObject *self, PyObject *ls,
4297db96d56Sopenharmony_ci                           PyObject *rs, PyObject *ts, PyObject *bs,
4307db96d56Sopenharmony_ci                           PyObject *tl, PyObject *tr, PyObject *bl,
4317db96d56Sopenharmony_ci                           PyObject *br);
4327db96d56Sopenharmony_ci
4337db96d56Sopenharmony_cistatic PyObject *
4347db96d56Sopenharmony_ci_curses_window_border(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
4357db96d56Sopenharmony_ci{
4367db96d56Sopenharmony_ci    PyObject *return_value = NULL;
4377db96d56Sopenharmony_ci    PyObject *ls = NULL;
4387db96d56Sopenharmony_ci    PyObject *rs = NULL;
4397db96d56Sopenharmony_ci    PyObject *ts = NULL;
4407db96d56Sopenharmony_ci    PyObject *bs = NULL;
4417db96d56Sopenharmony_ci    PyObject *tl = NULL;
4427db96d56Sopenharmony_ci    PyObject *tr = NULL;
4437db96d56Sopenharmony_ci    PyObject *bl = NULL;
4447db96d56Sopenharmony_ci    PyObject *br = NULL;
4457db96d56Sopenharmony_ci
4467db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("border", nargs, 0, 8)) {
4477db96d56Sopenharmony_ci        goto exit;
4487db96d56Sopenharmony_ci    }
4497db96d56Sopenharmony_ci    if (nargs < 1) {
4507db96d56Sopenharmony_ci        goto skip_optional;
4517db96d56Sopenharmony_ci    }
4527db96d56Sopenharmony_ci    ls = args[0];
4537db96d56Sopenharmony_ci    if (nargs < 2) {
4547db96d56Sopenharmony_ci        goto skip_optional;
4557db96d56Sopenharmony_ci    }
4567db96d56Sopenharmony_ci    rs = args[1];
4577db96d56Sopenharmony_ci    if (nargs < 3) {
4587db96d56Sopenharmony_ci        goto skip_optional;
4597db96d56Sopenharmony_ci    }
4607db96d56Sopenharmony_ci    ts = args[2];
4617db96d56Sopenharmony_ci    if (nargs < 4) {
4627db96d56Sopenharmony_ci        goto skip_optional;
4637db96d56Sopenharmony_ci    }
4647db96d56Sopenharmony_ci    bs = args[3];
4657db96d56Sopenharmony_ci    if (nargs < 5) {
4667db96d56Sopenharmony_ci        goto skip_optional;
4677db96d56Sopenharmony_ci    }
4687db96d56Sopenharmony_ci    tl = args[4];
4697db96d56Sopenharmony_ci    if (nargs < 6) {
4707db96d56Sopenharmony_ci        goto skip_optional;
4717db96d56Sopenharmony_ci    }
4727db96d56Sopenharmony_ci    tr = args[5];
4737db96d56Sopenharmony_ci    if (nargs < 7) {
4747db96d56Sopenharmony_ci        goto skip_optional;
4757db96d56Sopenharmony_ci    }
4767db96d56Sopenharmony_ci    bl = args[6];
4777db96d56Sopenharmony_ci    if (nargs < 8) {
4787db96d56Sopenharmony_ci        goto skip_optional;
4797db96d56Sopenharmony_ci    }
4807db96d56Sopenharmony_ci    br = args[7];
4817db96d56Sopenharmony_ciskip_optional:
4827db96d56Sopenharmony_ci    return_value = _curses_window_border_impl(self, ls, rs, ts, bs, tl, tr, bl, br);
4837db96d56Sopenharmony_ci
4847db96d56Sopenharmony_ciexit:
4857db96d56Sopenharmony_ci    return return_value;
4867db96d56Sopenharmony_ci}
4877db96d56Sopenharmony_ci
4887db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_box__doc__,
4897db96d56Sopenharmony_ci"box([verch=0, horch=0])\n"
4907db96d56Sopenharmony_ci"Draw a border around the edges of the window.\n"
4917db96d56Sopenharmony_ci"\n"
4927db96d56Sopenharmony_ci"  verch\n"
4937db96d56Sopenharmony_ci"    Left and right side.\n"
4947db96d56Sopenharmony_ci"  horch\n"
4957db96d56Sopenharmony_ci"    Top and bottom side.\n"
4967db96d56Sopenharmony_ci"\n"
4977db96d56Sopenharmony_ci"Similar to border(), but both ls and rs are verch and both ts and bs are\n"
4987db96d56Sopenharmony_ci"horch.  The default corner characters are always used by this function.");
4997db96d56Sopenharmony_ci
5007db96d56Sopenharmony_ci#define _CURSES_WINDOW_BOX_METHODDEF    \
5017db96d56Sopenharmony_ci    {"box", (PyCFunction)_curses_window_box, METH_VARARGS, _curses_window_box__doc__},
5027db96d56Sopenharmony_ci
5037db96d56Sopenharmony_cistatic PyObject *
5047db96d56Sopenharmony_ci_curses_window_box_impl(PyCursesWindowObject *self, int group_right_1,
5057db96d56Sopenharmony_ci                        PyObject *verch, PyObject *horch);
5067db96d56Sopenharmony_ci
5077db96d56Sopenharmony_cistatic PyObject *
5087db96d56Sopenharmony_ci_curses_window_box(PyCursesWindowObject *self, PyObject *args)
5097db96d56Sopenharmony_ci{
5107db96d56Sopenharmony_ci    PyObject *return_value = NULL;
5117db96d56Sopenharmony_ci    int group_right_1 = 0;
5127db96d56Sopenharmony_ci    PyObject *verch = _PyLong_GetZero();
5137db96d56Sopenharmony_ci    PyObject *horch = _PyLong_GetZero();
5147db96d56Sopenharmony_ci
5157db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
5167db96d56Sopenharmony_ci        case 0:
5177db96d56Sopenharmony_ci            break;
5187db96d56Sopenharmony_ci        case 2:
5197db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "OO:box", &verch, &horch)) {
5207db96d56Sopenharmony_ci                goto exit;
5217db96d56Sopenharmony_ci            }
5227db96d56Sopenharmony_ci            group_right_1 = 1;
5237db96d56Sopenharmony_ci            break;
5247db96d56Sopenharmony_ci        default:
5257db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.box requires 0 to 2 arguments");
5267db96d56Sopenharmony_ci            goto exit;
5277db96d56Sopenharmony_ci    }
5287db96d56Sopenharmony_ci    return_value = _curses_window_box_impl(self, group_right_1, verch, horch);
5297db96d56Sopenharmony_ci
5307db96d56Sopenharmony_ciexit:
5317db96d56Sopenharmony_ci    return return_value;
5327db96d56Sopenharmony_ci}
5337db96d56Sopenharmony_ci
5347db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_delch__doc__,
5357db96d56Sopenharmony_ci"delch([y, x])\n"
5367db96d56Sopenharmony_ci"Delete any character at (y, x).\n"
5377db96d56Sopenharmony_ci"\n"
5387db96d56Sopenharmony_ci"  y\n"
5397db96d56Sopenharmony_ci"    Y-coordinate.\n"
5407db96d56Sopenharmony_ci"  x\n"
5417db96d56Sopenharmony_ci"    X-coordinate.");
5427db96d56Sopenharmony_ci
5437db96d56Sopenharmony_ci#define _CURSES_WINDOW_DELCH_METHODDEF    \
5447db96d56Sopenharmony_ci    {"delch", (PyCFunction)_curses_window_delch, METH_VARARGS, _curses_window_delch__doc__},
5457db96d56Sopenharmony_ci
5467db96d56Sopenharmony_cistatic PyObject *
5477db96d56Sopenharmony_ci_curses_window_delch_impl(PyCursesWindowObject *self, int group_right_1,
5487db96d56Sopenharmony_ci                          int y, int x);
5497db96d56Sopenharmony_ci
5507db96d56Sopenharmony_cistatic PyObject *
5517db96d56Sopenharmony_ci_curses_window_delch(PyCursesWindowObject *self, PyObject *args)
5527db96d56Sopenharmony_ci{
5537db96d56Sopenharmony_ci    PyObject *return_value = NULL;
5547db96d56Sopenharmony_ci    int group_right_1 = 0;
5557db96d56Sopenharmony_ci    int y = 0;
5567db96d56Sopenharmony_ci    int x = 0;
5577db96d56Sopenharmony_ci
5587db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
5597db96d56Sopenharmony_ci        case 0:
5607db96d56Sopenharmony_ci            break;
5617db96d56Sopenharmony_ci        case 2:
5627db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:delch", &y, &x)) {
5637db96d56Sopenharmony_ci                goto exit;
5647db96d56Sopenharmony_ci            }
5657db96d56Sopenharmony_ci            group_right_1 = 1;
5667db96d56Sopenharmony_ci            break;
5677db96d56Sopenharmony_ci        default:
5687db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.delch requires 0 to 2 arguments");
5697db96d56Sopenharmony_ci            goto exit;
5707db96d56Sopenharmony_ci    }
5717db96d56Sopenharmony_ci    return_value = _curses_window_delch_impl(self, group_right_1, y, x);
5727db96d56Sopenharmony_ci
5737db96d56Sopenharmony_ciexit:
5747db96d56Sopenharmony_ci    return return_value;
5757db96d56Sopenharmony_ci}
5767db96d56Sopenharmony_ci
5777db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_derwin__doc__,
5787db96d56Sopenharmony_ci"derwin([nlines=0, ncols=0,] begin_y, begin_x)\n"
5797db96d56Sopenharmony_ci"Create a sub-window (window-relative coordinates).\n"
5807db96d56Sopenharmony_ci"\n"
5817db96d56Sopenharmony_ci"  nlines\n"
5827db96d56Sopenharmony_ci"    Height.\n"
5837db96d56Sopenharmony_ci"  ncols\n"
5847db96d56Sopenharmony_ci"    Width.\n"
5857db96d56Sopenharmony_ci"  begin_y\n"
5867db96d56Sopenharmony_ci"    Top side y-coordinate.\n"
5877db96d56Sopenharmony_ci"  begin_x\n"
5887db96d56Sopenharmony_ci"    Left side x-coordinate.\n"
5897db96d56Sopenharmony_ci"\n"
5907db96d56Sopenharmony_ci"derwin() is the same as calling subwin(), except that begin_y and begin_x\n"
5917db96d56Sopenharmony_ci"are relative to the origin of the window, rather than relative to the entire\n"
5927db96d56Sopenharmony_ci"screen.");
5937db96d56Sopenharmony_ci
5947db96d56Sopenharmony_ci#define _CURSES_WINDOW_DERWIN_METHODDEF    \
5957db96d56Sopenharmony_ci    {"derwin", (PyCFunction)_curses_window_derwin, METH_VARARGS, _curses_window_derwin__doc__},
5967db96d56Sopenharmony_ci
5977db96d56Sopenharmony_cistatic PyObject *
5987db96d56Sopenharmony_ci_curses_window_derwin_impl(PyCursesWindowObject *self, int group_left_1,
5997db96d56Sopenharmony_ci                           int nlines, int ncols, int begin_y, int begin_x);
6007db96d56Sopenharmony_ci
6017db96d56Sopenharmony_cistatic PyObject *
6027db96d56Sopenharmony_ci_curses_window_derwin(PyCursesWindowObject *self, PyObject *args)
6037db96d56Sopenharmony_ci{
6047db96d56Sopenharmony_ci    PyObject *return_value = NULL;
6057db96d56Sopenharmony_ci    int group_left_1 = 0;
6067db96d56Sopenharmony_ci    int nlines = 0;
6077db96d56Sopenharmony_ci    int ncols = 0;
6087db96d56Sopenharmony_ci    int begin_y;
6097db96d56Sopenharmony_ci    int begin_x;
6107db96d56Sopenharmony_ci
6117db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
6127db96d56Sopenharmony_ci        case 2:
6137db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:derwin", &begin_y, &begin_x)) {
6147db96d56Sopenharmony_ci                goto exit;
6157db96d56Sopenharmony_ci            }
6167db96d56Sopenharmony_ci            break;
6177db96d56Sopenharmony_ci        case 4:
6187db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiii:derwin", &nlines, &ncols, &begin_y, &begin_x)) {
6197db96d56Sopenharmony_ci                goto exit;
6207db96d56Sopenharmony_ci            }
6217db96d56Sopenharmony_ci            group_left_1 = 1;
6227db96d56Sopenharmony_ci            break;
6237db96d56Sopenharmony_ci        default:
6247db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.derwin requires 2 to 4 arguments");
6257db96d56Sopenharmony_ci            goto exit;
6267db96d56Sopenharmony_ci    }
6277db96d56Sopenharmony_ci    return_value = _curses_window_derwin_impl(self, group_left_1, nlines, ncols, begin_y, begin_x);
6287db96d56Sopenharmony_ci
6297db96d56Sopenharmony_ciexit:
6307db96d56Sopenharmony_ci    return return_value;
6317db96d56Sopenharmony_ci}
6327db96d56Sopenharmony_ci
6337db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_echochar__doc__,
6347db96d56Sopenharmony_ci"echochar($self, ch, attr=_curses.A_NORMAL, /)\n"
6357db96d56Sopenharmony_ci"--\n"
6367db96d56Sopenharmony_ci"\n"
6377db96d56Sopenharmony_ci"Add character ch with attribute attr, and refresh.\n"
6387db96d56Sopenharmony_ci"\n"
6397db96d56Sopenharmony_ci"  ch\n"
6407db96d56Sopenharmony_ci"    Character to add.\n"
6417db96d56Sopenharmony_ci"  attr\n"
6427db96d56Sopenharmony_ci"    Attributes for the character.");
6437db96d56Sopenharmony_ci
6447db96d56Sopenharmony_ci#define _CURSES_WINDOW_ECHOCHAR_METHODDEF    \
6457db96d56Sopenharmony_ci    {"echochar", _PyCFunction_CAST(_curses_window_echochar), METH_FASTCALL, _curses_window_echochar__doc__},
6467db96d56Sopenharmony_ci
6477db96d56Sopenharmony_cistatic PyObject *
6487db96d56Sopenharmony_ci_curses_window_echochar_impl(PyCursesWindowObject *self, PyObject *ch,
6497db96d56Sopenharmony_ci                             long attr);
6507db96d56Sopenharmony_ci
6517db96d56Sopenharmony_cistatic PyObject *
6527db96d56Sopenharmony_ci_curses_window_echochar(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
6537db96d56Sopenharmony_ci{
6547db96d56Sopenharmony_ci    PyObject *return_value = NULL;
6557db96d56Sopenharmony_ci    PyObject *ch;
6567db96d56Sopenharmony_ci    long attr = A_NORMAL;
6577db96d56Sopenharmony_ci
6587db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("echochar", nargs, 1, 2)) {
6597db96d56Sopenharmony_ci        goto exit;
6607db96d56Sopenharmony_ci    }
6617db96d56Sopenharmony_ci    ch = args[0];
6627db96d56Sopenharmony_ci    if (nargs < 2) {
6637db96d56Sopenharmony_ci        goto skip_optional;
6647db96d56Sopenharmony_ci    }
6657db96d56Sopenharmony_ci    attr = PyLong_AsLong(args[1]);
6667db96d56Sopenharmony_ci    if (attr == -1 && PyErr_Occurred()) {
6677db96d56Sopenharmony_ci        goto exit;
6687db96d56Sopenharmony_ci    }
6697db96d56Sopenharmony_ciskip_optional:
6707db96d56Sopenharmony_ci    return_value = _curses_window_echochar_impl(self, ch, attr);
6717db96d56Sopenharmony_ci
6727db96d56Sopenharmony_ciexit:
6737db96d56Sopenharmony_ci    return return_value;
6747db96d56Sopenharmony_ci}
6757db96d56Sopenharmony_ci
6767db96d56Sopenharmony_ci#if defined(NCURSES_MOUSE_VERSION)
6777db96d56Sopenharmony_ci
6787db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_enclose__doc__,
6797db96d56Sopenharmony_ci"enclose($self, y, x, /)\n"
6807db96d56Sopenharmony_ci"--\n"
6817db96d56Sopenharmony_ci"\n"
6827db96d56Sopenharmony_ci"Return True if the screen-relative coordinates are enclosed by the window.\n"
6837db96d56Sopenharmony_ci"\n"
6847db96d56Sopenharmony_ci"  y\n"
6857db96d56Sopenharmony_ci"    Y-coordinate.\n"
6867db96d56Sopenharmony_ci"  x\n"
6877db96d56Sopenharmony_ci"    X-coordinate.");
6887db96d56Sopenharmony_ci
6897db96d56Sopenharmony_ci#define _CURSES_WINDOW_ENCLOSE_METHODDEF    \
6907db96d56Sopenharmony_ci    {"enclose", _PyCFunction_CAST(_curses_window_enclose), METH_FASTCALL, _curses_window_enclose__doc__},
6917db96d56Sopenharmony_ci
6927db96d56Sopenharmony_cistatic PyObject *
6937db96d56Sopenharmony_ci_curses_window_enclose_impl(PyCursesWindowObject *self, int y, int x);
6947db96d56Sopenharmony_ci
6957db96d56Sopenharmony_cistatic PyObject *
6967db96d56Sopenharmony_ci_curses_window_enclose(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
6977db96d56Sopenharmony_ci{
6987db96d56Sopenharmony_ci    PyObject *return_value = NULL;
6997db96d56Sopenharmony_ci    int y;
7007db96d56Sopenharmony_ci    int x;
7017db96d56Sopenharmony_ci
7027db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("enclose", nargs, 2, 2)) {
7037db96d56Sopenharmony_ci        goto exit;
7047db96d56Sopenharmony_ci    }
7057db96d56Sopenharmony_ci    y = _PyLong_AsInt(args[0]);
7067db96d56Sopenharmony_ci    if (y == -1 && PyErr_Occurred()) {
7077db96d56Sopenharmony_ci        goto exit;
7087db96d56Sopenharmony_ci    }
7097db96d56Sopenharmony_ci    x = _PyLong_AsInt(args[1]);
7107db96d56Sopenharmony_ci    if (x == -1 && PyErr_Occurred()) {
7117db96d56Sopenharmony_ci        goto exit;
7127db96d56Sopenharmony_ci    }
7137db96d56Sopenharmony_ci    return_value = _curses_window_enclose_impl(self, y, x);
7147db96d56Sopenharmony_ci
7157db96d56Sopenharmony_ciexit:
7167db96d56Sopenharmony_ci    return return_value;
7177db96d56Sopenharmony_ci}
7187db96d56Sopenharmony_ci
7197db96d56Sopenharmony_ci#endif /* defined(NCURSES_MOUSE_VERSION) */
7207db96d56Sopenharmony_ci
7217db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_getbkgd__doc__,
7227db96d56Sopenharmony_ci"getbkgd($self, /)\n"
7237db96d56Sopenharmony_ci"--\n"
7247db96d56Sopenharmony_ci"\n"
7257db96d56Sopenharmony_ci"Return the window\'s current background character/attribute pair.");
7267db96d56Sopenharmony_ci
7277db96d56Sopenharmony_ci#define _CURSES_WINDOW_GETBKGD_METHODDEF    \
7287db96d56Sopenharmony_ci    {"getbkgd", (PyCFunction)_curses_window_getbkgd, METH_NOARGS, _curses_window_getbkgd__doc__},
7297db96d56Sopenharmony_ci
7307db96d56Sopenharmony_cistatic long
7317db96d56Sopenharmony_ci_curses_window_getbkgd_impl(PyCursesWindowObject *self);
7327db96d56Sopenharmony_ci
7337db96d56Sopenharmony_cistatic PyObject *
7347db96d56Sopenharmony_ci_curses_window_getbkgd(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))
7357db96d56Sopenharmony_ci{
7367db96d56Sopenharmony_ci    PyObject *return_value = NULL;
7377db96d56Sopenharmony_ci    long _return_value;
7387db96d56Sopenharmony_ci
7397db96d56Sopenharmony_ci    _return_value = _curses_window_getbkgd_impl(self);
7407db96d56Sopenharmony_ci    if ((_return_value == -1) && PyErr_Occurred()) {
7417db96d56Sopenharmony_ci        goto exit;
7427db96d56Sopenharmony_ci    }
7437db96d56Sopenharmony_ci    return_value = PyLong_FromLong(_return_value);
7447db96d56Sopenharmony_ci
7457db96d56Sopenharmony_ciexit:
7467db96d56Sopenharmony_ci    return return_value;
7477db96d56Sopenharmony_ci}
7487db96d56Sopenharmony_ci
7497db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_getch__doc__,
7507db96d56Sopenharmony_ci"getch([y, x])\n"
7517db96d56Sopenharmony_ci"Get a character code from terminal keyboard.\n"
7527db96d56Sopenharmony_ci"\n"
7537db96d56Sopenharmony_ci"  y\n"
7547db96d56Sopenharmony_ci"    Y-coordinate.\n"
7557db96d56Sopenharmony_ci"  x\n"
7567db96d56Sopenharmony_ci"    X-coordinate.\n"
7577db96d56Sopenharmony_ci"\n"
7587db96d56Sopenharmony_ci"The integer returned does not have to be in ASCII range: function keys,\n"
7597db96d56Sopenharmony_ci"keypad keys and so on return numbers higher than 256.  In no-delay mode, -1\n"
7607db96d56Sopenharmony_ci"is returned if there is no input, else getch() waits until a key is pressed.");
7617db96d56Sopenharmony_ci
7627db96d56Sopenharmony_ci#define _CURSES_WINDOW_GETCH_METHODDEF    \
7637db96d56Sopenharmony_ci    {"getch", (PyCFunction)_curses_window_getch, METH_VARARGS, _curses_window_getch__doc__},
7647db96d56Sopenharmony_ci
7657db96d56Sopenharmony_cistatic int
7667db96d56Sopenharmony_ci_curses_window_getch_impl(PyCursesWindowObject *self, int group_right_1,
7677db96d56Sopenharmony_ci                          int y, int x);
7687db96d56Sopenharmony_ci
7697db96d56Sopenharmony_cistatic PyObject *
7707db96d56Sopenharmony_ci_curses_window_getch(PyCursesWindowObject *self, PyObject *args)
7717db96d56Sopenharmony_ci{
7727db96d56Sopenharmony_ci    PyObject *return_value = NULL;
7737db96d56Sopenharmony_ci    int group_right_1 = 0;
7747db96d56Sopenharmony_ci    int y = 0;
7757db96d56Sopenharmony_ci    int x = 0;
7767db96d56Sopenharmony_ci    int _return_value;
7777db96d56Sopenharmony_ci
7787db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
7797db96d56Sopenharmony_ci        case 0:
7807db96d56Sopenharmony_ci            break;
7817db96d56Sopenharmony_ci        case 2:
7827db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:getch", &y, &x)) {
7837db96d56Sopenharmony_ci                goto exit;
7847db96d56Sopenharmony_ci            }
7857db96d56Sopenharmony_ci            group_right_1 = 1;
7867db96d56Sopenharmony_ci            break;
7877db96d56Sopenharmony_ci        default:
7887db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.getch requires 0 to 2 arguments");
7897db96d56Sopenharmony_ci            goto exit;
7907db96d56Sopenharmony_ci    }
7917db96d56Sopenharmony_ci    _return_value = _curses_window_getch_impl(self, group_right_1, y, x);
7927db96d56Sopenharmony_ci    if ((_return_value == -1) && PyErr_Occurred()) {
7937db96d56Sopenharmony_ci        goto exit;
7947db96d56Sopenharmony_ci    }
7957db96d56Sopenharmony_ci    return_value = PyLong_FromLong((long)_return_value);
7967db96d56Sopenharmony_ci
7977db96d56Sopenharmony_ciexit:
7987db96d56Sopenharmony_ci    return return_value;
7997db96d56Sopenharmony_ci}
8007db96d56Sopenharmony_ci
8017db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_getkey__doc__,
8027db96d56Sopenharmony_ci"getkey([y, x])\n"
8037db96d56Sopenharmony_ci"Get a character (string) from terminal keyboard.\n"
8047db96d56Sopenharmony_ci"\n"
8057db96d56Sopenharmony_ci"  y\n"
8067db96d56Sopenharmony_ci"    Y-coordinate.\n"
8077db96d56Sopenharmony_ci"  x\n"
8087db96d56Sopenharmony_ci"    X-coordinate.\n"
8097db96d56Sopenharmony_ci"\n"
8107db96d56Sopenharmony_ci"Returning a string instead of an integer, as getch() does.  Function keys,\n"
8117db96d56Sopenharmony_ci"keypad keys and other special keys return a multibyte string containing the\n"
8127db96d56Sopenharmony_ci"key name.  In no-delay mode, an exception is raised if there is no input.");
8137db96d56Sopenharmony_ci
8147db96d56Sopenharmony_ci#define _CURSES_WINDOW_GETKEY_METHODDEF    \
8157db96d56Sopenharmony_ci    {"getkey", (PyCFunction)_curses_window_getkey, METH_VARARGS, _curses_window_getkey__doc__},
8167db96d56Sopenharmony_ci
8177db96d56Sopenharmony_cistatic PyObject *
8187db96d56Sopenharmony_ci_curses_window_getkey_impl(PyCursesWindowObject *self, int group_right_1,
8197db96d56Sopenharmony_ci                           int y, int x);
8207db96d56Sopenharmony_ci
8217db96d56Sopenharmony_cistatic PyObject *
8227db96d56Sopenharmony_ci_curses_window_getkey(PyCursesWindowObject *self, PyObject *args)
8237db96d56Sopenharmony_ci{
8247db96d56Sopenharmony_ci    PyObject *return_value = NULL;
8257db96d56Sopenharmony_ci    int group_right_1 = 0;
8267db96d56Sopenharmony_ci    int y = 0;
8277db96d56Sopenharmony_ci    int x = 0;
8287db96d56Sopenharmony_ci
8297db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
8307db96d56Sopenharmony_ci        case 0:
8317db96d56Sopenharmony_ci            break;
8327db96d56Sopenharmony_ci        case 2:
8337db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:getkey", &y, &x)) {
8347db96d56Sopenharmony_ci                goto exit;
8357db96d56Sopenharmony_ci            }
8367db96d56Sopenharmony_ci            group_right_1 = 1;
8377db96d56Sopenharmony_ci            break;
8387db96d56Sopenharmony_ci        default:
8397db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.getkey requires 0 to 2 arguments");
8407db96d56Sopenharmony_ci            goto exit;
8417db96d56Sopenharmony_ci    }
8427db96d56Sopenharmony_ci    return_value = _curses_window_getkey_impl(self, group_right_1, y, x);
8437db96d56Sopenharmony_ci
8447db96d56Sopenharmony_ciexit:
8457db96d56Sopenharmony_ci    return return_value;
8467db96d56Sopenharmony_ci}
8477db96d56Sopenharmony_ci
8487db96d56Sopenharmony_ci#if defined(HAVE_NCURSESW)
8497db96d56Sopenharmony_ci
8507db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_get_wch__doc__,
8517db96d56Sopenharmony_ci"get_wch([y, x])\n"
8527db96d56Sopenharmony_ci"Get a wide character from terminal keyboard.\n"
8537db96d56Sopenharmony_ci"\n"
8547db96d56Sopenharmony_ci"  y\n"
8557db96d56Sopenharmony_ci"    Y-coordinate.\n"
8567db96d56Sopenharmony_ci"  x\n"
8577db96d56Sopenharmony_ci"    X-coordinate.\n"
8587db96d56Sopenharmony_ci"\n"
8597db96d56Sopenharmony_ci"Return a character for most keys, or an integer for function keys,\n"
8607db96d56Sopenharmony_ci"keypad keys, and other special keys.");
8617db96d56Sopenharmony_ci
8627db96d56Sopenharmony_ci#define _CURSES_WINDOW_GET_WCH_METHODDEF    \
8637db96d56Sopenharmony_ci    {"get_wch", (PyCFunction)_curses_window_get_wch, METH_VARARGS, _curses_window_get_wch__doc__},
8647db96d56Sopenharmony_ci
8657db96d56Sopenharmony_cistatic PyObject *
8667db96d56Sopenharmony_ci_curses_window_get_wch_impl(PyCursesWindowObject *self, int group_right_1,
8677db96d56Sopenharmony_ci                            int y, int x);
8687db96d56Sopenharmony_ci
8697db96d56Sopenharmony_cistatic PyObject *
8707db96d56Sopenharmony_ci_curses_window_get_wch(PyCursesWindowObject *self, PyObject *args)
8717db96d56Sopenharmony_ci{
8727db96d56Sopenharmony_ci    PyObject *return_value = NULL;
8737db96d56Sopenharmony_ci    int group_right_1 = 0;
8747db96d56Sopenharmony_ci    int y = 0;
8757db96d56Sopenharmony_ci    int x = 0;
8767db96d56Sopenharmony_ci
8777db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
8787db96d56Sopenharmony_ci        case 0:
8797db96d56Sopenharmony_ci            break;
8807db96d56Sopenharmony_ci        case 2:
8817db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:get_wch", &y, &x)) {
8827db96d56Sopenharmony_ci                goto exit;
8837db96d56Sopenharmony_ci            }
8847db96d56Sopenharmony_ci            group_right_1 = 1;
8857db96d56Sopenharmony_ci            break;
8867db96d56Sopenharmony_ci        default:
8877db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.get_wch requires 0 to 2 arguments");
8887db96d56Sopenharmony_ci            goto exit;
8897db96d56Sopenharmony_ci    }
8907db96d56Sopenharmony_ci    return_value = _curses_window_get_wch_impl(self, group_right_1, y, x);
8917db96d56Sopenharmony_ci
8927db96d56Sopenharmony_ciexit:
8937db96d56Sopenharmony_ci    return return_value;
8947db96d56Sopenharmony_ci}
8957db96d56Sopenharmony_ci
8967db96d56Sopenharmony_ci#endif /* defined(HAVE_NCURSESW) */
8977db96d56Sopenharmony_ci
8987db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_hline__doc__,
8997db96d56Sopenharmony_ci"hline([y, x,] ch, n, [attr=_curses.A_NORMAL])\n"
9007db96d56Sopenharmony_ci"Display a horizontal line.\n"
9017db96d56Sopenharmony_ci"\n"
9027db96d56Sopenharmony_ci"  y\n"
9037db96d56Sopenharmony_ci"    Starting Y-coordinate.\n"
9047db96d56Sopenharmony_ci"  x\n"
9057db96d56Sopenharmony_ci"    Starting X-coordinate.\n"
9067db96d56Sopenharmony_ci"  ch\n"
9077db96d56Sopenharmony_ci"    Character to draw.\n"
9087db96d56Sopenharmony_ci"  n\n"
9097db96d56Sopenharmony_ci"    Line length.\n"
9107db96d56Sopenharmony_ci"  attr\n"
9117db96d56Sopenharmony_ci"    Attributes for the characters.");
9127db96d56Sopenharmony_ci
9137db96d56Sopenharmony_ci#define _CURSES_WINDOW_HLINE_METHODDEF    \
9147db96d56Sopenharmony_ci    {"hline", (PyCFunction)_curses_window_hline, METH_VARARGS, _curses_window_hline__doc__},
9157db96d56Sopenharmony_ci
9167db96d56Sopenharmony_cistatic PyObject *
9177db96d56Sopenharmony_ci_curses_window_hline_impl(PyCursesWindowObject *self, int group_left_1,
9187db96d56Sopenharmony_ci                          int y, int x, PyObject *ch, int n,
9197db96d56Sopenharmony_ci                          int group_right_1, long attr);
9207db96d56Sopenharmony_ci
9217db96d56Sopenharmony_cistatic PyObject *
9227db96d56Sopenharmony_ci_curses_window_hline(PyCursesWindowObject *self, PyObject *args)
9237db96d56Sopenharmony_ci{
9247db96d56Sopenharmony_ci    PyObject *return_value = NULL;
9257db96d56Sopenharmony_ci    int group_left_1 = 0;
9267db96d56Sopenharmony_ci    int y = 0;
9277db96d56Sopenharmony_ci    int x = 0;
9287db96d56Sopenharmony_ci    PyObject *ch;
9297db96d56Sopenharmony_ci    int n;
9307db96d56Sopenharmony_ci    int group_right_1 = 0;
9317db96d56Sopenharmony_ci    long attr = A_NORMAL;
9327db96d56Sopenharmony_ci
9337db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
9347db96d56Sopenharmony_ci        case 2:
9357db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oi:hline", &ch, &n)) {
9367db96d56Sopenharmony_ci                goto exit;
9377db96d56Sopenharmony_ci            }
9387db96d56Sopenharmony_ci            break;
9397db96d56Sopenharmony_ci        case 3:
9407db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oil:hline", &ch, &n, &attr)) {
9417db96d56Sopenharmony_ci                goto exit;
9427db96d56Sopenharmony_ci            }
9437db96d56Sopenharmony_ci            group_right_1 = 1;
9447db96d56Sopenharmony_ci            break;
9457db96d56Sopenharmony_ci        case 4:
9467db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOi:hline", &y, &x, &ch, &n)) {
9477db96d56Sopenharmony_ci                goto exit;
9487db96d56Sopenharmony_ci            }
9497db96d56Sopenharmony_ci            group_left_1 = 1;
9507db96d56Sopenharmony_ci            break;
9517db96d56Sopenharmony_ci        case 5:
9527db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOil:hline", &y, &x, &ch, &n, &attr)) {
9537db96d56Sopenharmony_ci                goto exit;
9547db96d56Sopenharmony_ci            }
9557db96d56Sopenharmony_ci            group_right_1 = 1;
9567db96d56Sopenharmony_ci            group_left_1 = 1;
9577db96d56Sopenharmony_ci            break;
9587db96d56Sopenharmony_ci        default:
9597db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.hline requires 2 to 5 arguments");
9607db96d56Sopenharmony_ci            goto exit;
9617db96d56Sopenharmony_ci    }
9627db96d56Sopenharmony_ci    return_value = _curses_window_hline_impl(self, group_left_1, y, x, ch, n, group_right_1, attr);
9637db96d56Sopenharmony_ci
9647db96d56Sopenharmony_ciexit:
9657db96d56Sopenharmony_ci    return return_value;
9667db96d56Sopenharmony_ci}
9677db96d56Sopenharmony_ci
9687db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_insch__doc__,
9697db96d56Sopenharmony_ci"insch([y, x,] ch, [attr=_curses.A_NORMAL])\n"
9707db96d56Sopenharmony_ci"Insert a character before the current or specified position.\n"
9717db96d56Sopenharmony_ci"\n"
9727db96d56Sopenharmony_ci"  y\n"
9737db96d56Sopenharmony_ci"    Y-coordinate.\n"
9747db96d56Sopenharmony_ci"  x\n"
9757db96d56Sopenharmony_ci"    X-coordinate.\n"
9767db96d56Sopenharmony_ci"  ch\n"
9777db96d56Sopenharmony_ci"    Character to insert.\n"
9787db96d56Sopenharmony_ci"  attr\n"
9797db96d56Sopenharmony_ci"    Attributes for the character.\n"
9807db96d56Sopenharmony_ci"\n"
9817db96d56Sopenharmony_ci"All characters to the right of the cursor are shifted one position right, with\n"
9827db96d56Sopenharmony_ci"the rightmost characters on the line being lost.");
9837db96d56Sopenharmony_ci
9847db96d56Sopenharmony_ci#define _CURSES_WINDOW_INSCH_METHODDEF    \
9857db96d56Sopenharmony_ci    {"insch", (PyCFunction)_curses_window_insch, METH_VARARGS, _curses_window_insch__doc__},
9867db96d56Sopenharmony_ci
9877db96d56Sopenharmony_cistatic PyObject *
9887db96d56Sopenharmony_ci_curses_window_insch_impl(PyCursesWindowObject *self, int group_left_1,
9897db96d56Sopenharmony_ci                          int y, int x, PyObject *ch, int group_right_1,
9907db96d56Sopenharmony_ci                          long attr);
9917db96d56Sopenharmony_ci
9927db96d56Sopenharmony_cistatic PyObject *
9937db96d56Sopenharmony_ci_curses_window_insch(PyCursesWindowObject *self, PyObject *args)
9947db96d56Sopenharmony_ci{
9957db96d56Sopenharmony_ci    PyObject *return_value = NULL;
9967db96d56Sopenharmony_ci    int group_left_1 = 0;
9977db96d56Sopenharmony_ci    int y = 0;
9987db96d56Sopenharmony_ci    int x = 0;
9997db96d56Sopenharmony_ci    PyObject *ch;
10007db96d56Sopenharmony_ci    int group_right_1 = 0;
10017db96d56Sopenharmony_ci    long attr = A_NORMAL;
10027db96d56Sopenharmony_ci
10037db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
10047db96d56Sopenharmony_ci        case 1:
10057db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O:insch", &ch)) {
10067db96d56Sopenharmony_ci                goto exit;
10077db96d56Sopenharmony_ci            }
10087db96d56Sopenharmony_ci            break;
10097db96d56Sopenharmony_ci        case 2:
10107db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Ol:insch", &ch, &attr)) {
10117db96d56Sopenharmony_ci                goto exit;
10127db96d56Sopenharmony_ci            }
10137db96d56Sopenharmony_ci            group_right_1 = 1;
10147db96d56Sopenharmony_ci            break;
10157db96d56Sopenharmony_ci        case 3:
10167db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiO:insch", &y, &x, &ch)) {
10177db96d56Sopenharmony_ci                goto exit;
10187db96d56Sopenharmony_ci            }
10197db96d56Sopenharmony_ci            group_left_1 = 1;
10207db96d56Sopenharmony_ci            break;
10217db96d56Sopenharmony_ci        case 4:
10227db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOl:insch", &y, &x, &ch, &attr)) {
10237db96d56Sopenharmony_ci                goto exit;
10247db96d56Sopenharmony_ci            }
10257db96d56Sopenharmony_ci            group_right_1 = 1;
10267db96d56Sopenharmony_ci            group_left_1 = 1;
10277db96d56Sopenharmony_ci            break;
10287db96d56Sopenharmony_ci        default:
10297db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.insch requires 1 to 4 arguments");
10307db96d56Sopenharmony_ci            goto exit;
10317db96d56Sopenharmony_ci    }
10327db96d56Sopenharmony_ci    return_value = _curses_window_insch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
10337db96d56Sopenharmony_ci
10347db96d56Sopenharmony_ciexit:
10357db96d56Sopenharmony_ci    return return_value;
10367db96d56Sopenharmony_ci}
10377db96d56Sopenharmony_ci
10387db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_inch__doc__,
10397db96d56Sopenharmony_ci"inch([y, x])\n"
10407db96d56Sopenharmony_ci"Return the character at the given position in the window.\n"
10417db96d56Sopenharmony_ci"\n"
10427db96d56Sopenharmony_ci"  y\n"
10437db96d56Sopenharmony_ci"    Y-coordinate.\n"
10447db96d56Sopenharmony_ci"  x\n"
10457db96d56Sopenharmony_ci"    X-coordinate.\n"
10467db96d56Sopenharmony_ci"\n"
10477db96d56Sopenharmony_ci"The bottom 8 bits are the character proper, and upper bits are the attributes.");
10487db96d56Sopenharmony_ci
10497db96d56Sopenharmony_ci#define _CURSES_WINDOW_INCH_METHODDEF    \
10507db96d56Sopenharmony_ci    {"inch", (PyCFunction)_curses_window_inch, METH_VARARGS, _curses_window_inch__doc__},
10517db96d56Sopenharmony_ci
10527db96d56Sopenharmony_cistatic unsigned long
10537db96d56Sopenharmony_ci_curses_window_inch_impl(PyCursesWindowObject *self, int group_right_1,
10547db96d56Sopenharmony_ci                         int y, int x);
10557db96d56Sopenharmony_ci
10567db96d56Sopenharmony_cistatic PyObject *
10577db96d56Sopenharmony_ci_curses_window_inch(PyCursesWindowObject *self, PyObject *args)
10587db96d56Sopenharmony_ci{
10597db96d56Sopenharmony_ci    PyObject *return_value = NULL;
10607db96d56Sopenharmony_ci    int group_right_1 = 0;
10617db96d56Sopenharmony_ci    int y = 0;
10627db96d56Sopenharmony_ci    int x = 0;
10637db96d56Sopenharmony_ci    unsigned long _return_value;
10647db96d56Sopenharmony_ci
10657db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
10667db96d56Sopenharmony_ci        case 0:
10677db96d56Sopenharmony_ci            break;
10687db96d56Sopenharmony_ci        case 2:
10697db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:inch", &y, &x)) {
10707db96d56Sopenharmony_ci                goto exit;
10717db96d56Sopenharmony_ci            }
10727db96d56Sopenharmony_ci            group_right_1 = 1;
10737db96d56Sopenharmony_ci            break;
10747db96d56Sopenharmony_ci        default:
10757db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.inch requires 0 to 2 arguments");
10767db96d56Sopenharmony_ci            goto exit;
10777db96d56Sopenharmony_ci    }
10787db96d56Sopenharmony_ci    _return_value = _curses_window_inch_impl(self, group_right_1, y, x);
10797db96d56Sopenharmony_ci    if ((_return_value == (unsigned long)-1) && PyErr_Occurred()) {
10807db96d56Sopenharmony_ci        goto exit;
10817db96d56Sopenharmony_ci    }
10827db96d56Sopenharmony_ci    return_value = PyLong_FromUnsignedLong(_return_value);
10837db96d56Sopenharmony_ci
10847db96d56Sopenharmony_ciexit:
10857db96d56Sopenharmony_ci    return return_value;
10867db96d56Sopenharmony_ci}
10877db96d56Sopenharmony_ci
10887db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_insstr__doc__,
10897db96d56Sopenharmony_ci"insstr([y, x,] str, [attr])\n"
10907db96d56Sopenharmony_ci"Insert the string before the current or specified position.\n"
10917db96d56Sopenharmony_ci"\n"
10927db96d56Sopenharmony_ci"  y\n"
10937db96d56Sopenharmony_ci"    Y-coordinate.\n"
10947db96d56Sopenharmony_ci"  x\n"
10957db96d56Sopenharmony_ci"    X-coordinate.\n"
10967db96d56Sopenharmony_ci"  str\n"
10977db96d56Sopenharmony_ci"    String to insert.\n"
10987db96d56Sopenharmony_ci"  attr\n"
10997db96d56Sopenharmony_ci"    Attributes for characters.\n"
11007db96d56Sopenharmony_ci"\n"
11017db96d56Sopenharmony_ci"Insert a character string (as many characters as will fit on the line)\n"
11027db96d56Sopenharmony_ci"before the character under the cursor.  All characters to the right of\n"
11037db96d56Sopenharmony_ci"the cursor are shifted right, with the rightmost characters on the line\n"
11047db96d56Sopenharmony_ci"being lost.  The cursor position does not change (after moving to y, x,\n"
11057db96d56Sopenharmony_ci"if specified).");
11067db96d56Sopenharmony_ci
11077db96d56Sopenharmony_ci#define _CURSES_WINDOW_INSSTR_METHODDEF    \
11087db96d56Sopenharmony_ci    {"insstr", (PyCFunction)_curses_window_insstr, METH_VARARGS, _curses_window_insstr__doc__},
11097db96d56Sopenharmony_ci
11107db96d56Sopenharmony_cistatic PyObject *
11117db96d56Sopenharmony_ci_curses_window_insstr_impl(PyCursesWindowObject *self, int group_left_1,
11127db96d56Sopenharmony_ci                           int y, int x, PyObject *str, int group_right_1,
11137db96d56Sopenharmony_ci                           long attr);
11147db96d56Sopenharmony_ci
11157db96d56Sopenharmony_cistatic PyObject *
11167db96d56Sopenharmony_ci_curses_window_insstr(PyCursesWindowObject *self, PyObject *args)
11177db96d56Sopenharmony_ci{
11187db96d56Sopenharmony_ci    PyObject *return_value = NULL;
11197db96d56Sopenharmony_ci    int group_left_1 = 0;
11207db96d56Sopenharmony_ci    int y = 0;
11217db96d56Sopenharmony_ci    int x = 0;
11227db96d56Sopenharmony_ci    PyObject *str;
11237db96d56Sopenharmony_ci    int group_right_1 = 0;
11247db96d56Sopenharmony_ci    long attr = 0;
11257db96d56Sopenharmony_ci
11267db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
11277db96d56Sopenharmony_ci        case 1:
11287db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O:insstr", &str)) {
11297db96d56Sopenharmony_ci                goto exit;
11307db96d56Sopenharmony_ci            }
11317db96d56Sopenharmony_ci            break;
11327db96d56Sopenharmony_ci        case 2:
11337db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Ol:insstr", &str, &attr)) {
11347db96d56Sopenharmony_ci                goto exit;
11357db96d56Sopenharmony_ci            }
11367db96d56Sopenharmony_ci            group_right_1 = 1;
11377db96d56Sopenharmony_ci            break;
11387db96d56Sopenharmony_ci        case 3:
11397db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiO:insstr", &y, &x, &str)) {
11407db96d56Sopenharmony_ci                goto exit;
11417db96d56Sopenharmony_ci            }
11427db96d56Sopenharmony_ci            group_left_1 = 1;
11437db96d56Sopenharmony_ci            break;
11447db96d56Sopenharmony_ci        case 4:
11457db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOl:insstr", &y, &x, &str, &attr)) {
11467db96d56Sopenharmony_ci                goto exit;
11477db96d56Sopenharmony_ci            }
11487db96d56Sopenharmony_ci            group_right_1 = 1;
11497db96d56Sopenharmony_ci            group_left_1 = 1;
11507db96d56Sopenharmony_ci            break;
11517db96d56Sopenharmony_ci        default:
11527db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.insstr requires 1 to 4 arguments");
11537db96d56Sopenharmony_ci            goto exit;
11547db96d56Sopenharmony_ci    }
11557db96d56Sopenharmony_ci    return_value = _curses_window_insstr_impl(self, group_left_1, y, x, str, group_right_1, attr);
11567db96d56Sopenharmony_ci
11577db96d56Sopenharmony_ciexit:
11587db96d56Sopenharmony_ci    return return_value;
11597db96d56Sopenharmony_ci}
11607db96d56Sopenharmony_ci
11617db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_insnstr__doc__,
11627db96d56Sopenharmony_ci"insnstr([y, x,] str, n, [attr])\n"
11637db96d56Sopenharmony_ci"Insert at most n characters of the string.\n"
11647db96d56Sopenharmony_ci"\n"
11657db96d56Sopenharmony_ci"  y\n"
11667db96d56Sopenharmony_ci"    Y-coordinate.\n"
11677db96d56Sopenharmony_ci"  x\n"
11687db96d56Sopenharmony_ci"    X-coordinate.\n"
11697db96d56Sopenharmony_ci"  str\n"
11707db96d56Sopenharmony_ci"    String to insert.\n"
11717db96d56Sopenharmony_ci"  n\n"
11727db96d56Sopenharmony_ci"    Maximal number of characters.\n"
11737db96d56Sopenharmony_ci"  attr\n"
11747db96d56Sopenharmony_ci"    Attributes for characters.\n"
11757db96d56Sopenharmony_ci"\n"
11767db96d56Sopenharmony_ci"Insert a character string (as many characters as will fit on the line)\n"
11777db96d56Sopenharmony_ci"before the character under the cursor, up to n characters.  If n is zero\n"
11787db96d56Sopenharmony_ci"or negative, the entire string is inserted.  All characters to the right\n"
11797db96d56Sopenharmony_ci"of the cursor are shifted right, with the rightmost characters on the line\n"
11807db96d56Sopenharmony_ci"being lost.  The cursor position does not change (after moving to y, x, if\n"
11817db96d56Sopenharmony_ci"specified).");
11827db96d56Sopenharmony_ci
11837db96d56Sopenharmony_ci#define _CURSES_WINDOW_INSNSTR_METHODDEF    \
11847db96d56Sopenharmony_ci    {"insnstr", (PyCFunction)_curses_window_insnstr, METH_VARARGS, _curses_window_insnstr__doc__},
11857db96d56Sopenharmony_ci
11867db96d56Sopenharmony_cistatic PyObject *
11877db96d56Sopenharmony_ci_curses_window_insnstr_impl(PyCursesWindowObject *self, int group_left_1,
11887db96d56Sopenharmony_ci                            int y, int x, PyObject *str, int n,
11897db96d56Sopenharmony_ci                            int group_right_1, long attr);
11907db96d56Sopenharmony_ci
11917db96d56Sopenharmony_cistatic PyObject *
11927db96d56Sopenharmony_ci_curses_window_insnstr(PyCursesWindowObject *self, PyObject *args)
11937db96d56Sopenharmony_ci{
11947db96d56Sopenharmony_ci    PyObject *return_value = NULL;
11957db96d56Sopenharmony_ci    int group_left_1 = 0;
11967db96d56Sopenharmony_ci    int y = 0;
11977db96d56Sopenharmony_ci    int x = 0;
11987db96d56Sopenharmony_ci    PyObject *str;
11997db96d56Sopenharmony_ci    int n;
12007db96d56Sopenharmony_ci    int group_right_1 = 0;
12017db96d56Sopenharmony_ci    long attr = 0;
12027db96d56Sopenharmony_ci
12037db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
12047db96d56Sopenharmony_ci        case 2:
12057db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oi:insnstr", &str, &n)) {
12067db96d56Sopenharmony_ci                goto exit;
12077db96d56Sopenharmony_ci            }
12087db96d56Sopenharmony_ci            break;
12097db96d56Sopenharmony_ci        case 3:
12107db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oil:insnstr", &str, &n, &attr)) {
12117db96d56Sopenharmony_ci                goto exit;
12127db96d56Sopenharmony_ci            }
12137db96d56Sopenharmony_ci            group_right_1 = 1;
12147db96d56Sopenharmony_ci            break;
12157db96d56Sopenharmony_ci        case 4:
12167db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOi:insnstr", &y, &x, &str, &n)) {
12177db96d56Sopenharmony_ci                goto exit;
12187db96d56Sopenharmony_ci            }
12197db96d56Sopenharmony_ci            group_left_1 = 1;
12207db96d56Sopenharmony_ci            break;
12217db96d56Sopenharmony_ci        case 5:
12227db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOil:insnstr", &y, &x, &str, &n, &attr)) {
12237db96d56Sopenharmony_ci                goto exit;
12247db96d56Sopenharmony_ci            }
12257db96d56Sopenharmony_ci            group_right_1 = 1;
12267db96d56Sopenharmony_ci            group_left_1 = 1;
12277db96d56Sopenharmony_ci            break;
12287db96d56Sopenharmony_ci        default:
12297db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.insnstr requires 2 to 5 arguments");
12307db96d56Sopenharmony_ci            goto exit;
12317db96d56Sopenharmony_ci    }
12327db96d56Sopenharmony_ci    return_value = _curses_window_insnstr_impl(self, group_left_1, y, x, str, n, group_right_1, attr);
12337db96d56Sopenharmony_ci
12347db96d56Sopenharmony_ciexit:
12357db96d56Sopenharmony_ci    return return_value;
12367db96d56Sopenharmony_ci}
12377db96d56Sopenharmony_ci
12387db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_is_linetouched__doc__,
12397db96d56Sopenharmony_ci"is_linetouched($self, line, /)\n"
12407db96d56Sopenharmony_ci"--\n"
12417db96d56Sopenharmony_ci"\n"
12427db96d56Sopenharmony_ci"Return True if the specified line was modified, otherwise return False.\n"
12437db96d56Sopenharmony_ci"\n"
12447db96d56Sopenharmony_ci"  line\n"
12457db96d56Sopenharmony_ci"    Line number.\n"
12467db96d56Sopenharmony_ci"\n"
12477db96d56Sopenharmony_ci"Raise a curses.error exception if line is not valid for the given window.");
12487db96d56Sopenharmony_ci
12497db96d56Sopenharmony_ci#define _CURSES_WINDOW_IS_LINETOUCHED_METHODDEF    \
12507db96d56Sopenharmony_ci    {"is_linetouched", (PyCFunction)_curses_window_is_linetouched, METH_O, _curses_window_is_linetouched__doc__},
12517db96d56Sopenharmony_ci
12527db96d56Sopenharmony_cistatic PyObject *
12537db96d56Sopenharmony_ci_curses_window_is_linetouched_impl(PyCursesWindowObject *self, int line);
12547db96d56Sopenharmony_ci
12557db96d56Sopenharmony_cistatic PyObject *
12567db96d56Sopenharmony_ci_curses_window_is_linetouched(PyCursesWindowObject *self, PyObject *arg)
12577db96d56Sopenharmony_ci{
12587db96d56Sopenharmony_ci    PyObject *return_value = NULL;
12597db96d56Sopenharmony_ci    int line;
12607db96d56Sopenharmony_ci
12617db96d56Sopenharmony_ci    line = _PyLong_AsInt(arg);
12627db96d56Sopenharmony_ci    if (line == -1 && PyErr_Occurred()) {
12637db96d56Sopenharmony_ci        goto exit;
12647db96d56Sopenharmony_ci    }
12657db96d56Sopenharmony_ci    return_value = _curses_window_is_linetouched_impl(self, line);
12667db96d56Sopenharmony_ci
12677db96d56Sopenharmony_ciexit:
12687db96d56Sopenharmony_ci    return return_value;
12697db96d56Sopenharmony_ci}
12707db96d56Sopenharmony_ci
12717db96d56Sopenharmony_ci#if defined(py_is_pad)
12727db96d56Sopenharmony_ci
12737db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_noutrefresh__doc__,
12747db96d56Sopenharmony_ci"noutrefresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])\n"
12757db96d56Sopenharmony_ci"Mark for refresh but wait.\n"
12767db96d56Sopenharmony_ci"\n"
12777db96d56Sopenharmony_ci"This function updates the data structure representing the desired state of the\n"
12787db96d56Sopenharmony_ci"window, but does not force an update of the physical screen.  To accomplish\n"
12797db96d56Sopenharmony_ci"that, call doupdate().");
12807db96d56Sopenharmony_ci
12817db96d56Sopenharmony_ci#define _CURSES_WINDOW_NOUTREFRESH_METHODDEF    \
12827db96d56Sopenharmony_ci    {"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_VARARGS, _curses_window_noutrefresh__doc__},
12837db96d56Sopenharmony_ci
12847db96d56Sopenharmony_cistatic PyObject *
12857db96d56Sopenharmony_ci_curses_window_noutrefresh_impl(PyCursesWindowObject *self,
12867db96d56Sopenharmony_ci                                int group_right_1, int pminrow, int pmincol,
12877db96d56Sopenharmony_ci                                int sminrow, int smincol, int smaxrow,
12887db96d56Sopenharmony_ci                                int smaxcol);
12897db96d56Sopenharmony_ci
12907db96d56Sopenharmony_cistatic PyObject *
12917db96d56Sopenharmony_ci_curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *args)
12927db96d56Sopenharmony_ci{
12937db96d56Sopenharmony_ci    PyObject *return_value = NULL;
12947db96d56Sopenharmony_ci    int group_right_1 = 0;
12957db96d56Sopenharmony_ci    int pminrow = 0;
12967db96d56Sopenharmony_ci    int pmincol = 0;
12977db96d56Sopenharmony_ci    int sminrow = 0;
12987db96d56Sopenharmony_ci    int smincol = 0;
12997db96d56Sopenharmony_ci    int smaxrow = 0;
13007db96d56Sopenharmony_ci    int smaxcol = 0;
13017db96d56Sopenharmony_ci
13027db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
13037db96d56Sopenharmony_ci        case 0:
13047db96d56Sopenharmony_ci            break;
13057db96d56Sopenharmony_ci        case 6:
13067db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiiiii:noutrefresh", &pminrow, &pmincol, &sminrow, &smincol, &smaxrow, &smaxcol)) {
13077db96d56Sopenharmony_ci                goto exit;
13087db96d56Sopenharmony_ci            }
13097db96d56Sopenharmony_ci            group_right_1 = 1;
13107db96d56Sopenharmony_ci            break;
13117db96d56Sopenharmony_ci        default:
13127db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.noutrefresh requires 0 to 6 arguments");
13137db96d56Sopenharmony_ci            goto exit;
13147db96d56Sopenharmony_ci    }
13157db96d56Sopenharmony_ci    return_value = _curses_window_noutrefresh_impl(self, group_right_1, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol);
13167db96d56Sopenharmony_ci
13177db96d56Sopenharmony_ciexit:
13187db96d56Sopenharmony_ci    return return_value;
13197db96d56Sopenharmony_ci}
13207db96d56Sopenharmony_ci
13217db96d56Sopenharmony_ci#endif /* defined(py_is_pad) */
13227db96d56Sopenharmony_ci
13237db96d56Sopenharmony_ci#if !defined(py_is_pad)
13247db96d56Sopenharmony_ci
13257db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_noutrefresh__doc__,
13267db96d56Sopenharmony_ci"noutrefresh($self, /)\n"
13277db96d56Sopenharmony_ci"--\n"
13287db96d56Sopenharmony_ci"\n"
13297db96d56Sopenharmony_ci"Mark for refresh but wait.\n"
13307db96d56Sopenharmony_ci"\n"
13317db96d56Sopenharmony_ci"This function updates the data structure representing the desired state of the\n"
13327db96d56Sopenharmony_ci"window, but does not force an update of the physical screen.  To accomplish\n"
13337db96d56Sopenharmony_ci"that, call doupdate().");
13347db96d56Sopenharmony_ci
13357db96d56Sopenharmony_ci#define _CURSES_WINDOW_NOUTREFRESH_METHODDEF    \
13367db96d56Sopenharmony_ci    {"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_NOARGS, _curses_window_noutrefresh__doc__},
13377db96d56Sopenharmony_ci
13387db96d56Sopenharmony_cistatic PyObject *
13397db96d56Sopenharmony_ci_curses_window_noutrefresh_impl(PyCursesWindowObject *self);
13407db96d56Sopenharmony_ci
13417db96d56Sopenharmony_cistatic PyObject *
13427db96d56Sopenharmony_ci_curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))
13437db96d56Sopenharmony_ci{
13447db96d56Sopenharmony_ci    return _curses_window_noutrefresh_impl(self);
13457db96d56Sopenharmony_ci}
13467db96d56Sopenharmony_ci
13477db96d56Sopenharmony_ci#endif /* !defined(py_is_pad) */
13487db96d56Sopenharmony_ci
13497db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_overlay__doc__,
13507db96d56Sopenharmony_ci"overlay(destwin, [sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])\n"
13517db96d56Sopenharmony_ci"Overlay the window on top of destwin.\n"
13527db96d56Sopenharmony_ci"\n"
13537db96d56Sopenharmony_ci"The windows need not be the same size, only the overlapping region is copied.\n"
13547db96d56Sopenharmony_ci"This copy is non-destructive, which means that the current background\n"
13557db96d56Sopenharmony_ci"character does not overwrite the old contents of destwin.\n"
13567db96d56Sopenharmony_ci"\n"
13577db96d56Sopenharmony_ci"To get fine-grained control over the copied region, the second form of\n"
13587db96d56Sopenharmony_ci"overlay() can be used.  sminrow and smincol are the upper-left coordinates\n"
13597db96d56Sopenharmony_ci"of the source window, and the other variables mark a rectangle in the\n"
13607db96d56Sopenharmony_ci"destination window.");
13617db96d56Sopenharmony_ci
13627db96d56Sopenharmony_ci#define _CURSES_WINDOW_OVERLAY_METHODDEF    \
13637db96d56Sopenharmony_ci    {"overlay", (PyCFunction)_curses_window_overlay, METH_VARARGS, _curses_window_overlay__doc__},
13647db96d56Sopenharmony_ci
13657db96d56Sopenharmony_cistatic PyObject *
13667db96d56Sopenharmony_ci_curses_window_overlay_impl(PyCursesWindowObject *self,
13677db96d56Sopenharmony_ci                            PyCursesWindowObject *destwin, int group_right_1,
13687db96d56Sopenharmony_ci                            int sminrow, int smincol, int dminrow,
13697db96d56Sopenharmony_ci                            int dmincol, int dmaxrow, int dmaxcol);
13707db96d56Sopenharmony_ci
13717db96d56Sopenharmony_cistatic PyObject *
13727db96d56Sopenharmony_ci_curses_window_overlay(PyCursesWindowObject *self, PyObject *args)
13737db96d56Sopenharmony_ci{
13747db96d56Sopenharmony_ci    PyObject *return_value = NULL;
13757db96d56Sopenharmony_ci    PyCursesWindowObject *destwin;
13767db96d56Sopenharmony_ci    int group_right_1 = 0;
13777db96d56Sopenharmony_ci    int sminrow = 0;
13787db96d56Sopenharmony_ci    int smincol = 0;
13797db96d56Sopenharmony_ci    int dminrow = 0;
13807db96d56Sopenharmony_ci    int dmincol = 0;
13817db96d56Sopenharmony_ci    int dmaxrow = 0;
13827db96d56Sopenharmony_ci    int dmaxcol = 0;
13837db96d56Sopenharmony_ci
13847db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
13857db96d56Sopenharmony_ci        case 1:
13867db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O!:overlay", &PyCursesWindow_Type, &destwin)) {
13877db96d56Sopenharmony_ci                goto exit;
13887db96d56Sopenharmony_ci            }
13897db96d56Sopenharmony_ci            break;
13907db96d56Sopenharmony_ci        case 7:
13917db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O!iiiiii:overlay", &PyCursesWindow_Type, &destwin, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) {
13927db96d56Sopenharmony_ci                goto exit;
13937db96d56Sopenharmony_ci            }
13947db96d56Sopenharmony_ci            group_right_1 = 1;
13957db96d56Sopenharmony_ci            break;
13967db96d56Sopenharmony_ci        default:
13977db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.overlay requires 1 to 7 arguments");
13987db96d56Sopenharmony_ci            goto exit;
13997db96d56Sopenharmony_ci    }
14007db96d56Sopenharmony_ci    return_value = _curses_window_overlay_impl(self, destwin, group_right_1, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol);
14017db96d56Sopenharmony_ci
14027db96d56Sopenharmony_ciexit:
14037db96d56Sopenharmony_ci    return return_value;
14047db96d56Sopenharmony_ci}
14057db96d56Sopenharmony_ci
14067db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_overwrite__doc__,
14077db96d56Sopenharmony_ci"overwrite(destwin, [sminrow, smincol, dminrow, dmincol, dmaxrow,\n"
14087db96d56Sopenharmony_ci"          dmaxcol])\n"
14097db96d56Sopenharmony_ci"Overwrite the window on top of destwin.\n"
14107db96d56Sopenharmony_ci"\n"
14117db96d56Sopenharmony_ci"The windows need not be the same size, in which case only the overlapping\n"
14127db96d56Sopenharmony_ci"region is copied.  This copy is destructive, which means that the current\n"
14137db96d56Sopenharmony_ci"background character overwrites the old contents of destwin.\n"
14147db96d56Sopenharmony_ci"\n"
14157db96d56Sopenharmony_ci"To get fine-grained control over the copied region, the second form of\n"
14167db96d56Sopenharmony_ci"overwrite() can be used. sminrow and smincol are the upper-left coordinates\n"
14177db96d56Sopenharmony_ci"of the source window, the other variables mark a rectangle in the destination\n"
14187db96d56Sopenharmony_ci"window.");
14197db96d56Sopenharmony_ci
14207db96d56Sopenharmony_ci#define _CURSES_WINDOW_OVERWRITE_METHODDEF    \
14217db96d56Sopenharmony_ci    {"overwrite", (PyCFunction)_curses_window_overwrite, METH_VARARGS, _curses_window_overwrite__doc__},
14227db96d56Sopenharmony_ci
14237db96d56Sopenharmony_cistatic PyObject *
14247db96d56Sopenharmony_ci_curses_window_overwrite_impl(PyCursesWindowObject *self,
14257db96d56Sopenharmony_ci                              PyCursesWindowObject *destwin,
14267db96d56Sopenharmony_ci                              int group_right_1, int sminrow, int smincol,
14277db96d56Sopenharmony_ci                              int dminrow, int dmincol, int dmaxrow,
14287db96d56Sopenharmony_ci                              int dmaxcol);
14297db96d56Sopenharmony_ci
14307db96d56Sopenharmony_cistatic PyObject *
14317db96d56Sopenharmony_ci_curses_window_overwrite(PyCursesWindowObject *self, PyObject *args)
14327db96d56Sopenharmony_ci{
14337db96d56Sopenharmony_ci    PyObject *return_value = NULL;
14347db96d56Sopenharmony_ci    PyCursesWindowObject *destwin;
14357db96d56Sopenharmony_ci    int group_right_1 = 0;
14367db96d56Sopenharmony_ci    int sminrow = 0;
14377db96d56Sopenharmony_ci    int smincol = 0;
14387db96d56Sopenharmony_ci    int dminrow = 0;
14397db96d56Sopenharmony_ci    int dmincol = 0;
14407db96d56Sopenharmony_ci    int dmaxrow = 0;
14417db96d56Sopenharmony_ci    int dmaxcol = 0;
14427db96d56Sopenharmony_ci
14437db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
14447db96d56Sopenharmony_ci        case 1:
14457db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O!:overwrite", &PyCursesWindow_Type, &destwin)) {
14467db96d56Sopenharmony_ci                goto exit;
14477db96d56Sopenharmony_ci            }
14487db96d56Sopenharmony_ci            break;
14497db96d56Sopenharmony_ci        case 7:
14507db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "O!iiiiii:overwrite", &PyCursesWindow_Type, &destwin, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) {
14517db96d56Sopenharmony_ci                goto exit;
14527db96d56Sopenharmony_ci            }
14537db96d56Sopenharmony_ci            group_right_1 = 1;
14547db96d56Sopenharmony_ci            break;
14557db96d56Sopenharmony_ci        default:
14567db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.overwrite requires 1 to 7 arguments");
14577db96d56Sopenharmony_ci            goto exit;
14587db96d56Sopenharmony_ci    }
14597db96d56Sopenharmony_ci    return_value = _curses_window_overwrite_impl(self, destwin, group_right_1, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol);
14607db96d56Sopenharmony_ci
14617db96d56Sopenharmony_ciexit:
14627db96d56Sopenharmony_ci    return return_value;
14637db96d56Sopenharmony_ci}
14647db96d56Sopenharmony_ci
14657db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_putwin__doc__,
14667db96d56Sopenharmony_ci"putwin($self, file, /)\n"
14677db96d56Sopenharmony_ci"--\n"
14687db96d56Sopenharmony_ci"\n"
14697db96d56Sopenharmony_ci"Write all data associated with the window into the provided file object.\n"
14707db96d56Sopenharmony_ci"\n"
14717db96d56Sopenharmony_ci"This information can be later retrieved using the getwin() function.");
14727db96d56Sopenharmony_ci
14737db96d56Sopenharmony_ci#define _CURSES_WINDOW_PUTWIN_METHODDEF    \
14747db96d56Sopenharmony_ci    {"putwin", (PyCFunction)_curses_window_putwin, METH_O, _curses_window_putwin__doc__},
14757db96d56Sopenharmony_ci
14767db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_redrawln__doc__,
14777db96d56Sopenharmony_ci"redrawln($self, beg, num, /)\n"
14787db96d56Sopenharmony_ci"--\n"
14797db96d56Sopenharmony_ci"\n"
14807db96d56Sopenharmony_ci"Mark the specified lines corrupted.\n"
14817db96d56Sopenharmony_ci"\n"
14827db96d56Sopenharmony_ci"  beg\n"
14837db96d56Sopenharmony_ci"    Starting line number.\n"
14847db96d56Sopenharmony_ci"  num\n"
14857db96d56Sopenharmony_ci"    The number of lines.\n"
14867db96d56Sopenharmony_ci"\n"
14877db96d56Sopenharmony_ci"They should be completely redrawn on the next refresh() call.");
14887db96d56Sopenharmony_ci
14897db96d56Sopenharmony_ci#define _CURSES_WINDOW_REDRAWLN_METHODDEF    \
14907db96d56Sopenharmony_ci    {"redrawln", _PyCFunction_CAST(_curses_window_redrawln), METH_FASTCALL, _curses_window_redrawln__doc__},
14917db96d56Sopenharmony_ci
14927db96d56Sopenharmony_cistatic PyObject *
14937db96d56Sopenharmony_ci_curses_window_redrawln_impl(PyCursesWindowObject *self, int beg, int num);
14947db96d56Sopenharmony_ci
14957db96d56Sopenharmony_cistatic PyObject *
14967db96d56Sopenharmony_ci_curses_window_redrawln(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
14977db96d56Sopenharmony_ci{
14987db96d56Sopenharmony_ci    PyObject *return_value = NULL;
14997db96d56Sopenharmony_ci    int beg;
15007db96d56Sopenharmony_ci    int num;
15017db96d56Sopenharmony_ci
15027db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("redrawln", nargs, 2, 2)) {
15037db96d56Sopenharmony_ci        goto exit;
15047db96d56Sopenharmony_ci    }
15057db96d56Sopenharmony_ci    beg = _PyLong_AsInt(args[0]);
15067db96d56Sopenharmony_ci    if (beg == -1 && PyErr_Occurred()) {
15077db96d56Sopenharmony_ci        goto exit;
15087db96d56Sopenharmony_ci    }
15097db96d56Sopenharmony_ci    num = _PyLong_AsInt(args[1]);
15107db96d56Sopenharmony_ci    if (num == -1 && PyErr_Occurred()) {
15117db96d56Sopenharmony_ci        goto exit;
15127db96d56Sopenharmony_ci    }
15137db96d56Sopenharmony_ci    return_value = _curses_window_redrawln_impl(self, beg, num);
15147db96d56Sopenharmony_ci
15157db96d56Sopenharmony_ciexit:
15167db96d56Sopenharmony_ci    return return_value;
15177db96d56Sopenharmony_ci}
15187db96d56Sopenharmony_ci
15197db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_refresh__doc__,
15207db96d56Sopenharmony_ci"refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])\n"
15217db96d56Sopenharmony_ci"Update the display immediately.\n"
15227db96d56Sopenharmony_ci"\n"
15237db96d56Sopenharmony_ci"Synchronize actual screen with previous drawing/deleting methods.\n"
15247db96d56Sopenharmony_ci"The 6 optional arguments can only be specified when the window is a pad\n"
15257db96d56Sopenharmony_ci"created with newpad().  The additional parameters are needed to indicate\n"
15267db96d56Sopenharmony_ci"what part of the pad and screen are involved.  pminrow and pmincol specify\n"
15277db96d56Sopenharmony_ci"the upper left-hand corner of the rectangle to be displayed in the pad.\n"
15287db96d56Sopenharmony_ci"sminrow, smincol, smaxrow, and smaxcol specify the edges of the rectangle to\n"
15297db96d56Sopenharmony_ci"be displayed on the screen.  The lower right-hand corner of the rectangle to\n"
15307db96d56Sopenharmony_ci"be displayed in the pad is calculated from the screen coordinates, since the\n"
15317db96d56Sopenharmony_ci"rectangles must be the same size.  Both rectangles must be entirely contained\n"
15327db96d56Sopenharmony_ci"within their respective structures.  Negative values of pminrow, pmincol,\n"
15337db96d56Sopenharmony_ci"sminrow, or smincol are treated as if they were zero.");
15347db96d56Sopenharmony_ci
15357db96d56Sopenharmony_ci#define _CURSES_WINDOW_REFRESH_METHODDEF    \
15367db96d56Sopenharmony_ci    {"refresh", (PyCFunction)_curses_window_refresh, METH_VARARGS, _curses_window_refresh__doc__},
15377db96d56Sopenharmony_ci
15387db96d56Sopenharmony_cistatic PyObject *
15397db96d56Sopenharmony_ci_curses_window_refresh_impl(PyCursesWindowObject *self, int group_right_1,
15407db96d56Sopenharmony_ci                            int pminrow, int pmincol, int sminrow,
15417db96d56Sopenharmony_ci                            int smincol, int smaxrow, int smaxcol);
15427db96d56Sopenharmony_ci
15437db96d56Sopenharmony_cistatic PyObject *
15447db96d56Sopenharmony_ci_curses_window_refresh(PyCursesWindowObject *self, PyObject *args)
15457db96d56Sopenharmony_ci{
15467db96d56Sopenharmony_ci    PyObject *return_value = NULL;
15477db96d56Sopenharmony_ci    int group_right_1 = 0;
15487db96d56Sopenharmony_ci    int pminrow = 0;
15497db96d56Sopenharmony_ci    int pmincol = 0;
15507db96d56Sopenharmony_ci    int sminrow = 0;
15517db96d56Sopenharmony_ci    int smincol = 0;
15527db96d56Sopenharmony_ci    int smaxrow = 0;
15537db96d56Sopenharmony_ci    int smaxcol = 0;
15547db96d56Sopenharmony_ci
15557db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
15567db96d56Sopenharmony_ci        case 0:
15577db96d56Sopenharmony_ci            break;
15587db96d56Sopenharmony_ci        case 6:
15597db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiiiii:refresh", &pminrow, &pmincol, &sminrow, &smincol, &smaxrow, &smaxcol)) {
15607db96d56Sopenharmony_ci                goto exit;
15617db96d56Sopenharmony_ci            }
15627db96d56Sopenharmony_ci            group_right_1 = 1;
15637db96d56Sopenharmony_ci            break;
15647db96d56Sopenharmony_ci        default:
15657db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.refresh requires 0 to 6 arguments");
15667db96d56Sopenharmony_ci            goto exit;
15677db96d56Sopenharmony_ci    }
15687db96d56Sopenharmony_ci    return_value = _curses_window_refresh_impl(self, group_right_1, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol);
15697db96d56Sopenharmony_ci
15707db96d56Sopenharmony_ciexit:
15717db96d56Sopenharmony_ci    return return_value;
15727db96d56Sopenharmony_ci}
15737db96d56Sopenharmony_ci
15747db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_setscrreg__doc__,
15757db96d56Sopenharmony_ci"setscrreg($self, top, bottom, /)\n"
15767db96d56Sopenharmony_ci"--\n"
15777db96d56Sopenharmony_ci"\n"
15787db96d56Sopenharmony_ci"Define a software scrolling region.\n"
15797db96d56Sopenharmony_ci"\n"
15807db96d56Sopenharmony_ci"  top\n"
15817db96d56Sopenharmony_ci"    First line number.\n"
15827db96d56Sopenharmony_ci"  bottom\n"
15837db96d56Sopenharmony_ci"    Last line number.\n"
15847db96d56Sopenharmony_ci"\n"
15857db96d56Sopenharmony_ci"All scrolling actions will take place in this region.");
15867db96d56Sopenharmony_ci
15877db96d56Sopenharmony_ci#define _CURSES_WINDOW_SETSCRREG_METHODDEF    \
15887db96d56Sopenharmony_ci    {"setscrreg", _PyCFunction_CAST(_curses_window_setscrreg), METH_FASTCALL, _curses_window_setscrreg__doc__},
15897db96d56Sopenharmony_ci
15907db96d56Sopenharmony_cistatic PyObject *
15917db96d56Sopenharmony_ci_curses_window_setscrreg_impl(PyCursesWindowObject *self, int top,
15927db96d56Sopenharmony_ci                              int bottom);
15937db96d56Sopenharmony_ci
15947db96d56Sopenharmony_cistatic PyObject *
15957db96d56Sopenharmony_ci_curses_window_setscrreg(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
15967db96d56Sopenharmony_ci{
15977db96d56Sopenharmony_ci    PyObject *return_value = NULL;
15987db96d56Sopenharmony_ci    int top;
15997db96d56Sopenharmony_ci    int bottom;
16007db96d56Sopenharmony_ci
16017db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("setscrreg", nargs, 2, 2)) {
16027db96d56Sopenharmony_ci        goto exit;
16037db96d56Sopenharmony_ci    }
16047db96d56Sopenharmony_ci    top = _PyLong_AsInt(args[0]);
16057db96d56Sopenharmony_ci    if (top == -1 && PyErr_Occurred()) {
16067db96d56Sopenharmony_ci        goto exit;
16077db96d56Sopenharmony_ci    }
16087db96d56Sopenharmony_ci    bottom = _PyLong_AsInt(args[1]);
16097db96d56Sopenharmony_ci    if (bottom == -1 && PyErr_Occurred()) {
16107db96d56Sopenharmony_ci        goto exit;
16117db96d56Sopenharmony_ci    }
16127db96d56Sopenharmony_ci    return_value = _curses_window_setscrreg_impl(self, top, bottom);
16137db96d56Sopenharmony_ci
16147db96d56Sopenharmony_ciexit:
16157db96d56Sopenharmony_ci    return return_value;
16167db96d56Sopenharmony_ci}
16177db96d56Sopenharmony_ci
16187db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_subwin__doc__,
16197db96d56Sopenharmony_ci"subwin([nlines=0, ncols=0,] begin_y, begin_x)\n"
16207db96d56Sopenharmony_ci"Create a sub-window (screen-relative coordinates).\n"
16217db96d56Sopenharmony_ci"\n"
16227db96d56Sopenharmony_ci"  nlines\n"
16237db96d56Sopenharmony_ci"    Height.\n"
16247db96d56Sopenharmony_ci"  ncols\n"
16257db96d56Sopenharmony_ci"    Width.\n"
16267db96d56Sopenharmony_ci"  begin_y\n"
16277db96d56Sopenharmony_ci"    Top side y-coordinate.\n"
16287db96d56Sopenharmony_ci"  begin_x\n"
16297db96d56Sopenharmony_ci"    Left side x-coordinate.\n"
16307db96d56Sopenharmony_ci"\n"
16317db96d56Sopenharmony_ci"By default, the sub-window will extend from the specified position to the\n"
16327db96d56Sopenharmony_ci"lower right corner of the window.");
16337db96d56Sopenharmony_ci
16347db96d56Sopenharmony_ci#define _CURSES_WINDOW_SUBWIN_METHODDEF    \
16357db96d56Sopenharmony_ci    {"subwin", (PyCFunction)_curses_window_subwin, METH_VARARGS, _curses_window_subwin__doc__},
16367db96d56Sopenharmony_ci
16377db96d56Sopenharmony_cistatic PyObject *
16387db96d56Sopenharmony_ci_curses_window_subwin_impl(PyCursesWindowObject *self, int group_left_1,
16397db96d56Sopenharmony_ci                           int nlines, int ncols, int begin_y, int begin_x);
16407db96d56Sopenharmony_ci
16417db96d56Sopenharmony_cistatic PyObject *
16427db96d56Sopenharmony_ci_curses_window_subwin(PyCursesWindowObject *self, PyObject *args)
16437db96d56Sopenharmony_ci{
16447db96d56Sopenharmony_ci    PyObject *return_value = NULL;
16457db96d56Sopenharmony_ci    int group_left_1 = 0;
16467db96d56Sopenharmony_ci    int nlines = 0;
16477db96d56Sopenharmony_ci    int ncols = 0;
16487db96d56Sopenharmony_ci    int begin_y;
16497db96d56Sopenharmony_ci    int begin_x;
16507db96d56Sopenharmony_ci
16517db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
16527db96d56Sopenharmony_ci        case 2:
16537db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:subwin", &begin_y, &begin_x)) {
16547db96d56Sopenharmony_ci                goto exit;
16557db96d56Sopenharmony_ci            }
16567db96d56Sopenharmony_ci            break;
16577db96d56Sopenharmony_ci        case 4:
16587db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiii:subwin", &nlines, &ncols, &begin_y, &begin_x)) {
16597db96d56Sopenharmony_ci                goto exit;
16607db96d56Sopenharmony_ci            }
16617db96d56Sopenharmony_ci            group_left_1 = 1;
16627db96d56Sopenharmony_ci            break;
16637db96d56Sopenharmony_ci        default:
16647db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.subwin requires 2 to 4 arguments");
16657db96d56Sopenharmony_ci            goto exit;
16667db96d56Sopenharmony_ci    }
16677db96d56Sopenharmony_ci    return_value = _curses_window_subwin_impl(self, group_left_1, nlines, ncols, begin_y, begin_x);
16687db96d56Sopenharmony_ci
16697db96d56Sopenharmony_ciexit:
16707db96d56Sopenharmony_ci    return return_value;
16717db96d56Sopenharmony_ci}
16727db96d56Sopenharmony_ci
16737db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_scroll__doc__,
16747db96d56Sopenharmony_ci"scroll([lines=1])\n"
16757db96d56Sopenharmony_ci"Scroll the screen or scrolling region.\n"
16767db96d56Sopenharmony_ci"\n"
16777db96d56Sopenharmony_ci"  lines\n"
16787db96d56Sopenharmony_ci"    Number of lines to scroll.\n"
16797db96d56Sopenharmony_ci"\n"
16807db96d56Sopenharmony_ci"Scroll upward if the argument is positive and downward if it is negative.");
16817db96d56Sopenharmony_ci
16827db96d56Sopenharmony_ci#define _CURSES_WINDOW_SCROLL_METHODDEF    \
16837db96d56Sopenharmony_ci    {"scroll", (PyCFunction)_curses_window_scroll, METH_VARARGS, _curses_window_scroll__doc__},
16847db96d56Sopenharmony_ci
16857db96d56Sopenharmony_cistatic PyObject *
16867db96d56Sopenharmony_ci_curses_window_scroll_impl(PyCursesWindowObject *self, int group_right_1,
16877db96d56Sopenharmony_ci                           int lines);
16887db96d56Sopenharmony_ci
16897db96d56Sopenharmony_cistatic PyObject *
16907db96d56Sopenharmony_ci_curses_window_scroll(PyCursesWindowObject *self, PyObject *args)
16917db96d56Sopenharmony_ci{
16927db96d56Sopenharmony_ci    PyObject *return_value = NULL;
16937db96d56Sopenharmony_ci    int group_right_1 = 0;
16947db96d56Sopenharmony_ci    int lines = 1;
16957db96d56Sopenharmony_ci
16967db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
16977db96d56Sopenharmony_ci        case 0:
16987db96d56Sopenharmony_ci            break;
16997db96d56Sopenharmony_ci        case 1:
17007db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "i:scroll", &lines)) {
17017db96d56Sopenharmony_ci                goto exit;
17027db96d56Sopenharmony_ci            }
17037db96d56Sopenharmony_ci            group_right_1 = 1;
17047db96d56Sopenharmony_ci            break;
17057db96d56Sopenharmony_ci        default:
17067db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.scroll requires 0 to 1 arguments");
17077db96d56Sopenharmony_ci            goto exit;
17087db96d56Sopenharmony_ci    }
17097db96d56Sopenharmony_ci    return_value = _curses_window_scroll_impl(self, group_right_1, lines);
17107db96d56Sopenharmony_ci
17117db96d56Sopenharmony_ciexit:
17127db96d56Sopenharmony_ci    return return_value;
17137db96d56Sopenharmony_ci}
17147db96d56Sopenharmony_ci
17157db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_touchline__doc__,
17167db96d56Sopenharmony_ci"touchline(start, count, [changed=True])\n"
17177db96d56Sopenharmony_ci"Pretend count lines have been changed, starting with line start.\n"
17187db96d56Sopenharmony_ci"\n"
17197db96d56Sopenharmony_ci"If changed is supplied, it specifies whether the affected lines are marked\n"
17207db96d56Sopenharmony_ci"as having been changed (changed=True) or unchanged (changed=False).");
17217db96d56Sopenharmony_ci
17227db96d56Sopenharmony_ci#define _CURSES_WINDOW_TOUCHLINE_METHODDEF    \
17237db96d56Sopenharmony_ci    {"touchline", (PyCFunction)_curses_window_touchline, METH_VARARGS, _curses_window_touchline__doc__},
17247db96d56Sopenharmony_ci
17257db96d56Sopenharmony_cistatic PyObject *
17267db96d56Sopenharmony_ci_curses_window_touchline_impl(PyCursesWindowObject *self, int start,
17277db96d56Sopenharmony_ci                              int count, int group_right_1, int changed);
17287db96d56Sopenharmony_ci
17297db96d56Sopenharmony_cistatic PyObject *
17307db96d56Sopenharmony_ci_curses_window_touchline(PyCursesWindowObject *self, PyObject *args)
17317db96d56Sopenharmony_ci{
17327db96d56Sopenharmony_ci    PyObject *return_value = NULL;
17337db96d56Sopenharmony_ci    int start;
17347db96d56Sopenharmony_ci    int count;
17357db96d56Sopenharmony_ci    int group_right_1 = 0;
17367db96d56Sopenharmony_ci    int changed = 1;
17377db96d56Sopenharmony_ci
17387db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
17397db96d56Sopenharmony_ci        case 2:
17407db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:touchline", &start, &count)) {
17417db96d56Sopenharmony_ci                goto exit;
17427db96d56Sopenharmony_ci            }
17437db96d56Sopenharmony_ci            break;
17447db96d56Sopenharmony_ci        case 3:
17457db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iii:touchline", &start, &count, &changed)) {
17467db96d56Sopenharmony_ci                goto exit;
17477db96d56Sopenharmony_ci            }
17487db96d56Sopenharmony_ci            group_right_1 = 1;
17497db96d56Sopenharmony_ci            break;
17507db96d56Sopenharmony_ci        default:
17517db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.touchline requires 2 to 3 arguments");
17527db96d56Sopenharmony_ci            goto exit;
17537db96d56Sopenharmony_ci    }
17547db96d56Sopenharmony_ci    return_value = _curses_window_touchline_impl(self, start, count, group_right_1, changed);
17557db96d56Sopenharmony_ci
17567db96d56Sopenharmony_ciexit:
17577db96d56Sopenharmony_ci    return return_value;
17587db96d56Sopenharmony_ci}
17597db96d56Sopenharmony_ci
17607db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_window_vline__doc__,
17617db96d56Sopenharmony_ci"vline([y, x,] ch, n, [attr=_curses.A_NORMAL])\n"
17627db96d56Sopenharmony_ci"Display a vertical line.\n"
17637db96d56Sopenharmony_ci"\n"
17647db96d56Sopenharmony_ci"  y\n"
17657db96d56Sopenharmony_ci"    Starting Y-coordinate.\n"
17667db96d56Sopenharmony_ci"  x\n"
17677db96d56Sopenharmony_ci"    Starting X-coordinate.\n"
17687db96d56Sopenharmony_ci"  ch\n"
17697db96d56Sopenharmony_ci"    Character to draw.\n"
17707db96d56Sopenharmony_ci"  n\n"
17717db96d56Sopenharmony_ci"    Line length.\n"
17727db96d56Sopenharmony_ci"  attr\n"
17737db96d56Sopenharmony_ci"    Attributes for the character.");
17747db96d56Sopenharmony_ci
17757db96d56Sopenharmony_ci#define _CURSES_WINDOW_VLINE_METHODDEF    \
17767db96d56Sopenharmony_ci    {"vline", (PyCFunction)_curses_window_vline, METH_VARARGS, _curses_window_vline__doc__},
17777db96d56Sopenharmony_ci
17787db96d56Sopenharmony_cistatic PyObject *
17797db96d56Sopenharmony_ci_curses_window_vline_impl(PyCursesWindowObject *self, int group_left_1,
17807db96d56Sopenharmony_ci                          int y, int x, PyObject *ch, int n,
17817db96d56Sopenharmony_ci                          int group_right_1, long attr);
17827db96d56Sopenharmony_ci
17837db96d56Sopenharmony_cistatic PyObject *
17847db96d56Sopenharmony_ci_curses_window_vline(PyCursesWindowObject *self, PyObject *args)
17857db96d56Sopenharmony_ci{
17867db96d56Sopenharmony_ci    PyObject *return_value = NULL;
17877db96d56Sopenharmony_ci    int group_left_1 = 0;
17887db96d56Sopenharmony_ci    int y = 0;
17897db96d56Sopenharmony_ci    int x = 0;
17907db96d56Sopenharmony_ci    PyObject *ch;
17917db96d56Sopenharmony_ci    int n;
17927db96d56Sopenharmony_ci    int group_right_1 = 0;
17937db96d56Sopenharmony_ci    long attr = A_NORMAL;
17947db96d56Sopenharmony_ci
17957db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
17967db96d56Sopenharmony_ci        case 2:
17977db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oi:vline", &ch, &n)) {
17987db96d56Sopenharmony_ci                goto exit;
17997db96d56Sopenharmony_ci            }
18007db96d56Sopenharmony_ci            break;
18017db96d56Sopenharmony_ci        case 3:
18027db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "Oil:vline", &ch, &n, &attr)) {
18037db96d56Sopenharmony_ci                goto exit;
18047db96d56Sopenharmony_ci            }
18057db96d56Sopenharmony_ci            group_right_1 = 1;
18067db96d56Sopenharmony_ci            break;
18077db96d56Sopenharmony_ci        case 4:
18087db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOi:vline", &y, &x, &ch, &n)) {
18097db96d56Sopenharmony_ci                goto exit;
18107db96d56Sopenharmony_ci            }
18117db96d56Sopenharmony_ci            group_left_1 = 1;
18127db96d56Sopenharmony_ci            break;
18137db96d56Sopenharmony_ci        case 5:
18147db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiOil:vline", &y, &x, &ch, &n, &attr)) {
18157db96d56Sopenharmony_ci                goto exit;
18167db96d56Sopenharmony_ci            }
18177db96d56Sopenharmony_ci            group_right_1 = 1;
18187db96d56Sopenharmony_ci            group_left_1 = 1;
18197db96d56Sopenharmony_ci            break;
18207db96d56Sopenharmony_ci        default:
18217db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.window.vline requires 2 to 5 arguments");
18227db96d56Sopenharmony_ci            goto exit;
18237db96d56Sopenharmony_ci    }
18247db96d56Sopenharmony_ci    return_value = _curses_window_vline_impl(self, group_left_1, y, x, ch, n, group_right_1, attr);
18257db96d56Sopenharmony_ci
18267db96d56Sopenharmony_ciexit:
18277db96d56Sopenharmony_ci    return return_value;
18287db96d56Sopenharmony_ci}
18297db96d56Sopenharmony_ci
18307db96d56Sopenharmony_ci#if defined(HAVE_CURSES_FILTER)
18317db96d56Sopenharmony_ci
18327db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_filter__doc__,
18337db96d56Sopenharmony_ci"filter($module, /)\n"
18347db96d56Sopenharmony_ci"--\n"
18357db96d56Sopenharmony_ci"\n");
18367db96d56Sopenharmony_ci
18377db96d56Sopenharmony_ci#define _CURSES_FILTER_METHODDEF    \
18387db96d56Sopenharmony_ci    {"filter", (PyCFunction)_curses_filter, METH_NOARGS, _curses_filter__doc__},
18397db96d56Sopenharmony_ci
18407db96d56Sopenharmony_cistatic PyObject *
18417db96d56Sopenharmony_ci_curses_filter_impl(PyObject *module);
18427db96d56Sopenharmony_ci
18437db96d56Sopenharmony_cistatic PyObject *
18447db96d56Sopenharmony_ci_curses_filter(PyObject *module, PyObject *Py_UNUSED(ignored))
18457db96d56Sopenharmony_ci{
18467db96d56Sopenharmony_ci    return _curses_filter_impl(module);
18477db96d56Sopenharmony_ci}
18487db96d56Sopenharmony_ci
18497db96d56Sopenharmony_ci#endif /* defined(HAVE_CURSES_FILTER) */
18507db96d56Sopenharmony_ci
18517db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_baudrate__doc__,
18527db96d56Sopenharmony_ci"baudrate($module, /)\n"
18537db96d56Sopenharmony_ci"--\n"
18547db96d56Sopenharmony_ci"\n"
18557db96d56Sopenharmony_ci"Return the output speed of the terminal in bits per second.");
18567db96d56Sopenharmony_ci
18577db96d56Sopenharmony_ci#define _CURSES_BAUDRATE_METHODDEF    \
18587db96d56Sopenharmony_ci    {"baudrate", (PyCFunction)_curses_baudrate, METH_NOARGS, _curses_baudrate__doc__},
18597db96d56Sopenharmony_ci
18607db96d56Sopenharmony_cistatic PyObject *
18617db96d56Sopenharmony_ci_curses_baudrate_impl(PyObject *module);
18627db96d56Sopenharmony_ci
18637db96d56Sopenharmony_cistatic PyObject *
18647db96d56Sopenharmony_ci_curses_baudrate(PyObject *module, PyObject *Py_UNUSED(ignored))
18657db96d56Sopenharmony_ci{
18667db96d56Sopenharmony_ci    return _curses_baudrate_impl(module);
18677db96d56Sopenharmony_ci}
18687db96d56Sopenharmony_ci
18697db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_beep__doc__,
18707db96d56Sopenharmony_ci"beep($module, /)\n"
18717db96d56Sopenharmony_ci"--\n"
18727db96d56Sopenharmony_ci"\n"
18737db96d56Sopenharmony_ci"Emit a short attention sound.");
18747db96d56Sopenharmony_ci
18757db96d56Sopenharmony_ci#define _CURSES_BEEP_METHODDEF    \
18767db96d56Sopenharmony_ci    {"beep", (PyCFunction)_curses_beep, METH_NOARGS, _curses_beep__doc__},
18777db96d56Sopenharmony_ci
18787db96d56Sopenharmony_cistatic PyObject *
18797db96d56Sopenharmony_ci_curses_beep_impl(PyObject *module);
18807db96d56Sopenharmony_ci
18817db96d56Sopenharmony_cistatic PyObject *
18827db96d56Sopenharmony_ci_curses_beep(PyObject *module, PyObject *Py_UNUSED(ignored))
18837db96d56Sopenharmony_ci{
18847db96d56Sopenharmony_ci    return _curses_beep_impl(module);
18857db96d56Sopenharmony_ci}
18867db96d56Sopenharmony_ci
18877db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_can_change_color__doc__,
18887db96d56Sopenharmony_ci"can_change_color($module, /)\n"
18897db96d56Sopenharmony_ci"--\n"
18907db96d56Sopenharmony_ci"\n"
18917db96d56Sopenharmony_ci"Return True if the programmer can change the colors displayed by the terminal.");
18927db96d56Sopenharmony_ci
18937db96d56Sopenharmony_ci#define _CURSES_CAN_CHANGE_COLOR_METHODDEF    \
18947db96d56Sopenharmony_ci    {"can_change_color", (PyCFunction)_curses_can_change_color, METH_NOARGS, _curses_can_change_color__doc__},
18957db96d56Sopenharmony_ci
18967db96d56Sopenharmony_cistatic PyObject *
18977db96d56Sopenharmony_ci_curses_can_change_color_impl(PyObject *module);
18987db96d56Sopenharmony_ci
18997db96d56Sopenharmony_cistatic PyObject *
19007db96d56Sopenharmony_ci_curses_can_change_color(PyObject *module, PyObject *Py_UNUSED(ignored))
19017db96d56Sopenharmony_ci{
19027db96d56Sopenharmony_ci    return _curses_can_change_color_impl(module);
19037db96d56Sopenharmony_ci}
19047db96d56Sopenharmony_ci
19057db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_cbreak__doc__,
19067db96d56Sopenharmony_ci"cbreak($module, flag=True, /)\n"
19077db96d56Sopenharmony_ci"--\n"
19087db96d56Sopenharmony_ci"\n"
19097db96d56Sopenharmony_ci"Enter cbreak mode.\n"
19107db96d56Sopenharmony_ci"\n"
19117db96d56Sopenharmony_ci"  flag\n"
19127db96d56Sopenharmony_ci"    If false, the effect is the same as calling nocbreak().\n"
19137db96d56Sopenharmony_ci"\n"
19147db96d56Sopenharmony_ci"In cbreak mode (sometimes called \"rare\" mode) normal tty line buffering is\n"
19157db96d56Sopenharmony_ci"turned off and characters are available to be read one by one.  However,\n"
19167db96d56Sopenharmony_ci"unlike raw mode, special characters (interrupt, quit, suspend, and flow\n"
19177db96d56Sopenharmony_ci"control) retain their effects on the tty driver and calling program.\n"
19187db96d56Sopenharmony_ci"Calling first raw() then cbreak() leaves the terminal in cbreak mode.");
19197db96d56Sopenharmony_ci
19207db96d56Sopenharmony_ci#define _CURSES_CBREAK_METHODDEF    \
19217db96d56Sopenharmony_ci    {"cbreak", _PyCFunction_CAST(_curses_cbreak), METH_FASTCALL, _curses_cbreak__doc__},
19227db96d56Sopenharmony_ci
19237db96d56Sopenharmony_cistatic PyObject *
19247db96d56Sopenharmony_ci_curses_cbreak_impl(PyObject *module, int flag);
19257db96d56Sopenharmony_ci
19267db96d56Sopenharmony_cistatic PyObject *
19277db96d56Sopenharmony_ci_curses_cbreak(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
19287db96d56Sopenharmony_ci{
19297db96d56Sopenharmony_ci    PyObject *return_value = NULL;
19307db96d56Sopenharmony_ci    int flag = 1;
19317db96d56Sopenharmony_ci
19327db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("cbreak", nargs, 0, 1)) {
19337db96d56Sopenharmony_ci        goto exit;
19347db96d56Sopenharmony_ci    }
19357db96d56Sopenharmony_ci    if (nargs < 1) {
19367db96d56Sopenharmony_ci        goto skip_optional;
19377db96d56Sopenharmony_ci    }
19387db96d56Sopenharmony_ci    flag = _PyLong_AsInt(args[0]);
19397db96d56Sopenharmony_ci    if (flag == -1 && PyErr_Occurred()) {
19407db96d56Sopenharmony_ci        goto exit;
19417db96d56Sopenharmony_ci    }
19427db96d56Sopenharmony_ciskip_optional:
19437db96d56Sopenharmony_ci    return_value = _curses_cbreak_impl(module, flag);
19447db96d56Sopenharmony_ci
19457db96d56Sopenharmony_ciexit:
19467db96d56Sopenharmony_ci    return return_value;
19477db96d56Sopenharmony_ci}
19487db96d56Sopenharmony_ci
19497db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_color_content__doc__,
19507db96d56Sopenharmony_ci"color_content($module, color_number, /)\n"
19517db96d56Sopenharmony_ci"--\n"
19527db96d56Sopenharmony_ci"\n"
19537db96d56Sopenharmony_ci"Return the red, green, and blue (RGB) components of the specified color.\n"
19547db96d56Sopenharmony_ci"\n"
19557db96d56Sopenharmony_ci"  color_number\n"
19567db96d56Sopenharmony_ci"    The number of the color (0 - (COLORS-1)).\n"
19577db96d56Sopenharmony_ci"\n"
19587db96d56Sopenharmony_ci"A 3-tuple is returned, containing the R, G, B values for the given color,\n"
19597db96d56Sopenharmony_ci"which will be between 0 (no component) and 1000 (maximum amount of component).");
19607db96d56Sopenharmony_ci
19617db96d56Sopenharmony_ci#define _CURSES_COLOR_CONTENT_METHODDEF    \
19627db96d56Sopenharmony_ci    {"color_content", (PyCFunction)_curses_color_content, METH_O, _curses_color_content__doc__},
19637db96d56Sopenharmony_ci
19647db96d56Sopenharmony_cistatic PyObject *
19657db96d56Sopenharmony_ci_curses_color_content_impl(PyObject *module, int color_number);
19667db96d56Sopenharmony_ci
19677db96d56Sopenharmony_cistatic PyObject *
19687db96d56Sopenharmony_ci_curses_color_content(PyObject *module, PyObject *arg)
19697db96d56Sopenharmony_ci{
19707db96d56Sopenharmony_ci    PyObject *return_value = NULL;
19717db96d56Sopenharmony_ci    int color_number;
19727db96d56Sopenharmony_ci
19737db96d56Sopenharmony_ci    if (!color_converter(arg, &color_number)) {
19747db96d56Sopenharmony_ci        goto exit;
19757db96d56Sopenharmony_ci    }
19767db96d56Sopenharmony_ci    return_value = _curses_color_content_impl(module, color_number);
19777db96d56Sopenharmony_ci
19787db96d56Sopenharmony_ciexit:
19797db96d56Sopenharmony_ci    return return_value;
19807db96d56Sopenharmony_ci}
19817db96d56Sopenharmony_ci
19827db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_color_pair__doc__,
19837db96d56Sopenharmony_ci"color_pair($module, pair_number, /)\n"
19847db96d56Sopenharmony_ci"--\n"
19857db96d56Sopenharmony_ci"\n"
19867db96d56Sopenharmony_ci"Return the attribute value for displaying text in the specified color.\n"
19877db96d56Sopenharmony_ci"\n"
19887db96d56Sopenharmony_ci"  pair_number\n"
19897db96d56Sopenharmony_ci"    The number of the color pair.\n"
19907db96d56Sopenharmony_ci"\n"
19917db96d56Sopenharmony_ci"This attribute value can be combined with A_STANDOUT, A_REVERSE, and the\n"
19927db96d56Sopenharmony_ci"other A_* attributes.  pair_number() is the counterpart to this function.");
19937db96d56Sopenharmony_ci
19947db96d56Sopenharmony_ci#define _CURSES_COLOR_PAIR_METHODDEF    \
19957db96d56Sopenharmony_ci    {"color_pair", (PyCFunction)_curses_color_pair, METH_O, _curses_color_pair__doc__},
19967db96d56Sopenharmony_ci
19977db96d56Sopenharmony_cistatic PyObject *
19987db96d56Sopenharmony_ci_curses_color_pair_impl(PyObject *module, int pair_number);
19997db96d56Sopenharmony_ci
20007db96d56Sopenharmony_cistatic PyObject *
20017db96d56Sopenharmony_ci_curses_color_pair(PyObject *module, PyObject *arg)
20027db96d56Sopenharmony_ci{
20037db96d56Sopenharmony_ci    PyObject *return_value = NULL;
20047db96d56Sopenharmony_ci    int pair_number;
20057db96d56Sopenharmony_ci
20067db96d56Sopenharmony_ci    pair_number = _PyLong_AsInt(arg);
20077db96d56Sopenharmony_ci    if (pair_number == -1 && PyErr_Occurred()) {
20087db96d56Sopenharmony_ci        goto exit;
20097db96d56Sopenharmony_ci    }
20107db96d56Sopenharmony_ci    return_value = _curses_color_pair_impl(module, pair_number);
20117db96d56Sopenharmony_ci
20127db96d56Sopenharmony_ciexit:
20137db96d56Sopenharmony_ci    return return_value;
20147db96d56Sopenharmony_ci}
20157db96d56Sopenharmony_ci
20167db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_curs_set__doc__,
20177db96d56Sopenharmony_ci"curs_set($module, visibility, /)\n"
20187db96d56Sopenharmony_ci"--\n"
20197db96d56Sopenharmony_ci"\n"
20207db96d56Sopenharmony_ci"Set the cursor state.\n"
20217db96d56Sopenharmony_ci"\n"
20227db96d56Sopenharmony_ci"  visibility\n"
20237db96d56Sopenharmony_ci"    0 for invisible, 1 for normal visible, or 2 for very visible.\n"
20247db96d56Sopenharmony_ci"\n"
20257db96d56Sopenharmony_ci"If the terminal supports the visibility requested, the previous cursor\n"
20267db96d56Sopenharmony_ci"state is returned; otherwise, an exception is raised.  On many terminals,\n"
20277db96d56Sopenharmony_ci"the \"visible\" mode is an underline cursor and the \"very visible\" mode is\n"
20287db96d56Sopenharmony_ci"a block cursor.");
20297db96d56Sopenharmony_ci
20307db96d56Sopenharmony_ci#define _CURSES_CURS_SET_METHODDEF    \
20317db96d56Sopenharmony_ci    {"curs_set", (PyCFunction)_curses_curs_set, METH_O, _curses_curs_set__doc__},
20327db96d56Sopenharmony_ci
20337db96d56Sopenharmony_cistatic PyObject *
20347db96d56Sopenharmony_ci_curses_curs_set_impl(PyObject *module, int visibility);
20357db96d56Sopenharmony_ci
20367db96d56Sopenharmony_cistatic PyObject *
20377db96d56Sopenharmony_ci_curses_curs_set(PyObject *module, PyObject *arg)
20387db96d56Sopenharmony_ci{
20397db96d56Sopenharmony_ci    PyObject *return_value = NULL;
20407db96d56Sopenharmony_ci    int visibility;
20417db96d56Sopenharmony_ci
20427db96d56Sopenharmony_ci    visibility = _PyLong_AsInt(arg);
20437db96d56Sopenharmony_ci    if (visibility == -1 && PyErr_Occurred()) {
20447db96d56Sopenharmony_ci        goto exit;
20457db96d56Sopenharmony_ci    }
20467db96d56Sopenharmony_ci    return_value = _curses_curs_set_impl(module, visibility);
20477db96d56Sopenharmony_ci
20487db96d56Sopenharmony_ciexit:
20497db96d56Sopenharmony_ci    return return_value;
20507db96d56Sopenharmony_ci}
20517db96d56Sopenharmony_ci
20527db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_def_prog_mode__doc__,
20537db96d56Sopenharmony_ci"def_prog_mode($module, /)\n"
20547db96d56Sopenharmony_ci"--\n"
20557db96d56Sopenharmony_ci"\n"
20567db96d56Sopenharmony_ci"Save the current terminal mode as the \"program\" mode.\n"
20577db96d56Sopenharmony_ci"\n"
20587db96d56Sopenharmony_ci"The \"program\" mode is the mode when the running program is using curses.\n"
20597db96d56Sopenharmony_ci"\n"
20607db96d56Sopenharmony_ci"Subsequent calls to reset_prog_mode() will restore this mode.");
20617db96d56Sopenharmony_ci
20627db96d56Sopenharmony_ci#define _CURSES_DEF_PROG_MODE_METHODDEF    \
20637db96d56Sopenharmony_ci    {"def_prog_mode", (PyCFunction)_curses_def_prog_mode, METH_NOARGS, _curses_def_prog_mode__doc__},
20647db96d56Sopenharmony_ci
20657db96d56Sopenharmony_cistatic PyObject *
20667db96d56Sopenharmony_ci_curses_def_prog_mode_impl(PyObject *module);
20677db96d56Sopenharmony_ci
20687db96d56Sopenharmony_cistatic PyObject *
20697db96d56Sopenharmony_ci_curses_def_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
20707db96d56Sopenharmony_ci{
20717db96d56Sopenharmony_ci    return _curses_def_prog_mode_impl(module);
20727db96d56Sopenharmony_ci}
20737db96d56Sopenharmony_ci
20747db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_def_shell_mode__doc__,
20757db96d56Sopenharmony_ci"def_shell_mode($module, /)\n"
20767db96d56Sopenharmony_ci"--\n"
20777db96d56Sopenharmony_ci"\n"
20787db96d56Sopenharmony_ci"Save the current terminal mode as the \"shell\" mode.\n"
20797db96d56Sopenharmony_ci"\n"
20807db96d56Sopenharmony_ci"The \"shell\" mode is the mode when the running program is not using curses.\n"
20817db96d56Sopenharmony_ci"\n"
20827db96d56Sopenharmony_ci"Subsequent calls to reset_shell_mode() will restore this mode.");
20837db96d56Sopenharmony_ci
20847db96d56Sopenharmony_ci#define _CURSES_DEF_SHELL_MODE_METHODDEF    \
20857db96d56Sopenharmony_ci    {"def_shell_mode", (PyCFunction)_curses_def_shell_mode, METH_NOARGS, _curses_def_shell_mode__doc__},
20867db96d56Sopenharmony_ci
20877db96d56Sopenharmony_cistatic PyObject *
20887db96d56Sopenharmony_ci_curses_def_shell_mode_impl(PyObject *module);
20897db96d56Sopenharmony_ci
20907db96d56Sopenharmony_cistatic PyObject *
20917db96d56Sopenharmony_ci_curses_def_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
20927db96d56Sopenharmony_ci{
20937db96d56Sopenharmony_ci    return _curses_def_shell_mode_impl(module);
20947db96d56Sopenharmony_ci}
20957db96d56Sopenharmony_ci
20967db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_delay_output__doc__,
20977db96d56Sopenharmony_ci"delay_output($module, ms, /)\n"
20987db96d56Sopenharmony_ci"--\n"
20997db96d56Sopenharmony_ci"\n"
21007db96d56Sopenharmony_ci"Insert a pause in output.\n"
21017db96d56Sopenharmony_ci"\n"
21027db96d56Sopenharmony_ci"  ms\n"
21037db96d56Sopenharmony_ci"    Duration in milliseconds.");
21047db96d56Sopenharmony_ci
21057db96d56Sopenharmony_ci#define _CURSES_DELAY_OUTPUT_METHODDEF    \
21067db96d56Sopenharmony_ci    {"delay_output", (PyCFunction)_curses_delay_output, METH_O, _curses_delay_output__doc__},
21077db96d56Sopenharmony_ci
21087db96d56Sopenharmony_cistatic PyObject *
21097db96d56Sopenharmony_ci_curses_delay_output_impl(PyObject *module, int ms);
21107db96d56Sopenharmony_ci
21117db96d56Sopenharmony_cistatic PyObject *
21127db96d56Sopenharmony_ci_curses_delay_output(PyObject *module, PyObject *arg)
21137db96d56Sopenharmony_ci{
21147db96d56Sopenharmony_ci    PyObject *return_value = NULL;
21157db96d56Sopenharmony_ci    int ms;
21167db96d56Sopenharmony_ci
21177db96d56Sopenharmony_ci    ms = _PyLong_AsInt(arg);
21187db96d56Sopenharmony_ci    if (ms == -1 && PyErr_Occurred()) {
21197db96d56Sopenharmony_ci        goto exit;
21207db96d56Sopenharmony_ci    }
21217db96d56Sopenharmony_ci    return_value = _curses_delay_output_impl(module, ms);
21227db96d56Sopenharmony_ci
21237db96d56Sopenharmony_ciexit:
21247db96d56Sopenharmony_ci    return return_value;
21257db96d56Sopenharmony_ci}
21267db96d56Sopenharmony_ci
21277db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_doupdate__doc__,
21287db96d56Sopenharmony_ci"doupdate($module, /)\n"
21297db96d56Sopenharmony_ci"--\n"
21307db96d56Sopenharmony_ci"\n"
21317db96d56Sopenharmony_ci"Update the physical screen to match the virtual screen.");
21327db96d56Sopenharmony_ci
21337db96d56Sopenharmony_ci#define _CURSES_DOUPDATE_METHODDEF    \
21347db96d56Sopenharmony_ci    {"doupdate", (PyCFunction)_curses_doupdate, METH_NOARGS, _curses_doupdate__doc__},
21357db96d56Sopenharmony_ci
21367db96d56Sopenharmony_cistatic PyObject *
21377db96d56Sopenharmony_ci_curses_doupdate_impl(PyObject *module);
21387db96d56Sopenharmony_ci
21397db96d56Sopenharmony_cistatic PyObject *
21407db96d56Sopenharmony_ci_curses_doupdate(PyObject *module, PyObject *Py_UNUSED(ignored))
21417db96d56Sopenharmony_ci{
21427db96d56Sopenharmony_ci    return _curses_doupdate_impl(module);
21437db96d56Sopenharmony_ci}
21447db96d56Sopenharmony_ci
21457db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_echo__doc__,
21467db96d56Sopenharmony_ci"echo($module, flag=True, /)\n"
21477db96d56Sopenharmony_ci"--\n"
21487db96d56Sopenharmony_ci"\n"
21497db96d56Sopenharmony_ci"Enter echo mode.\n"
21507db96d56Sopenharmony_ci"\n"
21517db96d56Sopenharmony_ci"  flag\n"
21527db96d56Sopenharmony_ci"    If false, the effect is the same as calling noecho().\n"
21537db96d56Sopenharmony_ci"\n"
21547db96d56Sopenharmony_ci"In echo mode, each character input is echoed to the screen as it is entered.");
21557db96d56Sopenharmony_ci
21567db96d56Sopenharmony_ci#define _CURSES_ECHO_METHODDEF    \
21577db96d56Sopenharmony_ci    {"echo", _PyCFunction_CAST(_curses_echo), METH_FASTCALL, _curses_echo__doc__},
21587db96d56Sopenharmony_ci
21597db96d56Sopenharmony_cistatic PyObject *
21607db96d56Sopenharmony_ci_curses_echo_impl(PyObject *module, int flag);
21617db96d56Sopenharmony_ci
21627db96d56Sopenharmony_cistatic PyObject *
21637db96d56Sopenharmony_ci_curses_echo(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
21647db96d56Sopenharmony_ci{
21657db96d56Sopenharmony_ci    PyObject *return_value = NULL;
21667db96d56Sopenharmony_ci    int flag = 1;
21677db96d56Sopenharmony_ci
21687db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("echo", nargs, 0, 1)) {
21697db96d56Sopenharmony_ci        goto exit;
21707db96d56Sopenharmony_ci    }
21717db96d56Sopenharmony_ci    if (nargs < 1) {
21727db96d56Sopenharmony_ci        goto skip_optional;
21737db96d56Sopenharmony_ci    }
21747db96d56Sopenharmony_ci    flag = _PyLong_AsInt(args[0]);
21757db96d56Sopenharmony_ci    if (flag == -1 && PyErr_Occurred()) {
21767db96d56Sopenharmony_ci        goto exit;
21777db96d56Sopenharmony_ci    }
21787db96d56Sopenharmony_ciskip_optional:
21797db96d56Sopenharmony_ci    return_value = _curses_echo_impl(module, flag);
21807db96d56Sopenharmony_ci
21817db96d56Sopenharmony_ciexit:
21827db96d56Sopenharmony_ci    return return_value;
21837db96d56Sopenharmony_ci}
21847db96d56Sopenharmony_ci
21857db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_endwin__doc__,
21867db96d56Sopenharmony_ci"endwin($module, /)\n"
21877db96d56Sopenharmony_ci"--\n"
21887db96d56Sopenharmony_ci"\n"
21897db96d56Sopenharmony_ci"De-initialize the library, and return terminal to normal status.");
21907db96d56Sopenharmony_ci
21917db96d56Sopenharmony_ci#define _CURSES_ENDWIN_METHODDEF    \
21927db96d56Sopenharmony_ci    {"endwin", (PyCFunction)_curses_endwin, METH_NOARGS, _curses_endwin__doc__},
21937db96d56Sopenharmony_ci
21947db96d56Sopenharmony_cistatic PyObject *
21957db96d56Sopenharmony_ci_curses_endwin_impl(PyObject *module);
21967db96d56Sopenharmony_ci
21977db96d56Sopenharmony_cistatic PyObject *
21987db96d56Sopenharmony_ci_curses_endwin(PyObject *module, PyObject *Py_UNUSED(ignored))
21997db96d56Sopenharmony_ci{
22007db96d56Sopenharmony_ci    return _curses_endwin_impl(module);
22017db96d56Sopenharmony_ci}
22027db96d56Sopenharmony_ci
22037db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_erasechar__doc__,
22047db96d56Sopenharmony_ci"erasechar($module, /)\n"
22057db96d56Sopenharmony_ci"--\n"
22067db96d56Sopenharmony_ci"\n"
22077db96d56Sopenharmony_ci"Return the user\'s current erase character.");
22087db96d56Sopenharmony_ci
22097db96d56Sopenharmony_ci#define _CURSES_ERASECHAR_METHODDEF    \
22107db96d56Sopenharmony_ci    {"erasechar", (PyCFunction)_curses_erasechar, METH_NOARGS, _curses_erasechar__doc__},
22117db96d56Sopenharmony_ci
22127db96d56Sopenharmony_cistatic PyObject *
22137db96d56Sopenharmony_ci_curses_erasechar_impl(PyObject *module);
22147db96d56Sopenharmony_ci
22157db96d56Sopenharmony_cistatic PyObject *
22167db96d56Sopenharmony_ci_curses_erasechar(PyObject *module, PyObject *Py_UNUSED(ignored))
22177db96d56Sopenharmony_ci{
22187db96d56Sopenharmony_ci    return _curses_erasechar_impl(module);
22197db96d56Sopenharmony_ci}
22207db96d56Sopenharmony_ci
22217db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_flash__doc__,
22227db96d56Sopenharmony_ci"flash($module, /)\n"
22237db96d56Sopenharmony_ci"--\n"
22247db96d56Sopenharmony_ci"\n"
22257db96d56Sopenharmony_ci"Flash the screen.\n"
22267db96d56Sopenharmony_ci"\n"
22277db96d56Sopenharmony_ci"That is, change it to reverse-video and then change it back in a short interval.");
22287db96d56Sopenharmony_ci
22297db96d56Sopenharmony_ci#define _CURSES_FLASH_METHODDEF    \
22307db96d56Sopenharmony_ci    {"flash", (PyCFunction)_curses_flash, METH_NOARGS, _curses_flash__doc__},
22317db96d56Sopenharmony_ci
22327db96d56Sopenharmony_cistatic PyObject *
22337db96d56Sopenharmony_ci_curses_flash_impl(PyObject *module);
22347db96d56Sopenharmony_ci
22357db96d56Sopenharmony_cistatic PyObject *
22367db96d56Sopenharmony_ci_curses_flash(PyObject *module, PyObject *Py_UNUSED(ignored))
22377db96d56Sopenharmony_ci{
22387db96d56Sopenharmony_ci    return _curses_flash_impl(module);
22397db96d56Sopenharmony_ci}
22407db96d56Sopenharmony_ci
22417db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_flushinp__doc__,
22427db96d56Sopenharmony_ci"flushinp($module, /)\n"
22437db96d56Sopenharmony_ci"--\n"
22447db96d56Sopenharmony_ci"\n"
22457db96d56Sopenharmony_ci"Flush all input buffers.\n"
22467db96d56Sopenharmony_ci"\n"
22477db96d56Sopenharmony_ci"This throws away any typeahead that has been typed by the user and has not\n"
22487db96d56Sopenharmony_ci"yet been processed by the program.");
22497db96d56Sopenharmony_ci
22507db96d56Sopenharmony_ci#define _CURSES_FLUSHINP_METHODDEF    \
22517db96d56Sopenharmony_ci    {"flushinp", (PyCFunction)_curses_flushinp, METH_NOARGS, _curses_flushinp__doc__},
22527db96d56Sopenharmony_ci
22537db96d56Sopenharmony_cistatic PyObject *
22547db96d56Sopenharmony_ci_curses_flushinp_impl(PyObject *module);
22557db96d56Sopenharmony_ci
22567db96d56Sopenharmony_cistatic PyObject *
22577db96d56Sopenharmony_ci_curses_flushinp(PyObject *module, PyObject *Py_UNUSED(ignored))
22587db96d56Sopenharmony_ci{
22597db96d56Sopenharmony_ci    return _curses_flushinp_impl(module);
22607db96d56Sopenharmony_ci}
22617db96d56Sopenharmony_ci
22627db96d56Sopenharmony_ci#if defined(getsyx)
22637db96d56Sopenharmony_ci
22647db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_getsyx__doc__,
22657db96d56Sopenharmony_ci"getsyx($module, /)\n"
22667db96d56Sopenharmony_ci"--\n"
22677db96d56Sopenharmony_ci"\n"
22687db96d56Sopenharmony_ci"Return the current coordinates of the virtual screen cursor.\n"
22697db96d56Sopenharmony_ci"\n"
22707db96d56Sopenharmony_ci"Return a (y, x) tuple.  If leaveok is currently true, return (-1, -1).");
22717db96d56Sopenharmony_ci
22727db96d56Sopenharmony_ci#define _CURSES_GETSYX_METHODDEF    \
22737db96d56Sopenharmony_ci    {"getsyx", (PyCFunction)_curses_getsyx, METH_NOARGS, _curses_getsyx__doc__},
22747db96d56Sopenharmony_ci
22757db96d56Sopenharmony_cistatic PyObject *
22767db96d56Sopenharmony_ci_curses_getsyx_impl(PyObject *module);
22777db96d56Sopenharmony_ci
22787db96d56Sopenharmony_cistatic PyObject *
22797db96d56Sopenharmony_ci_curses_getsyx(PyObject *module, PyObject *Py_UNUSED(ignored))
22807db96d56Sopenharmony_ci{
22817db96d56Sopenharmony_ci    return _curses_getsyx_impl(module);
22827db96d56Sopenharmony_ci}
22837db96d56Sopenharmony_ci
22847db96d56Sopenharmony_ci#endif /* defined(getsyx) */
22857db96d56Sopenharmony_ci
22867db96d56Sopenharmony_ci#if defined(NCURSES_MOUSE_VERSION)
22877db96d56Sopenharmony_ci
22887db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_getmouse__doc__,
22897db96d56Sopenharmony_ci"getmouse($module, /)\n"
22907db96d56Sopenharmony_ci"--\n"
22917db96d56Sopenharmony_ci"\n"
22927db96d56Sopenharmony_ci"Retrieve the queued mouse event.\n"
22937db96d56Sopenharmony_ci"\n"
22947db96d56Sopenharmony_ci"After getch() returns KEY_MOUSE to signal a mouse event, this function\n"
22957db96d56Sopenharmony_ci"returns a 5-tuple (id, x, y, z, bstate).");
22967db96d56Sopenharmony_ci
22977db96d56Sopenharmony_ci#define _CURSES_GETMOUSE_METHODDEF    \
22987db96d56Sopenharmony_ci    {"getmouse", (PyCFunction)_curses_getmouse, METH_NOARGS, _curses_getmouse__doc__},
22997db96d56Sopenharmony_ci
23007db96d56Sopenharmony_cistatic PyObject *
23017db96d56Sopenharmony_ci_curses_getmouse_impl(PyObject *module);
23027db96d56Sopenharmony_ci
23037db96d56Sopenharmony_cistatic PyObject *
23047db96d56Sopenharmony_ci_curses_getmouse(PyObject *module, PyObject *Py_UNUSED(ignored))
23057db96d56Sopenharmony_ci{
23067db96d56Sopenharmony_ci    return _curses_getmouse_impl(module);
23077db96d56Sopenharmony_ci}
23087db96d56Sopenharmony_ci
23097db96d56Sopenharmony_ci#endif /* defined(NCURSES_MOUSE_VERSION) */
23107db96d56Sopenharmony_ci
23117db96d56Sopenharmony_ci#if defined(NCURSES_MOUSE_VERSION)
23127db96d56Sopenharmony_ci
23137db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_ungetmouse__doc__,
23147db96d56Sopenharmony_ci"ungetmouse($module, id, x, y, z, bstate, /)\n"
23157db96d56Sopenharmony_ci"--\n"
23167db96d56Sopenharmony_ci"\n"
23177db96d56Sopenharmony_ci"Push a KEY_MOUSE event onto the input queue.\n"
23187db96d56Sopenharmony_ci"\n"
23197db96d56Sopenharmony_ci"The following getmouse() will return the given state data.");
23207db96d56Sopenharmony_ci
23217db96d56Sopenharmony_ci#define _CURSES_UNGETMOUSE_METHODDEF    \
23227db96d56Sopenharmony_ci    {"ungetmouse", _PyCFunction_CAST(_curses_ungetmouse), METH_FASTCALL, _curses_ungetmouse__doc__},
23237db96d56Sopenharmony_ci
23247db96d56Sopenharmony_cistatic PyObject *
23257db96d56Sopenharmony_ci_curses_ungetmouse_impl(PyObject *module, short id, int x, int y, int z,
23267db96d56Sopenharmony_ci                        unsigned long bstate);
23277db96d56Sopenharmony_ci
23287db96d56Sopenharmony_cistatic PyObject *
23297db96d56Sopenharmony_ci_curses_ungetmouse(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
23307db96d56Sopenharmony_ci{
23317db96d56Sopenharmony_ci    PyObject *return_value = NULL;
23327db96d56Sopenharmony_ci    short id;
23337db96d56Sopenharmony_ci    int x;
23347db96d56Sopenharmony_ci    int y;
23357db96d56Sopenharmony_ci    int z;
23367db96d56Sopenharmony_ci    unsigned long bstate;
23377db96d56Sopenharmony_ci
23387db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("ungetmouse", nargs, 5, 5)) {
23397db96d56Sopenharmony_ci        goto exit;
23407db96d56Sopenharmony_ci    }
23417db96d56Sopenharmony_ci    {
23427db96d56Sopenharmony_ci        long ival = PyLong_AsLong(args[0]);
23437db96d56Sopenharmony_ci        if (ival == -1 && PyErr_Occurred()) {
23447db96d56Sopenharmony_ci            goto exit;
23457db96d56Sopenharmony_ci        }
23467db96d56Sopenharmony_ci        else if (ival < SHRT_MIN) {
23477db96d56Sopenharmony_ci            PyErr_SetString(PyExc_OverflowError,
23487db96d56Sopenharmony_ci                            "signed short integer is less than minimum");
23497db96d56Sopenharmony_ci            goto exit;
23507db96d56Sopenharmony_ci        }
23517db96d56Sopenharmony_ci        else if (ival > SHRT_MAX) {
23527db96d56Sopenharmony_ci            PyErr_SetString(PyExc_OverflowError,
23537db96d56Sopenharmony_ci                            "signed short integer is greater than maximum");
23547db96d56Sopenharmony_ci            goto exit;
23557db96d56Sopenharmony_ci        }
23567db96d56Sopenharmony_ci        else {
23577db96d56Sopenharmony_ci            id = (short) ival;
23587db96d56Sopenharmony_ci        }
23597db96d56Sopenharmony_ci    }
23607db96d56Sopenharmony_ci    x = _PyLong_AsInt(args[1]);
23617db96d56Sopenharmony_ci    if (x == -1 && PyErr_Occurred()) {
23627db96d56Sopenharmony_ci        goto exit;
23637db96d56Sopenharmony_ci    }
23647db96d56Sopenharmony_ci    y = _PyLong_AsInt(args[2]);
23657db96d56Sopenharmony_ci    if (y == -1 && PyErr_Occurred()) {
23667db96d56Sopenharmony_ci        goto exit;
23677db96d56Sopenharmony_ci    }
23687db96d56Sopenharmony_ci    z = _PyLong_AsInt(args[3]);
23697db96d56Sopenharmony_ci    if (z == -1 && PyErr_Occurred()) {
23707db96d56Sopenharmony_ci        goto exit;
23717db96d56Sopenharmony_ci    }
23727db96d56Sopenharmony_ci    if (!PyLong_Check(args[4])) {
23737db96d56Sopenharmony_ci        _PyArg_BadArgument("ungetmouse", "argument 5", "int", args[4]);
23747db96d56Sopenharmony_ci        goto exit;
23757db96d56Sopenharmony_ci    }
23767db96d56Sopenharmony_ci    bstate = PyLong_AsUnsignedLongMask(args[4]);
23777db96d56Sopenharmony_ci    return_value = _curses_ungetmouse_impl(module, id, x, y, z, bstate);
23787db96d56Sopenharmony_ci
23797db96d56Sopenharmony_ciexit:
23807db96d56Sopenharmony_ci    return return_value;
23817db96d56Sopenharmony_ci}
23827db96d56Sopenharmony_ci
23837db96d56Sopenharmony_ci#endif /* defined(NCURSES_MOUSE_VERSION) */
23847db96d56Sopenharmony_ci
23857db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_getwin__doc__,
23867db96d56Sopenharmony_ci"getwin($module, file, /)\n"
23877db96d56Sopenharmony_ci"--\n"
23887db96d56Sopenharmony_ci"\n"
23897db96d56Sopenharmony_ci"Read window related data stored in the file by an earlier putwin() call.\n"
23907db96d56Sopenharmony_ci"\n"
23917db96d56Sopenharmony_ci"The routine then creates and initializes a new window using that data,\n"
23927db96d56Sopenharmony_ci"returning the new window object.");
23937db96d56Sopenharmony_ci
23947db96d56Sopenharmony_ci#define _CURSES_GETWIN_METHODDEF    \
23957db96d56Sopenharmony_ci    {"getwin", (PyCFunction)_curses_getwin, METH_O, _curses_getwin__doc__},
23967db96d56Sopenharmony_ci
23977db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_halfdelay__doc__,
23987db96d56Sopenharmony_ci"halfdelay($module, tenths, /)\n"
23997db96d56Sopenharmony_ci"--\n"
24007db96d56Sopenharmony_ci"\n"
24017db96d56Sopenharmony_ci"Enter half-delay mode.\n"
24027db96d56Sopenharmony_ci"\n"
24037db96d56Sopenharmony_ci"  tenths\n"
24047db96d56Sopenharmony_ci"    Maximal blocking delay in tenths of seconds (1 - 255).\n"
24057db96d56Sopenharmony_ci"\n"
24067db96d56Sopenharmony_ci"Use nocbreak() to leave half-delay mode.");
24077db96d56Sopenharmony_ci
24087db96d56Sopenharmony_ci#define _CURSES_HALFDELAY_METHODDEF    \
24097db96d56Sopenharmony_ci    {"halfdelay", (PyCFunction)_curses_halfdelay, METH_O, _curses_halfdelay__doc__},
24107db96d56Sopenharmony_ci
24117db96d56Sopenharmony_cistatic PyObject *
24127db96d56Sopenharmony_ci_curses_halfdelay_impl(PyObject *module, unsigned char tenths);
24137db96d56Sopenharmony_ci
24147db96d56Sopenharmony_cistatic PyObject *
24157db96d56Sopenharmony_ci_curses_halfdelay(PyObject *module, PyObject *arg)
24167db96d56Sopenharmony_ci{
24177db96d56Sopenharmony_ci    PyObject *return_value = NULL;
24187db96d56Sopenharmony_ci    unsigned char tenths;
24197db96d56Sopenharmony_ci
24207db96d56Sopenharmony_ci    {
24217db96d56Sopenharmony_ci        long ival = PyLong_AsLong(arg);
24227db96d56Sopenharmony_ci        if (ival == -1 && PyErr_Occurred()) {
24237db96d56Sopenharmony_ci            goto exit;
24247db96d56Sopenharmony_ci        }
24257db96d56Sopenharmony_ci        else if (ival < 0) {
24267db96d56Sopenharmony_ci            PyErr_SetString(PyExc_OverflowError,
24277db96d56Sopenharmony_ci                            "unsigned byte integer is less than minimum");
24287db96d56Sopenharmony_ci            goto exit;
24297db96d56Sopenharmony_ci        }
24307db96d56Sopenharmony_ci        else if (ival > UCHAR_MAX) {
24317db96d56Sopenharmony_ci            PyErr_SetString(PyExc_OverflowError,
24327db96d56Sopenharmony_ci                            "unsigned byte integer is greater than maximum");
24337db96d56Sopenharmony_ci            goto exit;
24347db96d56Sopenharmony_ci        }
24357db96d56Sopenharmony_ci        else {
24367db96d56Sopenharmony_ci            tenths = (unsigned char) ival;
24377db96d56Sopenharmony_ci        }
24387db96d56Sopenharmony_ci    }
24397db96d56Sopenharmony_ci    return_value = _curses_halfdelay_impl(module, tenths);
24407db96d56Sopenharmony_ci
24417db96d56Sopenharmony_ciexit:
24427db96d56Sopenharmony_ci    return return_value;
24437db96d56Sopenharmony_ci}
24447db96d56Sopenharmony_ci
24457db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_has_colors__doc__,
24467db96d56Sopenharmony_ci"has_colors($module, /)\n"
24477db96d56Sopenharmony_ci"--\n"
24487db96d56Sopenharmony_ci"\n"
24497db96d56Sopenharmony_ci"Return True if the terminal can display colors; otherwise, return False.");
24507db96d56Sopenharmony_ci
24517db96d56Sopenharmony_ci#define _CURSES_HAS_COLORS_METHODDEF    \
24527db96d56Sopenharmony_ci    {"has_colors", (PyCFunction)_curses_has_colors, METH_NOARGS, _curses_has_colors__doc__},
24537db96d56Sopenharmony_ci
24547db96d56Sopenharmony_cistatic PyObject *
24557db96d56Sopenharmony_ci_curses_has_colors_impl(PyObject *module);
24567db96d56Sopenharmony_ci
24577db96d56Sopenharmony_cistatic PyObject *
24587db96d56Sopenharmony_ci_curses_has_colors(PyObject *module, PyObject *Py_UNUSED(ignored))
24597db96d56Sopenharmony_ci{
24607db96d56Sopenharmony_ci    return _curses_has_colors_impl(module);
24617db96d56Sopenharmony_ci}
24627db96d56Sopenharmony_ci
24637db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_has_ic__doc__,
24647db96d56Sopenharmony_ci"has_ic($module, /)\n"
24657db96d56Sopenharmony_ci"--\n"
24667db96d56Sopenharmony_ci"\n"
24677db96d56Sopenharmony_ci"Return True if the terminal has insert- and delete-character capabilities.");
24687db96d56Sopenharmony_ci
24697db96d56Sopenharmony_ci#define _CURSES_HAS_IC_METHODDEF    \
24707db96d56Sopenharmony_ci    {"has_ic", (PyCFunction)_curses_has_ic, METH_NOARGS, _curses_has_ic__doc__},
24717db96d56Sopenharmony_ci
24727db96d56Sopenharmony_cistatic PyObject *
24737db96d56Sopenharmony_ci_curses_has_ic_impl(PyObject *module);
24747db96d56Sopenharmony_ci
24757db96d56Sopenharmony_cistatic PyObject *
24767db96d56Sopenharmony_ci_curses_has_ic(PyObject *module, PyObject *Py_UNUSED(ignored))
24777db96d56Sopenharmony_ci{
24787db96d56Sopenharmony_ci    return _curses_has_ic_impl(module);
24797db96d56Sopenharmony_ci}
24807db96d56Sopenharmony_ci
24817db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_has_il__doc__,
24827db96d56Sopenharmony_ci"has_il($module, /)\n"
24837db96d56Sopenharmony_ci"--\n"
24847db96d56Sopenharmony_ci"\n"
24857db96d56Sopenharmony_ci"Return True if the terminal has insert- and delete-line capabilities.");
24867db96d56Sopenharmony_ci
24877db96d56Sopenharmony_ci#define _CURSES_HAS_IL_METHODDEF    \
24887db96d56Sopenharmony_ci    {"has_il", (PyCFunction)_curses_has_il, METH_NOARGS, _curses_has_il__doc__},
24897db96d56Sopenharmony_ci
24907db96d56Sopenharmony_cistatic PyObject *
24917db96d56Sopenharmony_ci_curses_has_il_impl(PyObject *module);
24927db96d56Sopenharmony_ci
24937db96d56Sopenharmony_cistatic PyObject *
24947db96d56Sopenharmony_ci_curses_has_il(PyObject *module, PyObject *Py_UNUSED(ignored))
24957db96d56Sopenharmony_ci{
24967db96d56Sopenharmony_ci    return _curses_has_il_impl(module);
24977db96d56Sopenharmony_ci}
24987db96d56Sopenharmony_ci
24997db96d56Sopenharmony_ci#if defined(HAVE_CURSES_HAS_KEY)
25007db96d56Sopenharmony_ci
25017db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_has_key__doc__,
25027db96d56Sopenharmony_ci"has_key($module, key, /)\n"
25037db96d56Sopenharmony_ci"--\n"
25047db96d56Sopenharmony_ci"\n"
25057db96d56Sopenharmony_ci"Return True if the current terminal type recognizes a key with that value.\n"
25067db96d56Sopenharmony_ci"\n"
25077db96d56Sopenharmony_ci"  key\n"
25087db96d56Sopenharmony_ci"    Key number.");
25097db96d56Sopenharmony_ci
25107db96d56Sopenharmony_ci#define _CURSES_HAS_KEY_METHODDEF    \
25117db96d56Sopenharmony_ci    {"has_key", (PyCFunction)_curses_has_key, METH_O, _curses_has_key__doc__},
25127db96d56Sopenharmony_ci
25137db96d56Sopenharmony_cistatic PyObject *
25147db96d56Sopenharmony_ci_curses_has_key_impl(PyObject *module, int key);
25157db96d56Sopenharmony_ci
25167db96d56Sopenharmony_cistatic PyObject *
25177db96d56Sopenharmony_ci_curses_has_key(PyObject *module, PyObject *arg)
25187db96d56Sopenharmony_ci{
25197db96d56Sopenharmony_ci    PyObject *return_value = NULL;
25207db96d56Sopenharmony_ci    int key;
25217db96d56Sopenharmony_ci
25227db96d56Sopenharmony_ci    key = _PyLong_AsInt(arg);
25237db96d56Sopenharmony_ci    if (key == -1 && PyErr_Occurred()) {
25247db96d56Sopenharmony_ci        goto exit;
25257db96d56Sopenharmony_ci    }
25267db96d56Sopenharmony_ci    return_value = _curses_has_key_impl(module, key);
25277db96d56Sopenharmony_ci
25287db96d56Sopenharmony_ciexit:
25297db96d56Sopenharmony_ci    return return_value;
25307db96d56Sopenharmony_ci}
25317db96d56Sopenharmony_ci
25327db96d56Sopenharmony_ci#endif /* defined(HAVE_CURSES_HAS_KEY) */
25337db96d56Sopenharmony_ci
25347db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_init_color__doc__,
25357db96d56Sopenharmony_ci"init_color($module, color_number, r, g, b, /)\n"
25367db96d56Sopenharmony_ci"--\n"
25377db96d56Sopenharmony_ci"\n"
25387db96d56Sopenharmony_ci"Change the definition of a color.\n"
25397db96d56Sopenharmony_ci"\n"
25407db96d56Sopenharmony_ci"  color_number\n"
25417db96d56Sopenharmony_ci"    The number of the color to be changed (0 - (COLORS-1)).\n"
25427db96d56Sopenharmony_ci"  r\n"
25437db96d56Sopenharmony_ci"    Red component (0 - 1000).\n"
25447db96d56Sopenharmony_ci"  g\n"
25457db96d56Sopenharmony_ci"    Green component (0 - 1000).\n"
25467db96d56Sopenharmony_ci"  b\n"
25477db96d56Sopenharmony_ci"    Blue component (0 - 1000).\n"
25487db96d56Sopenharmony_ci"\n"
25497db96d56Sopenharmony_ci"When init_color() is used, all occurrences of that color on the screen\n"
25507db96d56Sopenharmony_ci"immediately change to the new definition.  This function is a no-op on\n"
25517db96d56Sopenharmony_ci"most terminals; it is active only if can_change_color() returns true.");
25527db96d56Sopenharmony_ci
25537db96d56Sopenharmony_ci#define _CURSES_INIT_COLOR_METHODDEF    \
25547db96d56Sopenharmony_ci    {"init_color", _PyCFunction_CAST(_curses_init_color), METH_FASTCALL, _curses_init_color__doc__},
25557db96d56Sopenharmony_ci
25567db96d56Sopenharmony_cistatic PyObject *
25577db96d56Sopenharmony_ci_curses_init_color_impl(PyObject *module, int color_number, short r, short g,
25587db96d56Sopenharmony_ci                        short b);
25597db96d56Sopenharmony_ci
25607db96d56Sopenharmony_cistatic PyObject *
25617db96d56Sopenharmony_ci_curses_init_color(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
25627db96d56Sopenharmony_ci{
25637db96d56Sopenharmony_ci    PyObject *return_value = NULL;
25647db96d56Sopenharmony_ci    int color_number;
25657db96d56Sopenharmony_ci    short r;
25667db96d56Sopenharmony_ci    short g;
25677db96d56Sopenharmony_ci    short b;
25687db96d56Sopenharmony_ci
25697db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("init_color", nargs, 4, 4)) {
25707db96d56Sopenharmony_ci        goto exit;
25717db96d56Sopenharmony_ci    }
25727db96d56Sopenharmony_ci    if (!color_converter(args[0], &color_number)) {
25737db96d56Sopenharmony_ci        goto exit;
25747db96d56Sopenharmony_ci    }
25757db96d56Sopenharmony_ci    if (!component_converter(args[1], &r)) {
25767db96d56Sopenharmony_ci        goto exit;
25777db96d56Sopenharmony_ci    }
25787db96d56Sopenharmony_ci    if (!component_converter(args[2], &g)) {
25797db96d56Sopenharmony_ci        goto exit;
25807db96d56Sopenharmony_ci    }
25817db96d56Sopenharmony_ci    if (!component_converter(args[3], &b)) {
25827db96d56Sopenharmony_ci        goto exit;
25837db96d56Sopenharmony_ci    }
25847db96d56Sopenharmony_ci    return_value = _curses_init_color_impl(module, color_number, r, g, b);
25857db96d56Sopenharmony_ci
25867db96d56Sopenharmony_ciexit:
25877db96d56Sopenharmony_ci    return return_value;
25887db96d56Sopenharmony_ci}
25897db96d56Sopenharmony_ci
25907db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_init_pair__doc__,
25917db96d56Sopenharmony_ci"init_pair($module, pair_number, fg, bg, /)\n"
25927db96d56Sopenharmony_ci"--\n"
25937db96d56Sopenharmony_ci"\n"
25947db96d56Sopenharmony_ci"Change the definition of a color-pair.\n"
25957db96d56Sopenharmony_ci"\n"
25967db96d56Sopenharmony_ci"  pair_number\n"
25977db96d56Sopenharmony_ci"    The number of the color-pair to be changed (1 - (COLOR_PAIRS-1)).\n"
25987db96d56Sopenharmony_ci"  fg\n"
25997db96d56Sopenharmony_ci"    Foreground color number (-1 - (COLORS-1)).\n"
26007db96d56Sopenharmony_ci"  bg\n"
26017db96d56Sopenharmony_ci"    Background color number (-1 - (COLORS-1)).\n"
26027db96d56Sopenharmony_ci"\n"
26037db96d56Sopenharmony_ci"If the color-pair was previously initialized, the screen is refreshed and\n"
26047db96d56Sopenharmony_ci"all occurrences of that color-pair are changed to the new definition.");
26057db96d56Sopenharmony_ci
26067db96d56Sopenharmony_ci#define _CURSES_INIT_PAIR_METHODDEF    \
26077db96d56Sopenharmony_ci    {"init_pair", _PyCFunction_CAST(_curses_init_pair), METH_FASTCALL, _curses_init_pair__doc__},
26087db96d56Sopenharmony_ci
26097db96d56Sopenharmony_cistatic PyObject *
26107db96d56Sopenharmony_ci_curses_init_pair_impl(PyObject *module, int pair_number, int fg, int bg);
26117db96d56Sopenharmony_ci
26127db96d56Sopenharmony_cistatic PyObject *
26137db96d56Sopenharmony_ci_curses_init_pair(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
26147db96d56Sopenharmony_ci{
26157db96d56Sopenharmony_ci    PyObject *return_value = NULL;
26167db96d56Sopenharmony_ci    int pair_number;
26177db96d56Sopenharmony_ci    int fg;
26187db96d56Sopenharmony_ci    int bg;
26197db96d56Sopenharmony_ci
26207db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("init_pair", nargs, 3, 3)) {
26217db96d56Sopenharmony_ci        goto exit;
26227db96d56Sopenharmony_ci    }
26237db96d56Sopenharmony_ci    if (!pair_converter(args[0], &pair_number)) {
26247db96d56Sopenharmony_ci        goto exit;
26257db96d56Sopenharmony_ci    }
26267db96d56Sopenharmony_ci    if (!color_allow_default_converter(args[1], &fg)) {
26277db96d56Sopenharmony_ci        goto exit;
26287db96d56Sopenharmony_ci    }
26297db96d56Sopenharmony_ci    if (!color_allow_default_converter(args[2], &bg)) {
26307db96d56Sopenharmony_ci        goto exit;
26317db96d56Sopenharmony_ci    }
26327db96d56Sopenharmony_ci    return_value = _curses_init_pair_impl(module, pair_number, fg, bg);
26337db96d56Sopenharmony_ci
26347db96d56Sopenharmony_ciexit:
26357db96d56Sopenharmony_ci    return return_value;
26367db96d56Sopenharmony_ci}
26377db96d56Sopenharmony_ci
26387db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_initscr__doc__,
26397db96d56Sopenharmony_ci"initscr($module, /)\n"
26407db96d56Sopenharmony_ci"--\n"
26417db96d56Sopenharmony_ci"\n"
26427db96d56Sopenharmony_ci"Initialize the library.\n"
26437db96d56Sopenharmony_ci"\n"
26447db96d56Sopenharmony_ci"Return a WindowObject which represents the whole screen.");
26457db96d56Sopenharmony_ci
26467db96d56Sopenharmony_ci#define _CURSES_INITSCR_METHODDEF    \
26477db96d56Sopenharmony_ci    {"initscr", (PyCFunction)_curses_initscr, METH_NOARGS, _curses_initscr__doc__},
26487db96d56Sopenharmony_ci
26497db96d56Sopenharmony_cistatic PyObject *
26507db96d56Sopenharmony_ci_curses_initscr_impl(PyObject *module);
26517db96d56Sopenharmony_ci
26527db96d56Sopenharmony_cistatic PyObject *
26537db96d56Sopenharmony_ci_curses_initscr(PyObject *module, PyObject *Py_UNUSED(ignored))
26547db96d56Sopenharmony_ci{
26557db96d56Sopenharmony_ci    return _curses_initscr_impl(module);
26567db96d56Sopenharmony_ci}
26577db96d56Sopenharmony_ci
26587db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_setupterm__doc__,
26597db96d56Sopenharmony_ci"setupterm($module, /, term=None, fd=-1)\n"
26607db96d56Sopenharmony_ci"--\n"
26617db96d56Sopenharmony_ci"\n"
26627db96d56Sopenharmony_ci"Initialize the terminal.\n"
26637db96d56Sopenharmony_ci"\n"
26647db96d56Sopenharmony_ci"  term\n"
26657db96d56Sopenharmony_ci"    Terminal name.\n"
26667db96d56Sopenharmony_ci"    If omitted, the value of the TERM environment variable will be used.\n"
26677db96d56Sopenharmony_ci"  fd\n"
26687db96d56Sopenharmony_ci"    File descriptor to which any initialization sequences will be sent.\n"
26697db96d56Sopenharmony_ci"    If not supplied, the file descriptor for sys.stdout will be used.");
26707db96d56Sopenharmony_ci
26717db96d56Sopenharmony_ci#define _CURSES_SETUPTERM_METHODDEF    \
26727db96d56Sopenharmony_ci    {"setupterm", _PyCFunction_CAST(_curses_setupterm), METH_FASTCALL|METH_KEYWORDS, _curses_setupterm__doc__},
26737db96d56Sopenharmony_ci
26747db96d56Sopenharmony_cistatic PyObject *
26757db96d56Sopenharmony_ci_curses_setupterm_impl(PyObject *module, const char *term, int fd);
26767db96d56Sopenharmony_ci
26777db96d56Sopenharmony_cistatic PyObject *
26787db96d56Sopenharmony_ci_curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
26797db96d56Sopenharmony_ci{
26807db96d56Sopenharmony_ci    PyObject *return_value = NULL;
26817db96d56Sopenharmony_ci    static const char * const _keywords[] = {"term", "fd", NULL};
26827db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "setupterm", 0};
26837db96d56Sopenharmony_ci    PyObject *argsbuf[2];
26847db96d56Sopenharmony_ci    Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
26857db96d56Sopenharmony_ci    const char *term = NULL;
26867db96d56Sopenharmony_ci    int fd = -1;
26877db96d56Sopenharmony_ci
26887db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
26897db96d56Sopenharmony_ci    if (!args) {
26907db96d56Sopenharmony_ci        goto exit;
26917db96d56Sopenharmony_ci    }
26927db96d56Sopenharmony_ci    if (!noptargs) {
26937db96d56Sopenharmony_ci        goto skip_optional_pos;
26947db96d56Sopenharmony_ci    }
26957db96d56Sopenharmony_ci    if (args[0]) {
26967db96d56Sopenharmony_ci        if (args[0] == Py_None) {
26977db96d56Sopenharmony_ci            term = NULL;
26987db96d56Sopenharmony_ci        }
26997db96d56Sopenharmony_ci        else if (PyUnicode_Check(args[0])) {
27007db96d56Sopenharmony_ci            Py_ssize_t term_length;
27017db96d56Sopenharmony_ci            term = PyUnicode_AsUTF8AndSize(args[0], &term_length);
27027db96d56Sopenharmony_ci            if (term == NULL) {
27037db96d56Sopenharmony_ci                goto exit;
27047db96d56Sopenharmony_ci            }
27057db96d56Sopenharmony_ci            if (strlen(term) != (size_t)term_length) {
27067db96d56Sopenharmony_ci                PyErr_SetString(PyExc_ValueError, "embedded null character");
27077db96d56Sopenharmony_ci                goto exit;
27087db96d56Sopenharmony_ci            }
27097db96d56Sopenharmony_ci        }
27107db96d56Sopenharmony_ci        else {
27117db96d56Sopenharmony_ci            _PyArg_BadArgument("setupterm", "argument 'term'", "str or None", args[0]);
27127db96d56Sopenharmony_ci            goto exit;
27137db96d56Sopenharmony_ci        }
27147db96d56Sopenharmony_ci        if (!--noptargs) {
27157db96d56Sopenharmony_ci            goto skip_optional_pos;
27167db96d56Sopenharmony_ci        }
27177db96d56Sopenharmony_ci    }
27187db96d56Sopenharmony_ci    fd = _PyLong_AsInt(args[1]);
27197db96d56Sopenharmony_ci    if (fd == -1 && PyErr_Occurred()) {
27207db96d56Sopenharmony_ci        goto exit;
27217db96d56Sopenharmony_ci    }
27227db96d56Sopenharmony_ciskip_optional_pos:
27237db96d56Sopenharmony_ci    return_value = _curses_setupterm_impl(module, term, fd);
27247db96d56Sopenharmony_ci
27257db96d56Sopenharmony_ciexit:
27267db96d56Sopenharmony_ci    return return_value;
27277db96d56Sopenharmony_ci}
27287db96d56Sopenharmony_ci
27297db96d56Sopenharmony_ci#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
27307db96d56Sopenharmony_ci
27317db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_get_escdelay__doc__,
27327db96d56Sopenharmony_ci"get_escdelay($module, /)\n"
27337db96d56Sopenharmony_ci"--\n"
27347db96d56Sopenharmony_ci"\n"
27357db96d56Sopenharmony_ci"Gets the curses ESCDELAY setting.\n"
27367db96d56Sopenharmony_ci"\n"
27377db96d56Sopenharmony_ci"Gets the number of milliseconds to wait after reading an escape character,\n"
27387db96d56Sopenharmony_ci"to distinguish between an individual escape character entered on the\n"
27397db96d56Sopenharmony_ci"keyboard from escape sequences sent by cursor and function keys.");
27407db96d56Sopenharmony_ci
27417db96d56Sopenharmony_ci#define _CURSES_GET_ESCDELAY_METHODDEF    \
27427db96d56Sopenharmony_ci    {"get_escdelay", (PyCFunction)_curses_get_escdelay, METH_NOARGS, _curses_get_escdelay__doc__},
27437db96d56Sopenharmony_ci
27447db96d56Sopenharmony_cistatic PyObject *
27457db96d56Sopenharmony_ci_curses_get_escdelay_impl(PyObject *module);
27467db96d56Sopenharmony_ci
27477db96d56Sopenharmony_cistatic PyObject *
27487db96d56Sopenharmony_ci_curses_get_escdelay(PyObject *module, PyObject *Py_UNUSED(ignored))
27497db96d56Sopenharmony_ci{
27507db96d56Sopenharmony_ci    return _curses_get_escdelay_impl(module);
27517db96d56Sopenharmony_ci}
27527db96d56Sopenharmony_ci
27537db96d56Sopenharmony_ci#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
27547db96d56Sopenharmony_ci
27557db96d56Sopenharmony_ci#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
27567db96d56Sopenharmony_ci
27577db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_set_escdelay__doc__,
27587db96d56Sopenharmony_ci"set_escdelay($module, ms, /)\n"
27597db96d56Sopenharmony_ci"--\n"
27607db96d56Sopenharmony_ci"\n"
27617db96d56Sopenharmony_ci"Sets the curses ESCDELAY setting.\n"
27627db96d56Sopenharmony_ci"\n"
27637db96d56Sopenharmony_ci"  ms\n"
27647db96d56Sopenharmony_ci"    length of the delay in milliseconds.\n"
27657db96d56Sopenharmony_ci"\n"
27667db96d56Sopenharmony_ci"Sets the number of milliseconds to wait after reading an escape character,\n"
27677db96d56Sopenharmony_ci"to distinguish between an individual escape character entered on the\n"
27687db96d56Sopenharmony_ci"keyboard from escape sequences sent by cursor and function keys.");
27697db96d56Sopenharmony_ci
27707db96d56Sopenharmony_ci#define _CURSES_SET_ESCDELAY_METHODDEF    \
27717db96d56Sopenharmony_ci    {"set_escdelay", (PyCFunction)_curses_set_escdelay, METH_O, _curses_set_escdelay__doc__},
27727db96d56Sopenharmony_ci
27737db96d56Sopenharmony_cistatic PyObject *
27747db96d56Sopenharmony_ci_curses_set_escdelay_impl(PyObject *module, int ms);
27757db96d56Sopenharmony_ci
27767db96d56Sopenharmony_cistatic PyObject *
27777db96d56Sopenharmony_ci_curses_set_escdelay(PyObject *module, PyObject *arg)
27787db96d56Sopenharmony_ci{
27797db96d56Sopenharmony_ci    PyObject *return_value = NULL;
27807db96d56Sopenharmony_ci    int ms;
27817db96d56Sopenharmony_ci
27827db96d56Sopenharmony_ci    ms = _PyLong_AsInt(arg);
27837db96d56Sopenharmony_ci    if (ms == -1 && PyErr_Occurred()) {
27847db96d56Sopenharmony_ci        goto exit;
27857db96d56Sopenharmony_ci    }
27867db96d56Sopenharmony_ci    return_value = _curses_set_escdelay_impl(module, ms);
27877db96d56Sopenharmony_ci
27887db96d56Sopenharmony_ciexit:
27897db96d56Sopenharmony_ci    return return_value;
27907db96d56Sopenharmony_ci}
27917db96d56Sopenharmony_ci
27927db96d56Sopenharmony_ci#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
27937db96d56Sopenharmony_ci
27947db96d56Sopenharmony_ci#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
27957db96d56Sopenharmony_ci
27967db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_get_tabsize__doc__,
27977db96d56Sopenharmony_ci"get_tabsize($module, /)\n"
27987db96d56Sopenharmony_ci"--\n"
27997db96d56Sopenharmony_ci"\n"
28007db96d56Sopenharmony_ci"Gets the curses TABSIZE setting.\n"
28017db96d56Sopenharmony_ci"\n"
28027db96d56Sopenharmony_ci"Gets the number of columns used by the curses library when converting a tab\n"
28037db96d56Sopenharmony_ci"character to spaces as it adds the tab to a window.");
28047db96d56Sopenharmony_ci
28057db96d56Sopenharmony_ci#define _CURSES_GET_TABSIZE_METHODDEF    \
28067db96d56Sopenharmony_ci    {"get_tabsize", (PyCFunction)_curses_get_tabsize, METH_NOARGS, _curses_get_tabsize__doc__},
28077db96d56Sopenharmony_ci
28087db96d56Sopenharmony_cistatic PyObject *
28097db96d56Sopenharmony_ci_curses_get_tabsize_impl(PyObject *module);
28107db96d56Sopenharmony_ci
28117db96d56Sopenharmony_cistatic PyObject *
28127db96d56Sopenharmony_ci_curses_get_tabsize(PyObject *module, PyObject *Py_UNUSED(ignored))
28137db96d56Sopenharmony_ci{
28147db96d56Sopenharmony_ci    return _curses_get_tabsize_impl(module);
28157db96d56Sopenharmony_ci}
28167db96d56Sopenharmony_ci
28177db96d56Sopenharmony_ci#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
28187db96d56Sopenharmony_ci
28197db96d56Sopenharmony_ci#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
28207db96d56Sopenharmony_ci
28217db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_set_tabsize__doc__,
28227db96d56Sopenharmony_ci"set_tabsize($module, size, /)\n"
28237db96d56Sopenharmony_ci"--\n"
28247db96d56Sopenharmony_ci"\n"
28257db96d56Sopenharmony_ci"Sets the curses TABSIZE setting.\n"
28267db96d56Sopenharmony_ci"\n"
28277db96d56Sopenharmony_ci"  size\n"
28287db96d56Sopenharmony_ci"    rendered cell width of a tab character.\n"
28297db96d56Sopenharmony_ci"\n"
28307db96d56Sopenharmony_ci"Sets the number of columns used by the curses library when converting a tab\n"
28317db96d56Sopenharmony_ci"character to spaces as it adds the tab to a window.");
28327db96d56Sopenharmony_ci
28337db96d56Sopenharmony_ci#define _CURSES_SET_TABSIZE_METHODDEF    \
28347db96d56Sopenharmony_ci    {"set_tabsize", (PyCFunction)_curses_set_tabsize, METH_O, _curses_set_tabsize__doc__},
28357db96d56Sopenharmony_ci
28367db96d56Sopenharmony_cistatic PyObject *
28377db96d56Sopenharmony_ci_curses_set_tabsize_impl(PyObject *module, int size);
28387db96d56Sopenharmony_ci
28397db96d56Sopenharmony_cistatic PyObject *
28407db96d56Sopenharmony_ci_curses_set_tabsize(PyObject *module, PyObject *arg)
28417db96d56Sopenharmony_ci{
28427db96d56Sopenharmony_ci    PyObject *return_value = NULL;
28437db96d56Sopenharmony_ci    int size;
28447db96d56Sopenharmony_ci
28457db96d56Sopenharmony_ci    size = _PyLong_AsInt(arg);
28467db96d56Sopenharmony_ci    if (size == -1 && PyErr_Occurred()) {
28477db96d56Sopenharmony_ci        goto exit;
28487db96d56Sopenharmony_ci    }
28497db96d56Sopenharmony_ci    return_value = _curses_set_tabsize_impl(module, size);
28507db96d56Sopenharmony_ci
28517db96d56Sopenharmony_ciexit:
28527db96d56Sopenharmony_ci    return return_value;
28537db96d56Sopenharmony_ci}
28547db96d56Sopenharmony_ci
28557db96d56Sopenharmony_ci#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
28567db96d56Sopenharmony_ci
28577db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_intrflush__doc__,
28587db96d56Sopenharmony_ci"intrflush($module, flag, /)\n"
28597db96d56Sopenharmony_ci"--\n"
28607db96d56Sopenharmony_ci"\n");
28617db96d56Sopenharmony_ci
28627db96d56Sopenharmony_ci#define _CURSES_INTRFLUSH_METHODDEF    \
28637db96d56Sopenharmony_ci    {"intrflush", (PyCFunction)_curses_intrflush, METH_O, _curses_intrflush__doc__},
28647db96d56Sopenharmony_ci
28657db96d56Sopenharmony_cistatic PyObject *
28667db96d56Sopenharmony_ci_curses_intrflush_impl(PyObject *module, int flag);
28677db96d56Sopenharmony_ci
28687db96d56Sopenharmony_cistatic PyObject *
28697db96d56Sopenharmony_ci_curses_intrflush(PyObject *module, PyObject *arg)
28707db96d56Sopenharmony_ci{
28717db96d56Sopenharmony_ci    PyObject *return_value = NULL;
28727db96d56Sopenharmony_ci    int flag;
28737db96d56Sopenharmony_ci
28747db96d56Sopenharmony_ci    flag = _PyLong_AsInt(arg);
28757db96d56Sopenharmony_ci    if (flag == -1 && PyErr_Occurred()) {
28767db96d56Sopenharmony_ci        goto exit;
28777db96d56Sopenharmony_ci    }
28787db96d56Sopenharmony_ci    return_value = _curses_intrflush_impl(module, flag);
28797db96d56Sopenharmony_ci
28807db96d56Sopenharmony_ciexit:
28817db96d56Sopenharmony_ci    return return_value;
28827db96d56Sopenharmony_ci}
28837db96d56Sopenharmony_ci
28847db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_isendwin__doc__,
28857db96d56Sopenharmony_ci"isendwin($module, /)\n"
28867db96d56Sopenharmony_ci"--\n"
28877db96d56Sopenharmony_ci"\n"
28887db96d56Sopenharmony_ci"Return True if endwin() has been called.");
28897db96d56Sopenharmony_ci
28907db96d56Sopenharmony_ci#define _CURSES_ISENDWIN_METHODDEF    \
28917db96d56Sopenharmony_ci    {"isendwin", (PyCFunction)_curses_isendwin, METH_NOARGS, _curses_isendwin__doc__},
28927db96d56Sopenharmony_ci
28937db96d56Sopenharmony_cistatic PyObject *
28947db96d56Sopenharmony_ci_curses_isendwin_impl(PyObject *module);
28957db96d56Sopenharmony_ci
28967db96d56Sopenharmony_cistatic PyObject *
28977db96d56Sopenharmony_ci_curses_isendwin(PyObject *module, PyObject *Py_UNUSED(ignored))
28987db96d56Sopenharmony_ci{
28997db96d56Sopenharmony_ci    return _curses_isendwin_impl(module);
29007db96d56Sopenharmony_ci}
29017db96d56Sopenharmony_ci
29027db96d56Sopenharmony_ci#if defined(HAVE_CURSES_IS_TERM_RESIZED)
29037db96d56Sopenharmony_ci
29047db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_is_term_resized__doc__,
29057db96d56Sopenharmony_ci"is_term_resized($module, nlines, ncols, /)\n"
29067db96d56Sopenharmony_ci"--\n"
29077db96d56Sopenharmony_ci"\n"
29087db96d56Sopenharmony_ci"Return True if resize_term() would modify the window structure, False otherwise.\n"
29097db96d56Sopenharmony_ci"\n"
29107db96d56Sopenharmony_ci"  nlines\n"
29117db96d56Sopenharmony_ci"    Height.\n"
29127db96d56Sopenharmony_ci"  ncols\n"
29137db96d56Sopenharmony_ci"    Width.");
29147db96d56Sopenharmony_ci
29157db96d56Sopenharmony_ci#define _CURSES_IS_TERM_RESIZED_METHODDEF    \
29167db96d56Sopenharmony_ci    {"is_term_resized", _PyCFunction_CAST(_curses_is_term_resized), METH_FASTCALL, _curses_is_term_resized__doc__},
29177db96d56Sopenharmony_ci
29187db96d56Sopenharmony_cistatic PyObject *
29197db96d56Sopenharmony_ci_curses_is_term_resized_impl(PyObject *module, int nlines, int ncols);
29207db96d56Sopenharmony_ci
29217db96d56Sopenharmony_cistatic PyObject *
29227db96d56Sopenharmony_ci_curses_is_term_resized(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
29237db96d56Sopenharmony_ci{
29247db96d56Sopenharmony_ci    PyObject *return_value = NULL;
29257db96d56Sopenharmony_ci    int nlines;
29267db96d56Sopenharmony_ci    int ncols;
29277db96d56Sopenharmony_ci
29287db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("is_term_resized", nargs, 2, 2)) {
29297db96d56Sopenharmony_ci        goto exit;
29307db96d56Sopenharmony_ci    }
29317db96d56Sopenharmony_ci    nlines = _PyLong_AsInt(args[0]);
29327db96d56Sopenharmony_ci    if (nlines == -1 && PyErr_Occurred()) {
29337db96d56Sopenharmony_ci        goto exit;
29347db96d56Sopenharmony_ci    }
29357db96d56Sopenharmony_ci    ncols = _PyLong_AsInt(args[1]);
29367db96d56Sopenharmony_ci    if (ncols == -1 && PyErr_Occurred()) {
29377db96d56Sopenharmony_ci        goto exit;
29387db96d56Sopenharmony_ci    }
29397db96d56Sopenharmony_ci    return_value = _curses_is_term_resized_impl(module, nlines, ncols);
29407db96d56Sopenharmony_ci
29417db96d56Sopenharmony_ciexit:
29427db96d56Sopenharmony_ci    return return_value;
29437db96d56Sopenharmony_ci}
29447db96d56Sopenharmony_ci
29457db96d56Sopenharmony_ci#endif /* defined(HAVE_CURSES_IS_TERM_RESIZED) */
29467db96d56Sopenharmony_ci
29477db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_keyname__doc__,
29487db96d56Sopenharmony_ci"keyname($module, key, /)\n"
29497db96d56Sopenharmony_ci"--\n"
29507db96d56Sopenharmony_ci"\n"
29517db96d56Sopenharmony_ci"Return the name of specified key.\n"
29527db96d56Sopenharmony_ci"\n"
29537db96d56Sopenharmony_ci"  key\n"
29547db96d56Sopenharmony_ci"    Key number.");
29557db96d56Sopenharmony_ci
29567db96d56Sopenharmony_ci#define _CURSES_KEYNAME_METHODDEF    \
29577db96d56Sopenharmony_ci    {"keyname", (PyCFunction)_curses_keyname, METH_O, _curses_keyname__doc__},
29587db96d56Sopenharmony_ci
29597db96d56Sopenharmony_cistatic PyObject *
29607db96d56Sopenharmony_ci_curses_keyname_impl(PyObject *module, int key);
29617db96d56Sopenharmony_ci
29627db96d56Sopenharmony_cistatic PyObject *
29637db96d56Sopenharmony_ci_curses_keyname(PyObject *module, PyObject *arg)
29647db96d56Sopenharmony_ci{
29657db96d56Sopenharmony_ci    PyObject *return_value = NULL;
29667db96d56Sopenharmony_ci    int key;
29677db96d56Sopenharmony_ci
29687db96d56Sopenharmony_ci    key = _PyLong_AsInt(arg);
29697db96d56Sopenharmony_ci    if (key == -1 && PyErr_Occurred()) {
29707db96d56Sopenharmony_ci        goto exit;
29717db96d56Sopenharmony_ci    }
29727db96d56Sopenharmony_ci    return_value = _curses_keyname_impl(module, key);
29737db96d56Sopenharmony_ci
29747db96d56Sopenharmony_ciexit:
29757db96d56Sopenharmony_ci    return return_value;
29767db96d56Sopenharmony_ci}
29777db96d56Sopenharmony_ci
29787db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_killchar__doc__,
29797db96d56Sopenharmony_ci"killchar($module, /)\n"
29807db96d56Sopenharmony_ci"--\n"
29817db96d56Sopenharmony_ci"\n"
29827db96d56Sopenharmony_ci"Return the user\'s current line kill character.");
29837db96d56Sopenharmony_ci
29847db96d56Sopenharmony_ci#define _CURSES_KILLCHAR_METHODDEF    \
29857db96d56Sopenharmony_ci    {"killchar", (PyCFunction)_curses_killchar, METH_NOARGS, _curses_killchar__doc__},
29867db96d56Sopenharmony_ci
29877db96d56Sopenharmony_cistatic PyObject *
29887db96d56Sopenharmony_ci_curses_killchar_impl(PyObject *module);
29897db96d56Sopenharmony_ci
29907db96d56Sopenharmony_cistatic PyObject *
29917db96d56Sopenharmony_ci_curses_killchar(PyObject *module, PyObject *Py_UNUSED(ignored))
29927db96d56Sopenharmony_ci{
29937db96d56Sopenharmony_ci    return _curses_killchar_impl(module);
29947db96d56Sopenharmony_ci}
29957db96d56Sopenharmony_ci
29967db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_longname__doc__,
29977db96d56Sopenharmony_ci"longname($module, /)\n"
29987db96d56Sopenharmony_ci"--\n"
29997db96d56Sopenharmony_ci"\n"
30007db96d56Sopenharmony_ci"Return the terminfo long name field describing the current terminal.\n"
30017db96d56Sopenharmony_ci"\n"
30027db96d56Sopenharmony_ci"The maximum length of a verbose description is 128 characters.  It is defined\n"
30037db96d56Sopenharmony_ci"only after the call to initscr().");
30047db96d56Sopenharmony_ci
30057db96d56Sopenharmony_ci#define _CURSES_LONGNAME_METHODDEF    \
30067db96d56Sopenharmony_ci    {"longname", (PyCFunction)_curses_longname, METH_NOARGS, _curses_longname__doc__},
30077db96d56Sopenharmony_ci
30087db96d56Sopenharmony_cistatic PyObject *
30097db96d56Sopenharmony_ci_curses_longname_impl(PyObject *module);
30107db96d56Sopenharmony_ci
30117db96d56Sopenharmony_cistatic PyObject *
30127db96d56Sopenharmony_ci_curses_longname(PyObject *module, PyObject *Py_UNUSED(ignored))
30137db96d56Sopenharmony_ci{
30147db96d56Sopenharmony_ci    return _curses_longname_impl(module);
30157db96d56Sopenharmony_ci}
30167db96d56Sopenharmony_ci
30177db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_meta__doc__,
30187db96d56Sopenharmony_ci"meta($module, yes, /)\n"
30197db96d56Sopenharmony_ci"--\n"
30207db96d56Sopenharmony_ci"\n"
30217db96d56Sopenharmony_ci"Enable/disable meta keys.\n"
30227db96d56Sopenharmony_ci"\n"
30237db96d56Sopenharmony_ci"If yes is True, allow 8-bit characters to be input.  If yes is False,\n"
30247db96d56Sopenharmony_ci"allow only 7-bit characters.");
30257db96d56Sopenharmony_ci
30267db96d56Sopenharmony_ci#define _CURSES_META_METHODDEF    \
30277db96d56Sopenharmony_ci    {"meta", (PyCFunction)_curses_meta, METH_O, _curses_meta__doc__},
30287db96d56Sopenharmony_ci
30297db96d56Sopenharmony_cistatic PyObject *
30307db96d56Sopenharmony_ci_curses_meta_impl(PyObject *module, int yes);
30317db96d56Sopenharmony_ci
30327db96d56Sopenharmony_cistatic PyObject *
30337db96d56Sopenharmony_ci_curses_meta(PyObject *module, PyObject *arg)
30347db96d56Sopenharmony_ci{
30357db96d56Sopenharmony_ci    PyObject *return_value = NULL;
30367db96d56Sopenharmony_ci    int yes;
30377db96d56Sopenharmony_ci
30387db96d56Sopenharmony_ci    yes = _PyLong_AsInt(arg);
30397db96d56Sopenharmony_ci    if (yes == -1 && PyErr_Occurred()) {
30407db96d56Sopenharmony_ci        goto exit;
30417db96d56Sopenharmony_ci    }
30427db96d56Sopenharmony_ci    return_value = _curses_meta_impl(module, yes);
30437db96d56Sopenharmony_ci
30447db96d56Sopenharmony_ciexit:
30457db96d56Sopenharmony_ci    return return_value;
30467db96d56Sopenharmony_ci}
30477db96d56Sopenharmony_ci
30487db96d56Sopenharmony_ci#if defined(NCURSES_MOUSE_VERSION)
30497db96d56Sopenharmony_ci
30507db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_mouseinterval__doc__,
30517db96d56Sopenharmony_ci"mouseinterval($module, interval, /)\n"
30527db96d56Sopenharmony_ci"--\n"
30537db96d56Sopenharmony_ci"\n"
30547db96d56Sopenharmony_ci"Set and retrieve the maximum time between press and release in a click.\n"
30557db96d56Sopenharmony_ci"\n"
30567db96d56Sopenharmony_ci"  interval\n"
30577db96d56Sopenharmony_ci"    Time in milliseconds.\n"
30587db96d56Sopenharmony_ci"\n"
30597db96d56Sopenharmony_ci"Set the maximum time that can elapse between press and release events in\n"
30607db96d56Sopenharmony_ci"order for them to be recognized as a click, and return the previous interval\n"
30617db96d56Sopenharmony_ci"value.");
30627db96d56Sopenharmony_ci
30637db96d56Sopenharmony_ci#define _CURSES_MOUSEINTERVAL_METHODDEF    \
30647db96d56Sopenharmony_ci    {"mouseinterval", (PyCFunction)_curses_mouseinterval, METH_O, _curses_mouseinterval__doc__},
30657db96d56Sopenharmony_ci
30667db96d56Sopenharmony_cistatic PyObject *
30677db96d56Sopenharmony_ci_curses_mouseinterval_impl(PyObject *module, int interval);
30687db96d56Sopenharmony_ci
30697db96d56Sopenharmony_cistatic PyObject *
30707db96d56Sopenharmony_ci_curses_mouseinterval(PyObject *module, PyObject *arg)
30717db96d56Sopenharmony_ci{
30727db96d56Sopenharmony_ci    PyObject *return_value = NULL;
30737db96d56Sopenharmony_ci    int interval;
30747db96d56Sopenharmony_ci
30757db96d56Sopenharmony_ci    interval = _PyLong_AsInt(arg);
30767db96d56Sopenharmony_ci    if (interval == -1 && PyErr_Occurred()) {
30777db96d56Sopenharmony_ci        goto exit;
30787db96d56Sopenharmony_ci    }
30797db96d56Sopenharmony_ci    return_value = _curses_mouseinterval_impl(module, interval);
30807db96d56Sopenharmony_ci
30817db96d56Sopenharmony_ciexit:
30827db96d56Sopenharmony_ci    return return_value;
30837db96d56Sopenharmony_ci}
30847db96d56Sopenharmony_ci
30857db96d56Sopenharmony_ci#endif /* defined(NCURSES_MOUSE_VERSION) */
30867db96d56Sopenharmony_ci
30877db96d56Sopenharmony_ci#if defined(NCURSES_MOUSE_VERSION)
30887db96d56Sopenharmony_ci
30897db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_mousemask__doc__,
30907db96d56Sopenharmony_ci"mousemask($module, newmask, /)\n"
30917db96d56Sopenharmony_ci"--\n"
30927db96d56Sopenharmony_ci"\n"
30937db96d56Sopenharmony_ci"Set the mouse events to be reported, and return a tuple (availmask, oldmask).\n"
30947db96d56Sopenharmony_ci"\n"
30957db96d56Sopenharmony_ci"Return a tuple (availmask, oldmask).  availmask indicates which of the\n"
30967db96d56Sopenharmony_ci"specified mouse events can be reported; on complete failure it returns 0.\n"
30977db96d56Sopenharmony_ci"oldmask is the previous value of the given window\'s mouse event mask.\n"
30987db96d56Sopenharmony_ci"If this function is never called, no mouse events are ever reported.");
30997db96d56Sopenharmony_ci
31007db96d56Sopenharmony_ci#define _CURSES_MOUSEMASK_METHODDEF    \
31017db96d56Sopenharmony_ci    {"mousemask", (PyCFunction)_curses_mousemask, METH_O, _curses_mousemask__doc__},
31027db96d56Sopenharmony_ci
31037db96d56Sopenharmony_cistatic PyObject *
31047db96d56Sopenharmony_ci_curses_mousemask_impl(PyObject *module, unsigned long newmask);
31057db96d56Sopenharmony_ci
31067db96d56Sopenharmony_cistatic PyObject *
31077db96d56Sopenharmony_ci_curses_mousemask(PyObject *module, PyObject *arg)
31087db96d56Sopenharmony_ci{
31097db96d56Sopenharmony_ci    PyObject *return_value = NULL;
31107db96d56Sopenharmony_ci    unsigned long newmask;
31117db96d56Sopenharmony_ci
31127db96d56Sopenharmony_ci    if (!PyLong_Check(arg)) {
31137db96d56Sopenharmony_ci        _PyArg_BadArgument("mousemask", "argument", "int", arg);
31147db96d56Sopenharmony_ci        goto exit;
31157db96d56Sopenharmony_ci    }
31167db96d56Sopenharmony_ci    newmask = PyLong_AsUnsignedLongMask(arg);
31177db96d56Sopenharmony_ci    return_value = _curses_mousemask_impl(module, newmask);
31187db96d56Sopenharmony_ci
31197db96d56Sopenharmony_ciexit:
31207db96d56Sopenharmony_ci    return return_value;
31217db96d56Sopenharmony_ci}
31227db96d56Sopenharmony_ci
31237db96d56Sopenharmony_ci#endif /* defined(NCURSES_MOUSE_VERSION) */
31247db96d56Sopenharmony_ci
31257db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_napms__doc__,
31267db96d56Sopenharmony_ci"napms($module, ms, /)\n"
31277db96d56Sopenharmony_ci"--\n"
31287db96d56Sopenharmony_ci"\n"
31297db96d56Sopenharmony_ci"Sleep for specified time.\n"
31307db96d56Sopenharmony_ci"\n"
31317db96d56Sopenharmony_ci"  ms\n"
31327db96d56Sopenharmony_ci"    Duration in milliseconds.");
31337db96d56Sopenharmony_ci
31347db96d56Sopenharmony_ci#define _CURSES_NAPMS_METHODDEF    \
31357db96d56Sopenharmony_ci    {"napms", (PyCFunction)_curses_napms, METH_O, _curses_napms__doc__},
31367db96d56Sopenharmony_ci
31377db96d56Sopenharmony_cistatic PyObject *
31387db96d56Sopenharmony_ci_curses_napms_impl(PyObject *module, int ms);
31397db96d56Sopenharmony_ci
31407db96d56Sopenharmony_cistatic PyObject *
31417db96d56Sopenharmony_ci_curses_napms(PyObject *module, PyObject *arg)
31427db96d56Sopenharmony_ci{
31437db96d56Sopenharmony_ci    PyObject *return_value = NULL;
31447db96d56Sopenharmony_ci    int ms;
31457db96d56Sopenharmony_ci
31467db96d56Sopenharmony_ci    ms = _PyLong_AsInt(arg);
31477db96d56Sopenharmony_ci    if (ms == -1 && PyErr_Occurred()) {
31487db96d56Sopenharmony_ci        goto exit;
31497db96d56Sopenharmony_ci    }
31507db96d56Sopenharmony_ci    return_value = _curses_napms_impl(module, ms);
31517db96d56Sopenharmony_ci
31527db96d56Sopenharmony_ciexit:
31537db96d56Sopenharmony_ci    return return_value;
31547db96d56Sopenharmony_ci}
31557db96d56Sopenharmony_ci
31567db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_newpad__doc__,
31577db96d56Sopenharmony_ci"newpad($module, nlines, ncols, /)\n"
31587db96d56Sopenharmony_ci"--\n"
31597db96d56Sopenharmony_ci"\n"
31607db96d56Sopenharmony_ci"Create and return a pointer to a new pad data structure.\n"
31617db96d56Sopenharmony_ci"\n"
31627db96d56Sopenharmony_ci"  nlines\n"
31637db96d56Sopenharmony_ci"    Height.\n"
31647db96d56Sopenharmony_ci"  ncols\n"
31657db96d56Sopenharmony_ci"    Width.");
31667db96d56Sopenharmony_ci
31677db96d56Sopenharmony_ci#define _CURSES_NEWPAD_METHODDEF    \
31687db96d56Sopenharmony_ci    {"newpad", _PyCFunction_CAST(_curses_newpad), METH_FASTCALL, _curses_newpad__doc__},
31697db96d56Sopenharmony_ci
31707db96d56Sopenharmony_cistatic PyObject *
31717db96d56Sopenharmony_ci_curses_newpad_impl(PyObject *module, int nlines, int ncols);
31727db96d56Sopenharmony_ci
31737db96d56Sopenharmony_cistatic PyObject *
31747db96d56Sopenharmony_ci_curses_newpad(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
31757db96d56Sopenharmony_ci{
31767db96d56Sopenharmony_ci    PyObject *return_value = NULL;
31777db96d56Sopenharmony_ci    int nlines;
31787db96d56Sopenharmony_ci    int ncols;
31797db96d56Sopenharmony_ci
31807db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("newpad", nargs, 2, 2)) {
31817db96d56Sopenharmony_ci        goto exit;
31827db96d56Sopenharmony_ci    }
31837db96d56Sopenharmony_ci    nlines = _PyLong_AsInt(args[0]);
31847db96d56Sopenharmony_ci    if (nlines == -1 && PyErr_Occurred()) {
31857db96d56Sopenharmony_ci        goto exit;
31867db96d56Sopenharmony_ci    }
31877db96d56Sopenharmony_ci    ncols = _PyLong_AsInt(args[1]);
31887db96d56Sopenharmony_ci    if (ncols == -1 && PyErr_Occurred()) {
31897db96d56Sopenharmony_ci        goto exit;
31907db96d56Sopenharmony_ci    }
31917db96d56Sopenharmony_ci    return_value = _curses_newpad_impl(module, nlines, ncols);
31927db96d56Sopenharmony_ci
31937db96d56Sopenharmony_ciexit:
31947db96d56Sopenharmony_ci    return return_value;
31957db96d56Sopenharmony_ci}
31967db96d56Sopenharmony_ci
31977db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_newwin__doc__,
31987db96d56Sopenharmony_ci"newwin(nlines, ncols, [begin_y=0, begin_x=0])\n"
31997db96d56Sopenharmony_ci"Return a new window.\n"
32007db96d56Sopenharmony_ci"\n"
32017db96d56Sopenharmony_ci"  nlines\n"
32027db96d56Sopenharmony_ci"    Height.\n"
32037db96d56Sopenharmony_ci"  ncols\n"
32047db96d56Sopenharmony_ci"    Width.\n"
32057db96d56Sopenharmony_ci"  begin_y\n"
32067db96d56Sopenharmony_ci"    Top side y-coordinate.\n"
32077db96d56Sopenharmony_ci"  begin_x\n"
32087db96d56Sopenharmony_ci"    Left side x-coordinate.\n"
32097db96d56Sopenharmony_ci"\n"
32107db96d56Sopenharmony_ci"By default, the window will extend from the specified position to the lower\n"
32117db96d56Sopenharmony_ci"right corner of the screen.");
32127db96d56Sopenharmony_ci
32137db96d56Sopenharmony_ci#define _CURSES_NEWWIN_METHODDEF    \
32147db96d56Sopenharmony_ci    {"newwin", (PyCFunction)_curses_newwin, METH_VARARGS, _curses_newwin__doc__},
32157db96d56Sopenharmony_ci
32167db96d56Sopenharmony_cistatic PyObject *
32177db96d56Sopenharmony_ci_curses_newwin_impl(PyObject *module, int nlines, int ncols,
32187db96d56Sopenharmony_ci                    int group_right_1, int begin_y, int begin_x);
32197db96d56Sopenharmony_ci
32207db96d56Sopenharmony_cistatic PyObject *
32217db96d56Sopenharmony_ci_curses_newwin(PyObject *module, PyObject *args)
32227db96d56Sopenharmony_ci{
32237db96d56Sopenharmony_ci    PyObject *return_value = NULL;
32247db96d56Sopenharmony_ci    int nlines;
32257db96d56Sopenharmony_ci    int ncols;
32267db96d56Sopenharmony_ci    int group_right_1 = 0;
32277db96d56Sopenharmony_ci    int begin_y = 0;
32287db96d56Sopenharmony_ci    int begin_x = 0;
32297db96d56Sopenharmony_ci
32307db96d56Sopenharmony_ci    switch (PyTuple_GET_SIZE(args)) {
32317db96d56Sopenharmony_ci        case 2:
32327db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "ii:newwin", &nlines, &ncols)) {
32337db96d56Sopenharmony_ci                goto exit;
32347db96d56Sopenharmony_ci            }
32357db96d56Sopenharmony_ci            break;
32367db96d56Sopenharmony_ci        case 4:
32377db96d56Sopenharmony_ci            if (!PyArg_ParseTuple(args, "iiii:newwin", &nlines, &ncols, &begin_y, &begin_x)) {
32387db96d56Sopenharmony_ci                goto exit;
32397db96d56Sopenharmony_ci            }
32407db96d56Sopenharmony_ci            group_right_1 = 1;
32417db96d56Sopenharmony_ci            break;
32427db96d56Sopenharmony_ci        default:
32437db96d56Sopenharmony_ci            PyErr_SetString(PyExc_TypeError, "_curses.newwin requires 2 to 4 arguments");
32447db96d56Sopenharmony_ci            goto exit;
32457db96d56Sopenharmony_ci    }
32467db96d56Sopenharmony_ci    return_value = _curses_newwin_impl(module, nlines, ncols, group_right_1, begin_y, begin_x);
32477db96d56Sopenharmony_ci
32487db96d56Sopenharmony_ciexit:
32497db96d56Sopenharmony_ci    return return_value;
32507db96d56Sopenharmony_ci}
32517db96d56Sopenharmony_ci
32527db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_nl__doc__,
32537db96d56Sopenharmony_ci"nl($module, flag=True, /)\n"
32547db96d56Sopenharmony_ci"--\n"
32557db96d56Sopenharmony_ci"\n"
32567db96d56Sopenharmony_ci"Enter newline mode.\n"
32577db96d56Sopenharmony_ci"\n"
32587db96d56Sopenharmony_ci"  flag\n"
32597db96d56Sopenharmony_ci"    If false, the effect is the same as calling nonl().\n"
32607db96d56Sopenharmony_ci"\n"
32617db96d56Sopenharmony_ci"This mode translates the return key into newline on input, and translates\n"
32627db96d56Sopenharmony_ci"newline into return and line-feed on output.  Newline mode is initially on.");
32637db96d56Sopenharmony_ci
32647db96d56Sopenharmony_ci#define _CURSES_NL_METHODDEF    \
32657db96d56Sopenharmony_ci    {"nl", _PyCFunction_CAST(_curses_nl), METH_FASTCALL, _curses_nl__doc__},
32667db96d56Sopenharmony_ci
32677db96d56Sopenharmony_cistatic PyObject *
32687db96d56Sopenharmony_ci_curses_nl_impl(PyObject *module, int flag);
32697db96d56Sopenharmony_ci
32707db96d56Sopenharmony_cistatic PyObject *
32717db96d56Sopenharmony_ci_curses_nl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
32727db96d56Sopenharmony_ci{
32737db96d56Sopenharmony_ci    PyObject *return_value = NULL;
32747db96d56Sopenharmony_ci    int flag = 1;
32757db96d56Sopenharmony_ci
32767db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("nl", nargs, 0, 1)) {
32777db96d56Sopenharmony_ci        goto exit;
32787db96d56Sopenharmony_ci    }
32797db96d56Sopenharmony_ci    if (nargs < 1) {
32807db96d56Sopenharmony_ci        goto skip_optional;
32817db96d56Sopenharmony_ci    }
32827db96d56Sopenharmony_ci    flag = _PyLong_AsInt(args[0]);
32837db96d56Sopenharmony_ci    if (flag == -1 && PyErr_Occurred()) {
32847db96d56Sopenharmony_ci        goto exit;
32857db96d56Sopenharmony_ci    }
32867db96d56Sopenharmony_ciskip_optional:
32877db96d56Sopenharmony_ci    return_value = _curses_nl_impl(module, flag);
32887db96d56Sopenharmony_ci
32897db96d56Sopenharmony_ciexit:
32907db96d56Sopenharmony_ci    return return_value;
32917db96d56Sopenharmony_ci}
32927db96d56Sopenharmony_ci
32937db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_nocbreak__doc__,
32947db96d56Sopenharmony_ci"nocbreak($module, /)\n"
32957db96d56Sopenharmony_ci"--\n"
32967db96d56Sopenharmony_ci"\n"
32977db96d56Sopenharmony_ci"Leave cbreak mode.\n"
32987db96d56Sopenharmony_ci"\n"
32997db96d56Sopenharmony_ci"Return to normal \"cooked\" mode with line buffering.");
33007db96d56Sopenharmony_ci
33017db96d56Sopenharmony_ci#define _CURSES_NOCBREAK_METHODDEF    \
33027db96d56Sopenharmony_ci    {"nocbreak", (PyCFunction)_curses_nocbreak, METH_NOARGS, _curses_nocbreak__doc__},
33037db96d56Sopenharmony_ci
33047db96d56Sopenharmony_cistatic PyObject *
33057db96d56Sopenharmony_ci_curses_nocbreak_impl(PyObject *module);
33067db96d56Sopenharmony_ci
33077db96d56Sopenharmony_cistatic PyObject *
33087db96d56Sopenharmony_ci_curses_nocbreak(PyObject *module, PyObject *Py_UNUSED(ignored))
33097db96d56Sopenharmony_ci{
33107db96d56Sopenharmony_ci    return _curses_nocbreak_impl(module);
33117db96d56Sopenharmony_ci}
33127db96d56Sopenharmony_ci
33137db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_noecho__doc__,
33147db96d56Sopenharmony_ci"noecho($module, /)\n"
33157db96d56Sopenharmony_ci"--\n"
33167db96d56Sopenharmony_ci"\n"
33177db96d56Sopenharmony_ci"Leave echo mode.\n"
33187db96d56Sopenharmony_ci"\n"
33197db96d56Sopenharmony_ci"Echoing of input characters is turned off.");
33207db96d56Sopenharmony_ci
33217db96d56Sopenharmony_ci#define _CURSES_NOECHO_METHODDEF    \
33227db96d56Sopenharmony_ci    {"noecho", (PyCFunction)_curses_noecho, METH_NOARGS, _curses_noecho__doc__},
33237db96d56Sopenharmony_ci
33247db96d56Sopenharmony_cistatic PyObject *
33257db96d56Sopenharmony_ci_curses_noecho_impl(PyObject *module);
33267db96d56Sopenharmony_ci
33277db96d56Sopenharmony_cistatic PyObject *
33287db96d56Sopenharmony_ci_curses_noecho(PyObject *module, PyObject *Py_UNUSED(ignored))
33297db96d56Sopenharmony_ci{
33307db96d56Sopenharmony_ci    return _curses_noecho_impl(module);
33317db96d56Sopenharmony_ci}
33327db96d56Sopenharmony_ci
33337db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_nonl__doc__,
33347db96d56Sopenharmony_ci"nonl($module, /)\n"
33357db96d56Sopenharmony_ci"--\n"
33367db96d56Sopenharmony_ci"\n"
33377db96d56Sopenharmony_ci"Leave newline mode.\n"
33387db96d56Sopenharmony_ci"\n"
33397db96d56Sopenharmony_ci"Disable translation of return into newline on input, and disable low-level\n"
33407db96d56Sopenharmony_ci"translation of newline into newline/return on output.");
33417db96d56Sopenharmony_ci
33427db96d56Sopenharmony_ci#define _CURSES_NONL_METHODDEF    \
33437db96d56Sopenharmony_ci    {"nonl", (PyCFunction)_curses_nonl, METH_NOARGS, _curses_nonl__doc__},
33447db96d56Sopenharmony_ci
33457db96d56Sopenharmony_cistatic PyObject *
33467db96d56Sopenharmony_ci_curses_nonl_impl(PyObject *module);
33477db96d56Sopenharmony_ci
33487db96d56Sopenharmony_cistatic PyObject *
33497db96d56Sopenharmony_ci_curses_nonl(PyObject *module, PyObject *Py_UNUSED(ignored))
33507db96d56Sopenharmony_ci{
33517db96d56Sopenharmony_ci    return _curses_nonl_impl(module);
33527db96d56Sopenharmony_ci}
33537db96d56Sopenharmony_ci
33547db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_noqiflush__doc__,
33557db96d56Sopenharmony_ci"noqiflush($module, /)\n"
33567db96d56Sopenharmony_ci"--\n"
33577db96d56Sopenharmony_ci"\n"
33587db96d56Sopenharmony_ci"Disable queue flushing.\n"
33597db96d56Sopenharmony_ci"\n"
33607db96d56Sopenharmony_ci"When queue flushing is disabled, normal flush of input and output queues\n"
33617db96d56Sopenharmony_ci"associated with the INTR, QUIT and SUSP characters will not be done.");
33627db96d56Sopenharmony_ci
33637db96d56Sopenharmony_ci#define _CURSES_NOQIFLUSH_METHODDEF    \
33647db96d56Sopenharmony_ci    {"noqiflush", (PyCFunction)_curses_noqiflush, METH_NOARGS, _curses_noqiflush__doc__},
33657db96d56Sopenharmony_ci
33667db96d56Sopenharmony_cistatic PyObject *
33677db96d56Sopenharmony_ci_curses_noqiflush_impl(PyObject *module);
33687db96d56Sopenharmony_ci
33697db96d56Sopenharmony_cistatic PyObject *
33707db96d56Sopenharmony_ci_curses_noqiflush(PyObject *module, PyObject *Py_UNUSED(ignored))
33717db96d56Sopenharmony_ci{
33727db96d56Sopenharmony_ci    return _curses_noqiflush_impl(module);
33737db96d56Sopenharmony_ci}
33747db96d56Sopenharmony_ci
33757db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_noraw__doc__,
33767db96d56Sopenharmony_ci"noraw($module, /)\n"
33777db96d56Sopenharmony_ci"--\n"
33787db96d56Sopenharmony_ci"\n"
33797db96d56Sopenharmony_ci"Leave raw mode.\n"
33807db96d56Sopenharmony_ci"\n"
33817db96d56Sopenharmony_ci"Return to normal \"cooked\" mode with line buffering.");
33827db96d56Sopenharmony_ci
33837db96d56Sopenharmony_ci#define _CURSES_NORAW_METHODDEF    \
33847db96d56Sopenharmony_ci    {"noraw", (PyCFunction)_curses_noraw, METH_NOARGS, _curses_noraw__doc__},
33857db96d56Sopenharmony_ci
33867db96d56Sopenharmony_cistatic PyObject *
33877db96d56Sopenharmony_ci_curses_noraw_impl(PyObject *module);
33887db96d56Sopenharmony_ci
33897db96d56Sopenharmony_cistatic PyObject *
33907db96d56Sopenharmony_ci_curses_noraw(PyObject *module, PyObject *Py_UNUSED(ignored))
33917db96d56Sopenharmony_ci{
33927db96d56Sopenharmony_ci    return _curses_noraw_impl(module);
33937db96d56Sopenharmony_ci}
33947db96d56Sopenharmony_ci
33957db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_pair_content__doc__,
33967db96d56Sopenharmony_ci"pair_content($module, pair_number, /)\n"
33977db96d56Sopenharmony_ci"--\n"
33987db96d56Sopenharmony_ci"\n"
33997db96d56Sopenharmony_ci"Return a tuple (fg, bg) containing the colors for the requested color pair.\n"
34007db96d56Sopenharmony_ci"\n"
34017db96d56Sopenharmony_ci"  pair_number\n"
34027db96d56Sopenharmony_ci"    The number of the color pair (0 - (COLOR_PAIRS-1)).");
34037db96d56Sopenharmony_ci
34047db96d56Sopenharmony_ci#define _CURSES_PAIR_CONTENT_METHODDEF    \
34057db96d56Sopenharmony_ci    {"pair_content", (PyCFunction)_curses_pair_content, METH_O, _curses_pair_content__doc__},
34067db96d56Sopenharmony_ci
34077db96d56Sopenharmony_cistatic PyObject *
34087db96d56Sopenharmony_ci_curses_pair_content_impl(PyObject *module, int pair_number);
34097db96d56Sopenharmony_ci
34107db96d56Sopenharmony_cistatic PyObject *
34117db96d56Sopenharmony_ci_curses_pair_content(PyObject *module, PyObject *arg)
34127db96d56Sopenharmony_ci{
34137db96d56Sopenharmony_ci    PyObject *return_value = NULL;
34147db96d56Sopenharmony_ci    int pair_number;
34157db96d56Sopenharmony_ci
34167db96d56Sopenharmony_ci    if (!pair_converter(arg, &pair_number)) {
34177db96d56Sopenharmony_ci        goto exit;
34187db96d56Sopenharmony_ci    }
34197db96d56Sopenharmony_ci    return_value = _curses_pair_content_impl(module, pair_number);
34207db96d56Sopenharmony_ci
34217db96d56Sopenharmony_ciexit:
34227db96d56Sopenharmony_ci    return return_value;
34237db96d56Sopenharmony_ci}
34247db96d56Sopenharmony_ci
34257db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_pair_number__doc__,
34267db96d56Sopenharmony_ci"pair_number($module, attr, /)\n"
34277db96d56Sopenharmony_ci"--\n"
34287db96d56Sopenharmony_ci"\n"
34297db96d56Sopenharmony_ci"Return the number of the color-pair set by the specified attribute value.\n"
34307db96d56Sopenharmony_ci"\n"
34317db96d56Sopenharmony_ci"color_pair() is the counterpart to this function.");
34327db96d56Sopenharmony_ci
34337db96d56Sopenharmony_ci#define _CURSES_PAIR_NUMBER_METHODDEF    \
34347db96d56Sopenharmony_ci    {"pair_number", (PyCFunction)_curses_pair_number, METH_O, _curses_pair_number__doc__},
34357db96d56Sopenharmony_ci
34367db96d56Sopenharmony_cistatic PyObject *
34377db96d56Sopenharmony_ci_curses_pair_number_impl(PyObject *module, int attr);
34387db96d56Sopenharmony_ci
34397db96d56Sopenharmony_cistatic PyObject *
34407db96d56Sopenharmony_ci_curses_pair_number(PyObject *module, PyObject *arg)
34417db96d56Sopenharmony_ci{
34427db96d56Sopenharmony_ci    PyObject *return_value = NULL;
34437db96d56Sopenharmony_ci    int attr;
34447db96d56Sopenharmony_ci
34457db96d56Sopenharmony_ci    attr = _PyLong_AsInt(arg);
34467db96d56Sopenharmony_ci    if (attr == -1 && PyErr_Occurred()) {
34477db96d56Sopenharmony_ci        goto exit;
34487db96d56Sopenharmony_ci    }
34497db96d56Sopenharmony_ci    return_value = _curses_pair_number_impl(module, attr);
34507db96d56Sopenharmony_ci
34517db96d56Sopenharmony_ciexit:
34527db96d56Sopenharmony_ci    return return_value;
34537db96d56Sopenharmony_ci}
34547db96d56Sopenharmony_ci
34557db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_putp__doc__,
34567db96d56Sopenharmony_ci"putp($module, string, /)\n"
34577db96d56Sopenharmony_ci"--\n"
34587db96d56Sopenharmony_ci"\n"
34597db96d56Sopenharmony_ci"Emit the value of a specified terminfo capability for the current terminal.\n"
34607db96d56Sopenharmony_ci"\n"
34617db96d56Sopenharmony_ci"Note that the output of putp() always goes to standard output.");
34627db96d56Sopenharmony_ci
34637db96d56Sopenharmony_ci#define _CURSES_PUTP_METHODDEF    \
34647db96d56Sopenharmony_ci    {"putp", (PyCFunction)_curses_putp, METH_O, _curses_putp__doc__},
34657db96d56Sopenharmony_ci
34667db96d56Sopenharmony_cistatic PyObject *
34677db96d56Sopenharmony_ci_curses_putp_impl(PyObject *module, const char *string);
34687db96d56Sopenharmony_ci
34697db96d56Sopenharmony_cistatic PyObject *
34707db96d56Sopenharmony_ci_curses_putp(PyObject *module, PyObject *arg)
34717db96d56Sopenharmony_ci{
34727db96d56Sopenharmony_ci    PyObject *return_value = NULL;
34737db96d56Sopenharmony_ci    const char *string;
34747db96d56Sopenharmony_ci
34757db96d56Sopenharmony_ci    if (!PyArg_Parse(arg, "y:putp", &string)) {
34767db96d56Sopenharmony_ci        goto exit;
34777db96d56Sopenharmony_ci    }
34787db96d56Sopenharmony_ci    return_value = _curses_putp_impl(module, string);
34797db96d56Sopenharmony_ci
34807db96d56Sopenharmony_ciexit:
34817db96d56Sopenharmony_ci    return return_value;
34827db96d56Sopenharmony_ci}
34837db96d56Sopenharmony_ci
34847db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_qiflush__doc__,
34857db96d56Sopenharmony_ci"qiflush($module, flag=True, /)\n"
34867db96d56Sopenharmony_ci"--\n"
34877db96d56Sopenharmony_ci"\n"
34887db96d56Sopenharmony_ci"Enable queue flushing.\n"
34897db96d56Sopenharmony_ci"\n"
34907db96d56Sopenharmony_ci"  flag\n"
34917db96d56Sopenharmony_ci"    If false, the effect is the same as calling noqiflush().\n"
34927db96d56Sopenharmony_ci"\n"
34937db96d56Sopenharmony_ci"If queue flushing is enabled, all output in the display driver queue\n"
34947db96d56Sopenharmony_ci"will be flushed when the INTR, QUIT and SUSP characters are read.");
34957db96d56Sopenharmony_ci
34967db96d56Sopenharmony_ci#define _CURSES_QIFLUSH_METHODDEF    \
34977db96d56Sopenharmony_ci    {"qiflush", _PyCFunction_CAST(_curses_qiflush), METH_FASTCALL, _curses_qiflush__doc__},
34987db96d56Sopenharmony_ci
34997db96d56Sopenharmony_cistatic PyObject *
35007db96d56Sopenharmony_ci_curses_qiflush_impl(PyObject *module, int flag);
35017db96d56Sopenharmony_ci
35027db96d56Sopenharmony_cistatic PyObject *
35037db96d56Sopenharmony_ci_curses_qiflush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
35047db96d56Sopenharmony_ci{
35057db96d56Sopenharmony_ci    PyObject *return_value = NULL;
35067db96d56Sopenharmony_ci    int flag = 1;
35077db96d56Sopenharmony_ci
35087db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("qiflush", nargs, 0, 1)) {
35097db96d56Sopenharmony_ci        goto exit;
35107db96d56Sopenharmony_ci    }
35117db96d56Sopenharmony_ci    if (nargs < 1) {
35127db96d56Sopenharmony_ci        goto skip_optional;
35137db96d56Sopenharmony_ci    }
35147db96d56Sopenharmony_ci    flag = _PyLong_AsInt(args[0]);
35157db96d56Sopenharmony_ci    if (flag == -1 && PyErr_Occurred()) {
35167db96d56Sopenharmony_ci        goto exit;
35177db96d56Sopenharmony_ci    }
35187db96d56Sopenharmony_ciskip_optional:
35197db96d56Sopenharmony_ci    return_value = _curses_qiflush_impl(module, flag);
35207db96d56Sopenharmony_ci
35217db96d56Sopenharmony_ciexit:
35227db96d56Sopenharmony_ci    return return_value;
35237db96d56Sopenharmony_ci}
35247db96d56Sopenharmony_ci
35257db96d56Sopenharmony_ci#if (defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM))
35267db96d56Sopenharmony_ci
35277db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_update_lines_cols__doc__,
35287db96d56Sopenharmony_ci"update_lines_cols($module, /)\n"
35297db96d56Sopenharmony_ci"--\n"
35307db96d56Sopenharmony_ci"\n");
35317db96d56Sopenharmony_ci
35327db96d56Sopenharmony_ci#define _CURSES_UPDATE_LINES_COLS_METHODDEF    \
35337db96d56Sopenharmony_ci    {"update_lines_cols", (PyCFunction)_curses_update_lines_cols, METH_NOARGS, _curses_update_lines_cols__doc__},
35347db96d56Sopenharmony_ci
35357db96d56Sopenharmony_cistatic PyObject *
35367db96d56Sopenharmony_ci_curses_update_lines_cols_impl(PyObject *module);
35377db96d56Sopenharmony_ci
35387db96d56Sopenharmony_cistatic PyObject *
35397db96d56Sopenharmony_ci_curses_update_lines_cols(PyObject *module, PyObject *Py_UNUSED(ignored))
35407db96d56Sopenharmony_ci{
35417db96d56Sopenharmony_ci    return _curses_update_lines_cols_impl(module);
35427db96d56Sopenharmony_ci}
35437db96d56Sopenharmony_ci
35447db96d56Sopenharmony_ci#endif /* (defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM)) */
35457db96d56Sopenharmony_ci
35467db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_raw__doc__,
35477db96d56Sopenharmony_ci"raw($module, flag=True, /)\n"
35487db96d56Sopenharmony_ci"--\n"
35497db96d56Sopenharmony_ci"\n"
35507db96d56Sopenharmony_ci"Enter raw mode.\n"
35517db96d56Sopenharmony_ci"\n"
35527db96d56Sopenharmony_ci"  flag\n"
35537db96d56Sopenharmony_ci"    If false, the effect is the same as calling noraw().\n"
35547db96d56Sopenharmony_ci"\n"
35557db96d56Sopenharmony_ci"In raw mode, normal line buffering and processing of interrupt, quit,\n"
35567db96d56Sopenharmony_ci"suspend, and flow control keys are turned off; characters are presented to\n"
35577db96d56Sopenharmony_ci"curses input functions one by one.");
35587db96d56Sopenharmony_ci
35597db96d56Sopenharmony_ci#define _CURSES_RAW_METHODDEF    \
35607db96d56Sopenharmony_ci    {"raw", _PyCFunction_CAST(_curses_raw), METH_FASTCALL, _curses_raw__doc__},
35617db96d56Sopenharmony_ci
35627db96d56Sopenharmony_cistatic PyObject *
35637db96d56Sopenharmony_ci_curses_raw_impl(PyObject *module, int flag);
35647db96d56Sopenharmony_ci
35657db96d56Sopenharmony_cistatic PyObject *
35667db96d56Sopenharmony_ci_curses_raw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
35677db96d56Sopenharmony_ci{
35687db96d56Sopenharmony_ci    PyObject *return_value = NULL;
35697db96d56Sopenharmony_ci    int flag = 1;
35707db96d56Sopenharmony_ci
35717db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("raw", nargs, 0, 1)) {
35727db96d56Sopenharmony_ci        goto exit;
35737db96d56Sopenharmony_ci    }
35747db96d56Sopenharmony_ci    if (nargs < 1) {
35757db96d56Sopenharmony_ci        goto skip_optional;
35767db96d56Sopenharmony_ci    }
35777db96d56Sopenharmony_ci    flag = _PyLong_AsInt(args[0]);
35787db96d56Sopenharmony_ci    if (flag == -1 && PyErr_Occurred()) {
35797db96d56Sopenharmony_ci        goto exit;
35807db96d56Sopenharmony_ci    }
35817db96d56Sopenharmony_ciskip_optional:
35827db96d56Sopenharmony_ci    return_value = _curses_raw_impl(module, flag);
35837db96d56Sopenharmony_ci
35847db96d56Sopenharmony_ciexit:
35857db96d56Sopenharmony_ci    return return_value;
35867db96d56Sopenharmony_ci}
35877db96d56Sopenharmony_ci
35887db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_reset_prog_mode__doc__,
35897db96d56Sopenharmony_ci"reset_prog_mode($module, /)\n"
35907db96d56Sopenharmony_ci"--\n"
35917db96d56Sopenharmony_ci"\n"
35927db96d56Sopenharmony_ci"Restore the terminal to \"program\" mode, as previously saved by def_prog_mode().");
35937db96d56Sopenharmony_ci
35947db96d56Sopenharmony_ci#define _CURSES_RESET_PROG_MODE_METHODDEF    \
35957db96d56Sopenharmony_ci    {"reset_prog_mode", (PyCFunction)_curses_reset_prog_mode, METH_NOARGS, _curses_reset_prog_mode__doc__},
35967db96d56Sopenharmony_ci
35977db96d56Sopenharmony_cistatic PyObject *
35987db96d56Sopenharmony_ci_curses_reset_prog_mode_impl(PyObject *module);
35997db96d56Sopenharmony_ci
36007db96d56Sopenharmony_cistatic PyObject *
36017db96d56Sopenharmony_ci_curses_reset_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
36027db96d56Sopenharmony_ci{
36037db96d56Sopenharmony_ci    return _curses_reset_prog_mode_impl(module);
36047db96d56Sopenharmony_ci}
36057db96d56Sopenharmony_ci
36067db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_reset_shell_mode__doc__,
36077db96d56Sopenharmony_ci"reset_shell_mode($module, /)\n"
36087db96d56Sopenharmony_ci"--\n"
36097db96d56Sopenharmony_ci"\n"
36107db96d56Sopenharmony_ci"Restore the terminal to \"shell\" mode, as previously saved by def_shell_mode().");
36117db96d56Sopenharmony_ci
36127db96d56Sopenharmony_ci#define _CURSES_RESET_SHELL_MODE_METHODDEF    \
36137db96d56Sopenharmony_ci    {"reset_shell_mode", (PyCFunction)_curses_reset_shell_mode, METH_NOARGS, _curses_reset_shell_mode__doc__},
36147db96d56Sopenharmony_ci
36157db96d56Sopenharmony_cistatic PyObject *
36167db96d56Sopenharmony_ci_curses_reset_shell_mode_impl(PyObject *module);
36177db96d56Sopenharmony_ci
36187db96d56Sopenharmony_cistatic PyObject *
36197db96d56Sopenharmony_ci_curses_reset_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
36207db96d56Sopenharmony_ci{
36217db96d56Sopenharmony_ci    return _curses_reset_shell_mode_impl(module);
36227db96d56Sopenharmony_ci}
36237db96d56Sopenharmony_ci
36247db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_resetty__doc__,
36257db96d56Sopenharmony_ci"resetty($module, /)\n"
36267db96d56Sopenharmony_ci"--\n"
36277db96d56Sopenharmony_ci"\n"
36287db96d56Sopenharmony_ci"Restore terminal mode.");
36297db96d56Sopenharmony_ci
36307db96d56Sopenharmony_ci#define _CURSES_RESETTY_METHODDEF    \
36317db96d56Sopenharmony_ci    {"resetty", (PyCFunction)_curses_resetty, METH_NOARGS, _curses_resetty__doc__},
36327db96d56Sopenharmony_ci
36337db96d56Sopenharmony_cistatic PyObject *
36347db96d56Sopenharmony_ci_curses_resetty_impl(PyObject *module);
36357db96d56Sopenharmony_ci
36367db96d56Sopenharmony_cistatic PyObject *
36377db96d56Sopenharmony_ci_curses_resetty(PyObject *module, PyObject *Py_UNUSED(ignored))
36387db96d56Sopenharmony_ci{
36397db96d56Sopenharmony_ci    return _curses_resetty_impl(module);
36407db96d56Sopenharmony_ci}
36417db96d56Sopenharmony_ci
36427db96d56Sopenharmony_ci#if defined(HAVE_CURSES_RESIZETERM)
36437db96d56Sopenharmony_ci
36447db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_resizeterm__doc__,
36457db96d56Sopenharmony_ci"resizeterm($module, nlines, ncols, /)\n"
36467db96d56Sopenharmony_ci"--\n"
36477db96d56Sopenharmony_ci"\n"
36487db96d56Sopenharmony_ci"Resize the standard and current windows to the specified dimensions.\n"
36497db96d56Sopenharmony_ci"\n"
36507db96d56Sopenharmony_ci"  nlines\n"
36517db96d56Sopenharmony_ci"    Height.\n"
36527db96d56Sopenharmony_ci"  ncols\n"
36537db96d56Sopenharmony_ci"    Width.\n"
36547db96d56Sopenharmony_ci"\n"
36557db96d56Sopenharmony_ci"Adjusts other bookkeeping data used by the curses library that record the\n"
36567db96d56Sopenharmony_ci"window dimensions (in particular the SIGWINCH handler).");
36577db96d56Sopenharmony_ci
36587db96d56Sopenharmony_ci#define _CURSES_RESIZETERM_METHODDEF    \
36597db96d56Sopenharmony_ci    {"resizeterm", _PyCFunction_CAST(_curses_resizeterm), METH_FASTCALL, _curses_resizeterm__doc__},
36607db96d56Sopenharmony_ci
36617db96d56Sopenharmony_cistatic PyObject *
36627db96d56Sopenharmony_ci_curses_resizeterm_impl(PyObject *module, int nlines, int ncols);
36637db96d56Sopenharmony_ci
36647db96d56Sopenharmony_cistatic PyObject *
36657db96d56Sopenharmony_ci_curses_resizeterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
36667db96d56Sopenharmony_ci{
36677db96d56Sopenharmony_ci    PyObject *return_value = NULL;
36687db96d56Sopenharmony_ci    int nlines;
36697db96d56Sopenharmony_ci    int ncols;
36707db96d56Sopenharmony_ci
36717db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("resizeterm", nargs, 2, 2)) {
36727db96d56Sopenharmony_ci        goto exit;
36737db96d56Sopenharmony_ci    }
36747db96d56Sopenharmony_ci    nlines = _PyLong_AsInt(args[0]);
36757db96d56Sopenharmony_ci    if (nlines == -1 && PyErr_Occurred()) {
36767db96d56Sopenharmony_ci        goto exit;
36777db96d56Sopenharmony_ci    }
36787db96d56Sopenharmony_ci    ncols = _PyLong_AsInt(args[1]);
36797db96d56Sopenharmony_ci    if (ncols == -1 && PyErr_Occurred()) {
36807db96d56Sopenharmony_ci        goto exit;
36817db96d56Sopenharmony_ci    }
36827db96d56Sopenharmony_ci    return_value = _curses_resizeterm_impl(module, nlines, ncols);
36837db96d56Sopenharmony_ci
36847db96d56Sopenharmony_ciexit:
36857db96d56Sopenharmony_ci    return return_value;
36867db96d56Sopenharmony_ci}
36877db96d56Sopenharmony_ci
36887db96d56Sopenharmony_ci#endif /* defined(HAVE_CURSES_RESIZETERM) */
36897db96d56Sopenharmony_ci
36907db96d56Sopenharmony_ci#if defined(HAVE_CURSES_RESIZE_TERM)
36917db96d56Sopenharmony_ci
36927db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_resize_term__doc__,
36937db96d56Sopenharmony_ci"resize_term($module, nlines, ncols, /)\n"
36947db96d56Sopenharmony_ci"--\n"
36957db96d56Sopenharmony_ci"\n"
36967db96d56Sopenharmony_ci"Backend function used by resizeterm(), performing most of the work.\n"
36977db96d56Sopenharmony_ci"\n"
36987db96d56Sopenharmony_ci"  nlines\n"
36997db96d56Sopenharmony_ci"    Height.\n"
37007db96d56Sopenharmony_ci"  ncols\n"
37017db96d56Sopenharmony_ci"    Width.\n"
37027db96d56Sopenharmony_ci"\n"
37037db96d56Sopenharmony_ci"When resizing the windows, resize_term() blank-fills the areas that are\n"
37047db96d56Sopenharmony_ci"extended.  The calling application should fill in these areas with appropriate\n"
37057db96d56Sopenharmony_ci"data.  The resize_term() function attempts to resize all windows.  However,\n"
37067db96d56Sopenharmony_ci"due to the calling convention of pads, it is not possible to resize these\n"
37077db96d56Sopenharmony_ci"without additional interaction with the application.");
37087db96d56Sopenharmony_ci
37097db96d56Sopenharmony_ci#define _CURSES_RESIZE_TERM_METHODDEF    \
37107db96d56Sopenharmony_ci    {"resize_term", _PyCFunction_CAST(_curses_resize_term), METH_FASTCALL, _curses_resize_term__doc__},
37117db96d56Sopenharmony_ci
37127db96d56Sopenharmony_cistatic PyObject *
37137db96d56Sopenharmony_ci_curses_resize_term_impl(PyObject *module, int nlines, int ncols);
37147db96d56Sopenharmony_ci
37157db96d56Sopenharmony_cistatic PyObject *
37167db96d56Sopenharmony_ci_curses_resize_term(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
37177db96d56Sopenharmony_ci{
37187db96d56Sopenharmony_ci    PyObject *return_value = NULL;
37197db96d56Sopenharmony_ci    int nlines;
37207db96d56Sopenharmony_ci    int ncols;
37217db96d56Sopenharmony_ci
37227db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("resize_term", nargs, 2, 2)) {
37237db96d56Sopenharmony_ci        goto exit;
37247db96d56Sopenharmony_ci    }
37257db96d56Sopenharmony_ci    nlines = _PyLong_AsInt(args[0]);
37267db96d56Sopenharmony_ci    if (nlines == -1 && PyErr_Occurred()) {
37277db96d56Sopenharmony_ci        goto exit;
37287db96d56Sopenharmony_ci    }
37297db96d56Sopenharmony_ci    ncols = _PyLong_AsInt(args[1]);
37307db96d56Sopenharmony_ci    if (ncols == -1 && PyErr_Occurred()) {
37317db96d56Sopenharmony_ci        goto exit;
37327db96d56Sopenharmony_ci    }
37337db96d56Sopenharmony_ci    return_value = _curses_resize_term_impl(module, nlines, ncols);
37347db96d56Sopenharmony_ci
37357db96d56Sopenharmony_ciexit:
37367db96d56Sopenharmony_ci    return return_value;
37377db96d56Sopenharmony_ci}
37387db96d56Sopenharmony_ci
37397db96d56Sopenharmony_ci#endif /* defined(HAVE_CURSES_RESIZE_TERM) */
37407db96d56Sopenharmony_ci
37417db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_savetty__doc__,
37427db96d56Sopenharmony_ci"savetty($module, /)\n"
37437db96d56Sopenharmony_ci"--\n"
37447db96d56Sopenharmony_ci"\n"
37457db96d56Sopenharmony_ci"Save terminal mode.");
37467db96d56Sopenharmony_ci
37477db96d56Sopenharmony_ci#define _CURSES_SAVETTY_METHODDEF    \
37487db96d56Sopenharmony_ci    {"savetty", (PyCFunction)_curses_savetty, METH_NOARGS, _curses_savetty__doc__},
37497db96d56Sopenharmony_ci
37507db96d56Sopenharmony_cistatic PyObject *
37517db96d56Sopenharmony_ci_curses_savetty_impl(PyObject *module);
37527db96d56Sopenharmony_ci
37537db96d56Sopenharmony_cistatic PyObject *
37547db96d56Sopenharmony_ci_curses_savetty(PyObject *module, PyObject *Py_UNUSED(ignored))
37557db96d56Sopenharmony_ci{
37567db96d56Sopenharmony_ci    return _curses_savetty_impl(module);
37577db96d56Sopenharmony_ci}
37587db96d56Sopenharmony_ci
37597db96d56Sopenharmony_ci#if defined(getsyx)
37607db96d56Sopenharmony_ci
37617db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_setsyx__doc__,
37627db96d56Sopenharmony_ci"setsyx($module, y, x, /)\n"
37637db96d56Sopenharmony_ci"--\n"
37647db96d56Sopenharmony_ci"\n"
37657db96d56Sopenharmony_ci"Set the virtual screen cursor.\n"
37667db96d56Sopenharmony_ci"\n"
37677db96d56Sopenharmony_ci"  y\n"
37687db96d56Sopenharmony_ci"    Y-coordinate.\n"
37697db96d56Sopenharmony_ci"  x\n"
37707db96d56Sopenharmony_ci"    X-coordinate.\n"
37717db96d56Sopenharmony_ci"\n"
37727db96d56Sopenharmony_ci"If y and x are both -1, then leaveok is set.");
37737db96d56Sopenharmony_ci
37747db96d56Sopenharmony_ci#define _CURSES_SETSYX_METHODDEF    \
37757db96d56Sopenharmony_ci    {"setsyx", _PyCFunction_CAST(_curses_setsyx), METH_FASTCALL, _curses_setsyx__doc__},
37767db96d56Sopenharmony_ci
37777db96d56Sopenharmony_cistatic PyObject *
37787db96d56Sopenharmony_ci_curses_setsyx_impl(PyObject *module, int y, int x);
37797db96d56Sopenharmony_ci
37807db96d56Sopenharmony_cistatic PyObject *
37817db96d56Sopenharmony_ci_curses_setsyx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
37827db96d56Sopenharmony_ci{
37837db96d56Sopenharmony_ci    PyObject *return_value = NULL;
37847db96d56Sopenharmony_ci    int y;
37857db96d56Sopenharmony_ci    int x;
37867db96d56Sopenharmony_ci
37877db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("setsyx", nargs, 2, 2)) {
37887db96d56Sopenharmony_ci        goto exit;
37897db96d56Sopenharmony_ci    }
37907db96d56Sopenharmony_ci    y = _PyLong_AsInt(args[0]);
37917db96d56Sopenharmony_ci    if (y == -1 && PyErr_Occurred()) {
37927db96d56Sopenharmony_ci        goto exit;
37937db96d56Sopenharmony_ci    }
37947db96d56Sopenharmony_ci    x = _PyLong_AsInt(args[1]);
37957db96d56Sopenharmony_ci    if (x == -1 && PyErr_Occurred()) {
37967db96d56Sopenharmony_ci        goto exit;
37977db96d56Sopenharmony_ci    }
37987db96d56Sopenharmony_ci    return_value = _curses_setsyx_impl(module, y, x);
37997db96d56Sopenharmony_ci
38007db96d56Sopenharmony_ciexit:
38017db96d56Sopenharmony_ci    return return_value;
38027db96d56Sopenharmony_ci}
38037db96d56Sopenharmony_ci
38047db96d56Sopenharmony_ci#endif /* defined(getsyx) */
38057db96d56Sopenharmony_ci
38067db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_start_color__doc__,
38077db96d56Sopenharmony_ci"start_color($module, /)\n"
38087db96d56Sopenharmony_ci"--\n"
38097db96d56Sopenharmony_ci"\n"
38107db96d56Sopenharmony_ci"Initializes eight basic colors and global variables COLORS and COLOR_PAIRS.\n"
38117db96d56Sopenharmony_ci"\n"
38127db96d56Sopenharmony_ci"Must be called if the programmer wants to use colors, and before any other\n"
38137db96d56Sopenharmony_ci"color manipulation routine is called.  It is good practice to call this\n"
38147db96d56Sopenharmony_ci"routine right after initscr().\n"
38157db96d56Sopenharmony_ci"\n"
38167db96d56Sopenharmony_ci"It also restores the colors on the terminal to the values they had when the\n"
38177db96d56Sopenharmony_ci"terminal was just turned on.");
38187db96d56Sopenharmony_ci
38197db96d56Sopenharmony_ci#define _CURSES_START_COLOR_METHODDEF    \
38207db96d56Sopenharmony_ci    {"start_color", (PyCFunction)_curses_start_color, METH_NOARGS, _curses_start_color__doc__},
38217db96d56Sopenharmony_ci
38227db96d56Sopenharmony_cistatic PyObject *
38237db96d56Sopenharmony_ci_curses_start_color_impl(PyObject *module);
38247db96d56Sopenharmony_ci
38257db96d56Sopenharmony_cistatic PyObject *
38267db96d56Sopenharmony_ci_curses_start_color(PyObject *module, PyObject *Py_UNUSED(ignored))
38277db96d56Sopenharmony_ci{
38287db96d56Sopenharmony_ci    return _curses_start_color_impl(module);
38297db96d56Sopenharmony_ci}
38307db96d56Sopenharmony_ci
38317db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_termattrs__doc__,
38327db96d56Sopenharmony_ci"termattrs($module, /)\n"
38337db96d56Sopenharmony_ci"--\n"
38347db96d56Sopenharmony_ci"\n"
38357db96d56Sopenharmony_ci"Return a logical OR of all video attributes supported by the terminal.");
38367db96d56Sopenharmony_ci
38377db96d56Sopenharmony_ci#define _CURSES_TERMATTRS_METHODDEF    \
38387db96d56Sopenharmony_ci    {"termattrs", (PyCFunction)_curses_termattrs, METH_NOARGS, _curses_termattrs__doc__},
38397db96d56Sopenharmony_ci
38407db96d56Sopenharmony_cistatic PyObject *
38417db96d56Sopenharmony_ci_curses_termattrs_impl(PyObject *module);
38427db96d56Sopenharmony_ci
38437db96d56Sopenharmony_cistatic PyObject *
38447db96d56Sopenharmony_ci_curses_termattrs(PyObject *module, PyObject *Py_UNUSED(ignored))
38457db96d56Sopenharmony_ci{
38467db96d56Sopenharmony_ci    return _curses_termattrs_impl(module);
38477db96d56Sopenharmony_ci}
38487db96d56Sopenharmony_ci
38497db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_termname__doc__,
38507db96d56Sopenharmony_ci"termname($module, /)\n"
38517db96d56Sopenharmony_ci"--\n"
38527db96d56Sopenharmony_ci"\n"
38537db96d56Sopenharmony_ci"Return the value of the environment variable TERM, truncated to 14 characters.");
38547db96d56Sopenharmony_ci
38557db96d56Sopenharmony_ci#define _CURSES_TERMNAME_METHODDEF    \
38567db96d56Sopenharmony_ci    {"termname", (PyCFunction)_curses_termname, METH_NOARGS, _curses_termname__doc__},
38577db96d56Sopenharmony_ci
38587db96d56Sopenharmony_cistatic PyObject *
38597db96d56Sopenharmony_ci_curses_termname_impl(PyObject *module);
38607db96d56Sopenharmony_ci
38617db96d56Sopenharmony_cistatic PyObject *
38627db96d56Sopenharmony_ci_curses_termname(PyObject *module, PyObject *Py_UNUSED(ignored))
38637db96d56Sopenharmony_ci{
38647db96d56Sopenharmony_ci    return _curses_termname_impl(module);
38657db96d56Sopenharmony_ci}
38667db96d56Sopenharmony_ci
38677db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_tigetflag__doc__,
38687db96d56Sopenharmony_ci"tigetflag($module, capname, /)\n"
38697db96d56Sopenharmony_ci"--\n"
38707db96d56Sopenharmony_ci"\n"
38717db96d56Sopenharmony_ci"Return the value of the Boolean capability.\n"
38727db96d56Sopenharmony_ci"\n"
38737db96d56Sopenharmony_ci"  capname\n"
38747db96d56Sopenharmony_ci"    The terminfo capability name.\n"
38757db96d56Sopenharmony_ci"\n"
38767db96d56Sopenharmony_ci"The value -1 is returned if capname is not a Boolean capability, or 0 if\n"
38777db96d56Sopenharmony_ci"it is canceled or absent from the terminal description.");
38787db96d56Sopenharmony_ci
38797db96d56Sopenharmony_ci#define _CURSES_TIGETFLAG_METHODDEF    \
38807db96d56Sopenharmony_ci    {"tigetflag", (PyCFunction)_curses_tigetflag, METH_O, _curses_tigetflag__doc__},
38817db96d56Sopenharmony_ci
38827db96d56Sopenharmony_cistatic PyObject *
38837db96d56Sopenharmony_ci_curses_tigetflag_impl(PyObject *module, const char *capname);
38847db96d56Sopenharmony_ci
38857db96d56Sopenharmony_cistatic PyObject *
38867db96d56Sopenharmony_ci_curses_tigetflag(PyObject *module, PyObject *arg)
38877db96d56Sopenharmony_ci{
38887db96d56Sopenharmony_ci    PyObject *return_value = NULL;
38897db96d56Sopenharmony_ci    const char *capname;
38907db96d56Sopenharmony_ci
38917db96d56Sopenharmony_ci    if (!PyUnicode_Check(arg)) {
38927db96d56Sopenharmony_ci        _PyArg_BadArgument("tigetflag", "argument", "str", arg);
38937db96d56Sopenharmony_ci        goto exit;
38947db96d56Sopenharmony_ci    }
38957db96d56Sopenharmony_ci    Py_ssize_t capname_length;
38967db96d56Sopenharmony_ci    capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
38977db96d56Sopenharmony_ci    if (capname == NULL) {
38987db96d56Sopenharmony_ci        goto exit;
38997db96d56Sopenharmony_ci    }
39007db96d56Sopenharmony_ci    if (strlen(capname) != (size_t)capname_length) {
39017db96d56Sopenharmony_ci        PyErr_SetString(PyExc_ValueError, "embedded null character");
39027db96d56Sopenharmony_ci        goto exit;
39037db96d56Sopenharmony_ci    }
39047db96d56Sopenharmony_ci    return_value = _curses_tigetflag_impl(module, capname);
39057db96d56Sopenharmony_ci
39067db96d56Sopenharmony_ciexit:
39077db96d56Sopenharmony_ci    return return_value;
39087db96d56Sopenharmony_ci}
39097db96d56Sopenharmony_ci
39107db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_tigetnum__doc__,
39117db96d56Sopenharmony_ci"tigetnum($module, capname, /)\n"
39127db96d56Sopenharmony_ci"--\n"
39137db96d56Sopenharmony_ci"\n"
39147db96d56Sopenharmony_ci"Return the value of the numeric capability.\n"
39157db96d56Sopenharmony_ci"\n"
39167db96d56Sopenharmony_ci"  capname\n"
39177db96d56Sopenharmony_ci"    The terminfo capability name.\n"
39187db96d56Sopenharmony_ci"\n"
39197db96d56Sopenharmony_ci"The value -2 is returned if capname is not a numeric capability, or -1 if\n"
39207db96d56Sopenharmony_ci"it is canceled or absent from the terminal description.");
39217db96d56Sopenharmony_ci
39227db96d56Sopenharmony_ci#define _CURSES_TIGETNUM_METHODDEF    \
39237db96d56Sopenharmony_ci    {"tigetnum", (PyCFunction)_curses_tigetnum, METH_O, _curses_tigetnum__doc__},
39247db96d56Sopenharmony_ci
39257db96d56Sopenharmony_cistatic PyObject *
39267db96d56Sopenharmony_ci_curses_tigetnum_impl(PyObject *module, const char *capname);
39277db96d56Sopenharmony_ci
39287db96d56Sopenharmony_cistatic PyObject *
39297db96d56Sopenharmony_ci_curses_tigetnum(PyObject *module, PyObject *arg)
39307db96d56Sopenharmony_ci{
39317db96d56Sopenharmony_ci    PyObject *return_value = NULL;
39327db96d56Sopenharmony_ci    const char *capname;
39337db96d56Sopenharmony_ci
39347db96d56Sopenharmony_ci    if (!PyUnicode_Check(arg)) {
39357db96d56Sopenharmony_ci        _PyArg_BadArgument("tigetnum", "argument", "str", arg);
39367db96d56Sopenharmony_ci        goto exit;
39377db96d56Sopenharmony_ci    }
39387db96d56Sopenharmony_ci    Py_ssize_t capname_length;
39397db96d56Sopenharmony_ci    capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
39407db96d56Sopenharmony_ci    if (capname == NULL) {
39417db96d56Sopenharmony_ci        goto exit;
39427db96d56Sopenharmony_ci    }
39437db96d56Sopenharmony_ci    if (strlen(capname) != (size_t)capname_length) {
39447db96d56Sopenharmony_ci        PyErr_SetString(PyExc_ValueError, "embedded null character");
39457db96d56Sopenharmony_ci        goto exit;
39467db96d56Sopenharmony_ci    }
39477db96d56Sopenharmony_ci    return_value = _curses_tigetnum_impl(module, capname);
39487db96d56Sopenharmony_ci
39497db96d56Sopenharmony_ciexit:
39507db96d56Sopenharmony_ci    return return_value;
39517db96d56Sopenharmony_ci}
39527db96d56Sopenharmony_ci
39537db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_tigetstr__doc__,
39547db96d56Sopenharmony_ci"tigetstr($module, capname, /)\n"
39557db96d56Sopenharmony_ci"--\n"
39567db96d56Sopenharmony_ci"\n"
39577db96d56Sopenharmony_ci"Return the value of the string capability.\n"
39587db96d56Sopenharmony_ci"\n"
39597db96d56Sopenharmony_ci"  capname\n"
39607db96d56Sopenharmony_ci"    The terminfo capability name.\n"
39617db96d56Sopenharmony_ci"\n"
39627db96d56Sopenharmony_ci"None is returned if capname is not a string capability, or is canceled or\n"
39637db96d56Sopenharmony_ci"absent from the terminal description.");
39647db96d56Sopenharmony_ci
39657db96d56Sopenharmony_ci#define _CURSES_TIGETSTR_METHODDEF    \
39667db96d56Sopenharmony_ci    {"tigetstr", (PyCFunction)_curses_tigetstr, METH_O, _curses_tigetstr__doc__},
39677db96d56Sopenharmony_ci
39687db96d56Sopenharmony_cistatic PyObject *
39697db96d56Sopenharmony_ci_curses_tigetstr_impl(PyObject *module, const char *capname);
39707db96d56Sopenharmony_ci
39717db96d56Sopenharmony_cistatic PyObject *
39727db96d56Sopenharmony_ci_curses_tigetstr(PyObject *module, PyObject *arg)
39737db96d56Sopenharmony_ci{
39747db96d56Sopenharmony_ci    PyObject *return_value = NULL;
39757db96d56Sopenharmony_ci    const char *capname;
39767db96d56Sopenharmony_ci
39777db96d56Sopenharmony_ci    if (!PyUnicode_Check(arg)) {
39787db96d56Sopenharmony_ci        _PyArg_BadArgument("tigetstr", "argument", "str", arg);
39797db96d56Sopenharmony_ci        goto exit;
39807db96d56Sopenharmony_ci    }
39817db96d56Sopenharmony_ci    Py_ssize_t capname_length;
39827db96d56Sopenharmony_ci    capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
39837db96d56Sopenharmony_ci    if (capname == NULL) {
39847db96d56Sopenharmony_ci        goto exit;
39857db96d56Sopenharmony_ci    }
39867db96d56Sopenharmony_ci    if (strlen(capname) != (size_t)capname_length) {
39877db96d56Sopenharmony_ci        PyErr_SetString(PyExc_ValueError, "embedded null character");
39887db96d56Sopenharmony_ci        goto exit;
39897db96d56Sopenharmony_ci    }
39907db96d56Sopenharmony_ci    return_value = _curses_tigetstr_impl(module, capname);
39917db96d56Sopenharmony_ci
39927db96d56Sopenharmony_ciexit:
39937db96d56Sopenharmony_ci    return return_value;
39947db96d56Sopenharmony_ci}
39957db96d56Sopenharmony_ci
39967db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_tparm__doc__,
39977db96d56Sopenharmony_ci"tparm($module, str, i1=0, i2=0, i3=0, i4=0, i5=0, i6=0, i7=0, i8=0,\n"
39987db96d56Sopenharmony_ci"      i9=0, /)\n"
39997db96d56Sopenharmony_ci"--\n"
40007db96d56Sopenharmony_ci"\n"
40017db96d56Sopenharmony_ci"Instantiate the specified byte string with the supplied parameters.\n"
40027db96d56Sopenharmony_ci"\n"
40037db96d56Sopenharmony_ci"  str\n"
40047db96d56Sopenharmony_ci"    Parameterized byte string obtained from the terminfo database.");
40057db96d56Sopenharmony_ci
40067db96d56Sopenharmony_ci#define _CURSES_TPARM_METHODDEF    \
40077db96d56Sopenharmony_ci    {"tparm", _PyCFunction_CAST(_curses_tparm), METH_FASTCALL, _curses_tparm__doc__},
40087db96d56Sopenharmony_ci
40097db96d56Sopenharmony_cistatic PyObject *
40107db96d56Sopenharmony_ci_curses_tparm_impl(PyObject *module, const char *str, int i1, int i2, int i3,
40117db96d56Sopenharmony_ci                   int i4, int i5, int i6, int i7, int i8, int i9);
40127db96d56Sopenharmony_ci
40137db96d56Sopenharmony_cistatic PyObject *
40147db96d56Sopenharmony_ci_curses_tparm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
40157db96d56Sopenharmony_ci{
40167db96d56Sopenharmony_ci    PyObject *return_value = NULL;
40177db96d56Sopenharmony_ci    const char *str;
40187db96d56Sopenharmony_ci    int i1 = 0;
40197db96d56Sopenharmony_ci    int i2 = 0;
40207db96d56Sopenharmony_ci    int i3 = 0;
40217db96d56Sopenharmony_ci    int i4 = 0;
40227db96d56Sopenharmony_ci    int i5 = 0;
40237db96d56Sopenharmony_ci    int i6 = 0;
40247db96d56Sopenharmony_ci    int i7 = 0;
40257db96d56Sopenharmony_ci    int i8 = 0;
40267db96d56Sopenharmony_ci    int i9 = 0;
40277db96d56Sopenharmony_ci
40287db96d56Sopenharmony_ci    if (!_PyArg_ParseStack(args, nargs, "y|iiiiiiiii:tparm",
40297db96d56Sopenharmony_ci        &str, &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8, &i9)) {
40307db96d56Sopenharmony_ci        goto exit;
40317db96d56Sopenharmony_ci    }
40327db96d56Sopenharmony_ci    return_value = _curses_tparm_impl(module, str, i1, i2, i3, i4, i5, i6, i7, i8, i9);
40337db96d56Sopenharmony_ci
40347db96d56Sopenharmony_ciexit:
40357db96d56Sopenharmony_ci    return return_value;
40367db96d56Sopenharmony_ci}
40377db96d56Sopenharmony_ci
40387db96d56Sopenharmony_ci#if defined(HAVE_CURSES_TYPEAHEAD)
40397db96d56Sopenharmony_ci
40407db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_typeahead__doc__,
40417db96d56Sopenharmony_ci"typeahead($module, fd, /)\n"
40427db96d56Sopenharmony_ci"--\n"
40437db96d56Sopenharmony_ci"\n"
40447db96d56Sopenharmony_ci"Specify that the file descriptor fd be used for typeahead checking.\n"
40457db96d56Sopenharmony_ci"\n"
40467db96d56Sopenharmony_ci"  fd\n"
40477db96d56Sopenharmony_ci"    File descriptor.\n"
40487db96d56Sopenharmony_ci"\n"
40497db96d56Sopenharmony_ci"If fd is -1, then no typeahead checking is done.");
40507db96d56Sopenharmony_ci
40517db96d56Sopenharmony_ci#define _CURSES_TYPEAHEAD_METHODDEF    \
40527db96d56Sopenharmony_ci    {"typeahead", (PyCFunction)_curses_typeahead, METH_O, _curses_typeahead__doc__},
40537db96d56Sopenharmony_ci
40547db96d56Sopenharmony_cistatic PyObject *
40557db96d56Sopenharmony_ci_curses_typeahead_impl(PyObject *module, int fd);
40567db96d56Sopenharmony_ci
40577db96d56Sopenharmony_cistatic PyObject *
40587db96d56Sopenharmony_ci_curses_typeahead(PyObject *module, PyObject *arg)
40597db96d56Sopenharmony_ci{
40607db96d56Sopenharmony_ci    PyObject *return_value = NULL;
40617db96d56Sopenharmony_ci    int fd;
40627db96d56Sopenharmony_ci
40637db96d56Sopenharmony_ci    fd = _PyLong_AsInt(arg);
40647db96d56Sopenharmony_ci    if (fd == -1 && PyErr_Occurred()) {
40657db96d56Sopenharmony_ci        goto exit;
40667db96d56Sopenharmony_ci    }
40677db96d56Sopenharmony_ci    return_value = _curses_typeahead_impl(module, fd);
40687db96d56Sopenharmony_ci
40697db96d56Sopenharmony_ciexit:
40707db96d56Sopenharmony_ci    return return_value;
40717db96d56Sopenharmony_ci}
40727db96d56Sopenharmony_ci
40737db96d56Sopenharmony_ci#endif /* defined(HAVE_CURSES_TYPEAHEAD) */
40747db96d56Sopenharmony_ci
40757db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_unctrl__doc__,
40767db96d56Sopenharmony_ci"unctrl($module, ch, /)\n"
40777db96d56Sopenharmony_ci"--\n"
40787db96d56Sopenharmony_ci"\n"
40797db96d56Sopenharmony_ci"Return a string which is a printable representation of the character ch.\n"
40807db96d56Sopenharmony_ci"\n"
40817db96d56Sopenharmony_ci"Control characters are displayed as a caret followed by the character,\n"
40827db96d56Sopenharmony_ci"for example as ^C.  Printing characters are left as they are.");
40837db96d56Sopenharmony_ci
40847db96d56Sopenharmony_ci#define _CURSES_UNCTRL_METHODDEF    \
40857db96d56Sopenharmony_ci    {"unctrl", (PyCFunction)_curses_unctrl, METH_O, _curses_unctrl__doc__},
40867db96d56Sopenharmony_ci
40877db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_ungetch__doc__,
40887db96d56Sopenharmony_ci"ungetch($module, ch, /)\n"
40897db96d56Sopenharmony_ci"--\n"
40907db96d56Sopenharmony_ci"\n"
40917db96d56Sopenharmony_ci"Push ch so the next getch() will return it.");
40927db96d56Sopenharmony_ci
40937db96d56Sopenharmony_ci#define _CURSES_UNGETCH_METHODDEF    \
40947db96d56Sopenharmony_ci    {"ungetch", (PyCFunction)_curses_ungetch, METH_O, _curses_ungetch__doc__},
40957db96d56Sopenharmony_ci
40967db96d56Sopenharmony_ci#if defined(HAVE_NCURSESW)
40977db96d56Sopenharmony_ci
40987db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_unget_wch__doc__,
40997db96d56Sopenharmony_ci"unget_wch($module, ch, /)\n"
41007db96d56Sopenharmony_ci"--\n"
41017db96d56Sopenharmony_ci"\n"
41027db96d56Sopenharmony_ci"Push ch so the next get_wch() will return it.");
41037db96d56Sopenharmony_ci
41047db96d56Sopenharmony_ci#define _CURSES_UNGET_WCH_METHODDEF    \
41057db96d56Sopenharmony_ci    {"unget_wch", (PyCFunction)_curses_unget_wch, METH_O, _curses_unget_wch__doc__},
41067db96d56Sopenharmony_ci
41077db96d56Sopenharmony_ci#endif /* defined(HAVE_NCURSESW) */
41087db96d56Sopenharmony_ci
41097db96d56Sopenharmony_ci#if defined(HAVE_CURSES_USE_ENV)
41107db96d56Sopenharmony_ci
41117db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_use_env__doc__,
41127db96d56Sopenharmony_ci"use_env($module, flag, /)\n"
41137db96d56Sopenharmony_ci"--\n"
41147db96d56Sopenharmony_ci"\n"
41157db96d56Sopenharmony_ci"Use environment variables LINES and COLUMNS.\n"
41167db96d56Sopenharmony_ci"\n"
41177db96d56Sopenharmony_ci"If used, this function should be called before initscr() or newterm() are\n"
41187db96d56Sopenharmony_ci"called.\n"
41197db96d56Sopenharmony_ci"\n"
41207db96d56Sopenharmony_ci"When flag is False, the values of lines and columns specified in the terminfo\n"
41217db96d56Sopenharmony_ci"database will be used, even if environment variables LINES and COLUMNS (used\n"
41227db96d56Sopenharmony_ci"by default) are set, or if curses is running in a window (in which case\n"
41237db96d56Sopenharmony_ci"default behavior would be to use the window size if LINES and COLUMNS are\n"
41247db96d56Sopenharmony_ci"not set).");
41257db96d56Sopenharmony_ci
41267db96d56Sopenharmony_ci#define _CURSES_USE_ENV_METHODDEF    \
41277db96d56Sopenharmony_ci    {"use_env", (PyCFunction)_curses_use_env, METH_O, _curses_use_env__doc__},
41287db96d56Sopenharmony_ci
41297db96d56Sopenharmony_cistatic PyObject *
41307db96d56Sopenharmony_ci_curses_use_env_impl(PyObject *module, int flag);
41317db96d56Sopenharmony_ci
41327db96d56Sopenharmony_cistatic PyObject *
41337db96d56Sopenharmony_ci_curses_use_env(PyObject *module, PyObject *arg)
41347db96d56Sopenharmony_ci{
41357db96d56Sopenharmony_ci    PyObject *return_value = NULL;
41367db96d56Sopenharmony_ci    int flag;
41377db96d56Sopenharmony_ci
41387db96d56Sopenharmony_ci    flag = _PyLong_AsInt(arg);
41397db96d56Sopenharmony_ci    if (flag == -1 && PyErr_Occurred()) {
41407db96d56Sopenharmony_ci        goto exit;
41417db96d56Sopenharmony_ci    }
41427db96d56Sopenharmony_ci    return_value = _curses_use_env_impl(module, flag);
41437db96d56Sopenharmony_ci
41447db96d56Sopenharmony_ciexit:
41457db96d56Sopenharmony_ci    return return_value;
41467db96d56Sopenharmony_ci}
41477db96d56Sopenharmony_ci
41487db96d56Sopenharmony_ci#endif /* defined(HAVE_CURSES_USE_ENV) */
41497db96d56Sopenharmony_ci
41507db96d56Sopenharmony_ci#if !defined(STRICT_SYSV_CURSES)
41517db96d56Sopenharmony_ci
41527db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_use_default_colors__doc__,
41537db96d56Sopenharmony_ci"use_default_colors($module, /)\n"
41547db96d56Sopenharmony_ci"--\n"
41557db96d56Sopenharmony_ci"\n"
41567db96d56Sopenharmony_ci"Allow use of default values for colors on terminals supporting this feature.\n"
41577db96d56Sopenharmony_ci"\n"
41587db96d56Sopenharmony_ci"Use this to support transparency in your application.  The default color\n"
41597db96d56Sopenharmony_ci"is assigned to the color number -1.");
41607db96d56Sopenharmony_ci
41617db96d56Sopenharmony_ci#define _CURSES_USE_DEFAULT_COLORS_METHODDEF    \
41627db96d56Sopenharmony_ci    {"use_default_colors", (PyCFunction)_curses_use_default_colors, METH_NOARGS, _curses_use_default_colors__doc__},
41637db96d56Sopenharmony_ci
41647db96d56Sopenharmony_cistatic PyObject *
41657db96d56Sopenharmony_ci_curses_use_default_colors_impl(PyObject *module);
41667db96d56Sopenharmony_ci
41677db96d56Sopenharmony_cistatic PyObject *
41687db96d56Sopenharmony_ci_curses_use_default_colors(PyObject *module, PyObject *Py_UNUSED(ignored))
41697db96d56Sopenharmony_ci{
41707db96d56Sopenharmony_ci    return _curses_use_default_colors_impl(module);
41717db96d56Sopenharmony_ci}
41727db96d56Sopenharmony_ci
41737db96d56Sopenharmony_ci#endif /* !defined(STRICT_SYSV_CURSES) */
41747db96d56Sopenharmony_ci
41757db96d56Sopenharmony_ciPyDoc_STRVAR(_curses_has_extended_color_support__doc__,
41767db96d56Sopenharmony_ci"has_extended_color_support($module, /)\n"
41777db96d56Sopenharmony_ci"--\n"
41787db96d56Sopenharmony_ci"\n"
41797db96d56Sopenharmony_ci"Return True if the module supports extended colors; otherwise, return False.\n"
41807db96d56Sopenharmony_ci"\n"
41817db96d56Sopenharmony_ci"Extended color support allows more than 256 color-pairs for terminals\n"
41827db96d56Sopenharmony_ci"that support more than 16 colors (e.g. xterm-256color).");
41837db96d56Sopenharmony_ci
41847db96d56Sopenharmony_ci#define _CURSES_HAS_EXTENDED_COLOR_SUPPORT_METHODDEF    \
41857db96d56Sopenharmony_ci    {"has_extended_color_support", (PyCFunction)_curses_has_extended_color_support, METH_NOARGS, _curses_has_extended_color_support__doc__},
41867db96d56Sopenharmony_ci
41877db96d56Sopenharmony_cistatic PyObject *
41887db96d56Sopenharmony_ci_curses_has_extended_color_support_impl(PyObject *module);
41897db96d56Sopenharmony_ci
41907db96d56Sopenharmony_cistatic PyObject *
41917db96d56Sopenharmony_ci_curses_has_extended_color_support(PyObject *module, PyObject *Py_UNUSED(ignored))
41927db96d56Sopenharmony_ci{
41937db96d56Sopenharmony_ci    return _curses_has_extended_color_support_impl(module);
41947db96d56Sopenharmony_ci}
41957db96d56Sopenharmony_ci
41967db96d56Sopenharmony_ci#ifndef _CURSES_WINDOW_ENCLOSE_METHODDEF
41977db96d56Sopenharmony_ci    #define _CURSES_WINDOW_ENCLOSE_METHODDEF
41987db96d56Sopenharmony_ci#endif /* !defined(_CURSES_WINDOW_ENCLOSE_METHODDEF) */
41997db96d56Sopenharmony_ci
42007db96d56Sopenharmony_ci#ifndef _CURSES_WINDOW_GET_WCH_METHODDEF
42017db96d56Sopenharmony_ci    #define _CURSES_WINDOW_GET_WCH_METHODDEF
42027db96d56Sopenharmony_ci#endif /* !defined(_CURSES_WINDOW_GET_WCH_METHODDEF) */
42037db96d56Sopenharmony_ci
42047db96d56Sopenharmony_ci#ifndef _CURSES_WINDOW_NOUTREFRESH_METHODDEF
42057db96d56Sopenharmony_ci    #define _CURSES_WINDOW_NOUTREFRESH_METHODDEF
42067db96d56Sopenharmony_ci#endif /* !defined(_CURSES_WINDOW_NOUTREFRESH_METHODDEF) */
42077db96d56Sopenharmony_ci
42087db96d56Sopenharmony_ci#ifndef _CURSES_FILTER_METHODDEF
42097db96d56Sopenharmony_ci    #define _CURSES_FILTER_METHODDEF
42107db96d56Sopenharmony_ci#endif /* !defined(_CURSES_FILTER_METHODDEF) */
42117db96d56Sopenharmony_ci
42127db96d56Sopenharmony_ci#ifndef _CURSES_GETSYX_METHODDEF
42137db96d56Sopenharmony_ci    #define _CURSES_GETSYX_METHODDEF
42147db96d56Sopenharmony_ci#endif /* !defined(_CURSES_GETSYX_METHODDEF) */
42157db96d56Sopenharmony_ci
42167db96d56Sopenharmony_ci#ifndef _CURSES_GETMOUSE_METHODDEF
42177db96d56Sopenharmony_ci    #define _CURSES_GETMOUSE_METHODDEF
42187db96d56Sopenharmony_ci#endif /* !defined(_CURSES_GETMOUSE_METHODDEF) */
42197db96d56Sopenharmony_ci
42207db96d56Sopenharmony_ci#ifndef _CURSES_UNGETMOUSE_METHODDEF
42217db96d56Sopenharmony_ci    #define _CURSES_UNGETMOUSE_METHODDEF
42227db96d56Sopenharmony_ci#endif /* !defined(_CURSES_UNGETMOUSE_METHODDEF) */
42237db96d56Sopenharmony_ci
42247db96d56Sopenharmony_ci#ifndef _CURSES_HAS_KEY_METHODDEF
42257db96d56Sopenharmony_ci    #define _CURSES_HAS_KEY_METHODDEF
42267db96d56Sopenharmony_ci#endif /* !defined(_CURSES_HAS_KEY_METHODDEF) */
42277db96d56Sopenharmony_ci
42287db96d56Sopenharmony_ci#ifndef _CURSES_GET_ESCDELAY_METHODDEF
42297db96d56Sopenharmony_ci    #define _CURSES_GET_ESCDELAY_METHODDEF
42307db96d56Sopenharmony_ci#endif /* !defined(_CURSES_GET_ESCDELAY_METHODDEF) */
42317db96d56Sopenharmony_ci
42327db96d56Sopenharmony_ci#ifndef _CURSES_SET_ESCDELAY_METHODDEF
42337db96d56Sopenharmony_ci    #define _CURSES_SET_ESCDELAY_METHODDEF
42347db96d56Sopenharmony_ci#endif /* !defined(_CURSES_SET_ESCDELAY_METHODDEF) */
42357db96d56Sopenharmony_ci
42367db96d56Sopenharmony_ci#ifndef _CURSES_GET_TABSIZE_METHODDEF
42377db96d56Sopenharmony_ci    #define _CURSES_GET_TABSIZE_METHODDEF
42387db96d56Sopenharmony_ci#endif /* !defined(_CURSES_GET_TABSIZE_METHODDEF) */
42397db96d56Sopenharmony_ci
42407db96d56Sopenharmony_ci#ifndef _CURSES_SET_TABSIZE_METHODDEF
42417db96d56Sopenharmony_ci    #define _CURSES_SET_TABSIZE_METHODDEF
42427db96d56Sopenharmony_ci#endif /* !defined(_CURSES_SET_TABSIZE_METHODDEF) */
42437db96d56Sopenharmony_ci
42447db96d56Sopenharmony_ci#ifndef _CURSES_IS_TERM_RESIZED_METHODDEF
42457db96d56Sopenharmony_ci    #define _CURSES_IS_TERM_RESIZED_METHODDEF
42467db96d56Sopenharmony_ci#endif /* !defined(_CURSES_IS_TERM_RESIZED_METHODDEF) */
42477db96d56Sopenharmony_ci
42487db96d56Sopenharmony_ci#ifndef _CURSES_MOUSEINTERVAL_METHODDEF
42497db96d56Sopenharmony_ci    #define _CURSES_MOUSEINTERVAL_METHODDEF
42507db96d56Sopenharmony_ci#endif /* !defined(_CURSES_MOUSEINTERVAL_METHODDEF) */
42517db96d56Sopenharmony_ci
42527db96d56Sopenharmony_ci#ifndef _CURSES_MOUSEMASK_METHODDEF
42537db96d56Sopenharmony_ci    #define _CURSES_MOUSEMASK_METHODDEF
42547db96d56Sopenharmony_ci#endif /* !defined(_CURSES_MOUSEMASK_METHODDEF) */
42557db96d56Sopenharmony_ci
42567db96d56Sopenharmony_ci#ifndef _CURSES_UPDATE_LINES_COLS_METHODDEF
42577db96d56Sopenharmony_ci    #define _CURSES_UPDATE_LINES_COLS_METHODDEF
42587db96d56Sopenharmony_ci#endif /* !defined(_CURSES_UPDATE_LINES_COLS_METHODDEF) */
42597db96d56Sopenharmony_ci
42607db96d56Sopenharmony_ci#ifndef _CURSES_RESIZETERM_METHODDEF
42617db96d56Sopenharmony_ci    #define _CURSES_RESIZETERM_METHODDEF
42627db96d56Sopenharmony_ci#endif /* !defined(_CURSES_RESIZETERM_METHODDEF) */
42637db96d56Sopenharmony_ci
42647db96d56Sopenharmony_ci#ifndef _CURSES_RESIZE_TERM_METHODDEF
42657db96d56Sopenharmony_ci    #define _CURSES_RESIZE_TERM_METHODDEF
42667db96d56Sopenharmony_ci#endif /* !defined(_CURSES_RESIZE_TERM_METHODDEF) */
42677db96d56Sopenharmony_ci
42687db96d56Sopenharmony_ci#ifndef _CURSES_SETSYX_METHODDEF
42697db96d56Sopenharmony_ci    #define _CURSES_SETSYX_METHODDEF
42707db96d56Sopenharmony_ci#endif /* !defined(_CURSES_SETSYX_METHODDEF) */
42717db96d56Sopenharmony_ci
42727db96d56Sopenharmony_ci#ifndef _CURSES_TYPEAHEAD_METHODDEF
42737db96d56Sopenharmony_ci    #define _CURSES_TYPEAHEAD_METHODDEF
42747db96d56Sopenharmony_ci#endif /* !defined(_CURSES_TYPEAHEAD_METHODDEF) */
42757db96d56Sopenharmony_ci
42767db96d56Sopenharmony_ci#ifndef _CURSES_UNGET_WCH_METHODDEF
42777db96d56Sopenharmony_ci    #define _CURSES_UNGET_WCH_METHODDEF
42787db96d56Sopenharmony_ci#endif /* !defined(_CURSES_UNGET_WCH_METHODDEF) */
42797db96d56Sopenharmony_ci
42807db96d56Sopenharmony_ci#ifndef _CURSES_USE_ENV_METHODDEF
42817db96d56Sopenharmony_ci    #define _CURSES_USE_ENV_METHODDEF
42827db96d56Sopenharmony_ci#endif /* !defined(_CURSES_USE_ENV_METHODDEF) */
42837db96d56Sopenharmony_ci
42847db96d56Sopenharmony_ci#ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF
42857db96d56Sopenharmony_ci    #define _CURSES_USE_DEFAULT_COLORS_METHODDEF
42867db96d56Sopenharmony_ci#endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */
42877db96d56Sopenharmony_ci/*[clinic end generated code: output=1e2a8a160a0fe811 input=a9049054013a1b77]*/
4288