summaryrefslogtreecommitdiff
path: root/PC/clinic
diff options
context:
space:
mode:
Diffstat (limited to 'PC/clinic')
-rw-r--r--PC/clinic/_testconsole.c.h82
-rw-r--r--PC/clinic/msvcrtmodule.c.h67
-rw-r--r--PC/clinic/winreg.c.h135
-rw-r--r--PC/clinic/winsound.c.h51
4 files changed, 240 insertions, 95 deletions
diff --git a/PC/clinic/_testconsole.c.h b/PC/clinic/_testconsole.c.h
new file mode 100644
index 0000000000..93860cf5b2
--- /dev/null
+++ b/PC/clinic/_testconsole.c.h
@@ -0,0 +1,82 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(_testconsole_write_input__doc__,
+"write_input($module, /, file, s)\n"
+"--\n"
+"\n"
+"Writes UTF-16-LE encoded bytes to the console as if typed by a user.");
+
+#define _TESTCONSOLE_WRITE_INPUT_METHODDEF \
+ {"write_input", (PyCFunction)_testconsole_write_input, METH_FASTCALL, _testconsole_write_input__doc__},
+
+static PyObject *
+_testconsole_write_input_impl(PyObject *module, PyObject *file,
+ PyBytesObject *s);
+
+static PyObject *
+_testconsole_write_input(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"file", "s", NULL};
+ static _PyArg_Parser _parser = {"OS:write_input", _keywords, 0};
+ PyObject *file;
+ PyBytesObject *s;
+
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ &file, &s)) {
+ goto exit;
+ }
+ return_value = _testconsole_write_input_impl(module, file, s);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(_testconsole_read_output__doc__,
+"read_output($module, /, file)\n"
+"--\n"
+"\n"
+"Reads a str from the console as written to stdout.");
+
+#define _TESTCONSOLE_READ_OUTPUT_METHODDEF \
+ {"read_output", (PyCFunction)_testconsole_read_output, METH_FASTCALL, _testconsole_read_output__doc__},
+
+static PyObject *
+_testconsole_read_output_impl(PyObject *module, PyObject *file);
+
+static PyObject *
+_testconsole_read_output(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"file", NULL};
+ static _PyArg_Parser _parser = {"O:read_output", _keywords, 0};
+ PyObject *file;
+
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ &file)) {
+ goto exit;
+ }
+ return_value = _testconsole_read_output_impl(module, file);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#ifndef _TESTCONSOLE_WRITE_INPUT_METHODDEF
+ #define _TESTCONSOLE_WRITE_INPUT_METHODDEF
+#endif /* !defined(_TESTCONSOLE_WRITE_INPUT_METHODDEF) */
+
+#ifndef _TESTCONSOLE_READ_OUTPUT_METHODDEF
+ #define _TESTCONSOLE_READ_OUTPUT_METHODDEF
+#endif /* !defined(_TESTCONSOLE_READ_OUTPUT_METHODDEF) */
+/*[clinic end generated code: output=3a8dc0c421807c41 input=a9049054013a1b77]*/
diff --git a/PC/clinic/msvcrtmodule.c.h b/PC/clinic/msvcrtmodule.c.h
index e7a72c47f6..6935cad7b0 100644
--- a/PC/clinic/msvcrtmodule.c.h
+++ b/PC/clinic/msvcrtmodule.c.h
@@ -51,8 +51,9 @@ msvcrt_locking(PyObject *module, PyObject *args)
long nbytes;
if (!PyArg_ParseTuple(args, "iil:locking",
- &fd, &mode, &nbytes))
+ &fd, &mode, &nbytes)) {
goto exit;
+ }
return_value = msvcrt_locking_impl(module, fd, mode, nbytes);
exit:
@@ -85,11 +86,13 @@ msvcrt_setmode(PyObject *module, PyObject *args)
long _return_value;
if (!PyArg_ParseTuple(args, "ii:setmode",
- &fd, &flags))
+ &fd, &flags)) {
goto exit;
+ }
_return_value = msvcrt_setmode_impl(module, fd, flags);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
+ }
return_value = PyLong_FromLong(_return_value);
exit:
@@ -110,22 +113,24 @@ PyDoc_STRVAR(msvcrt_open_osfhandle__doc__,
{"open_osfhandle", (PyCFunction)msvcrt_open_osfhandle, METH_VARARGS, msvcrt_open_osfhandle__doc__},
static long
-msvcrt_open_osfhandle_impl(PyObject *module, Py_intptr_t handle, int flags);
+msvcrt_open_osfhandle_impl(PyObject *module, intptr_t handle, int flags);
static PyObject *
msvcrt_open_osfhandle(PyObject *module, PyObject *args)
{
PyObject *return_value = NULL;
- Py_intptr_t handle;
+ intptr_t handle;
int flags;
long _return_value;
if (!PyArg_ParseTuple(args, ""_Py_PARSE_INTPTR"i:open_osfhandle",
- &handle, &flags))
+ &handle, &flags)) {
goto exit;
+ }
_return_value = msvcrt_open_osfhandle_impl(module, handle, flags);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
+ }
return_value = PyLong_FromLong(_return_value);
exit:
@@ -143,7 +148,7 @@ PyDoc_STRVAR(msvcrt_get_osfhandle__doc__,
#define MSVCRT_GET_OSFHANDLE_METHODDEF \
{"get_osfhandle", (PyCFunction)msvcrt_get_osfhandle, METH_O, msvcrt_get_osfhandle__doc__},
-static Py_intptr_t
+static intptr_t
msvcrt_get_osfhandle_impl(PyObject *module, int fd);
static PyObject *
@@ -151,13 +156,15 @@ msvcrt_get_osfhandle(PyObject *module, PyObject *arg)
{
PyObject *return_value = NULL;
int fd;
- Py_intptr_t _return_value;
+ intptr_t _return_value;
- if (!PyArg_Parse(arg, "i:get_osfhandle", &fd))
+ if (!PyArg_Parse(arg, "i:get_osfhandle", &fd)) {
goto exit;
+ }
_return_value = msvcrt_get_osfhandle_impl(module, fd);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
+ }
return_value = PyLong_FromVoidPtr((void *)_return_value);
exit:
@@ -183,8 +190,9 @@ msvcrt_kbhit(PyObject *module, PyObject *Py_UNUSED(ignored))
long _return_value;
_return_value = msvcrt_kbhit_impl(module);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
+ }
return_value = PyLong_FromLong(_return_value);
exit:
@@ -311,8 +319,9 @@ msvcrt_putch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
char char_value;
- if (!PyArg_Parse(arg, "c:putch", &char_value))
+ if (!PyArg_Parse(arg, "c:putch", &char_value)) {
goto exit;
+ }
return_value = msvcrt_putch_impl(module, char_value);
exit:
@@ -337,8 +346,9 @@ msvcrt_putwch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int unicode_char;
- if (!PyArg_Parse(arg, "C:putwch", &unicode_char))
+ if (!PyArg_Parse(arg, "C:putwch", &unicode_char)) {
goto exit;
+ }
return_value = msvcrt_putwch_impl(module, unicode_char);
exit:
@@ -367,8 +377,9 @@ msvcrt_ungetch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
char char_value;
- if (!PyArg_Parse(arg, "c:ungetch", &char_value))
+ if (!PyArg_Parse(arg, "c:ungetch", &char_value)) {
goto exit;
+ }
return_value = msvcrt_ungetch_impl(module, char_value);
exit:
@@ -393,8 +404,9 @@ msvcrt_ungetwch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int unicode_char;
- if (!PyArg_Parse(arg, "C:ungetwch", &unicode_char))
+ if (!PyArg_Parse(arg, "C:ungetwch", &unicode_char)) {
goto exit;
+ }
return_value = msvcrt_ungetwch_impl(module, unicode_char);
exit:
@@ -426,11 +438,13 @@ msvcrt_CrtSetReportFile(PyObject *module, PyObject *args)
long _return_value;
if (!PyArg_ParseTuple(args, "ii:CrtSetReportFile",
- &type, &file))
+ &type, &file)) {
goto exit;
+ }
_return_value = msvcrt_CrtSetReportFile_impl(module, type, file);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
+ }
return_value = PyLong_FromLong(_return_value);
exit:
@@ -464,11 +478,13 @@ msvcrt_CrtSetReportMode(PyObject *module, PyObject *args)
long _return_value;
if (!PyArg_ParseTuple(args, "ii:CrtSetReportMode",
- &type, &mode))
+ &type, &mode)) {
goto exit;
+ }
_return_value = msvcrt_CrtSetReportMode_impl(module, type, mode);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
+ }
return_value = PyLong_FromLong(_return_value);
exit:
@@ -500,11 +516,13 @@ msvcrt_set_error_mode(PyObject *module, PyObject *arg)
int mode;
long _return_value;
- if (!PyArg_Parse(arg, "i:set_error_mode", &mode))
+ if (!PyArg_Parse(arg, "i:set_error_mode", &mode)) {
goto exit;
+ }
_return_value = msvcrt_set_error_mode_impl(module, mode);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
+ }
return_value = PyLong_FromLong(_return_value);
exit:
@@ -531,8 +549,9 @@ msvcrt_SetErrorMode(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
unsigned int mode;
- if (!PyArg_Parse(arg, "I:SetErrorMode", &mode))
+ if (!PyArg_Parse(arg, "I:SetErrorMode", &mode)) {
goto exit;
+ }
return_value = msvcrt_SetErrorMode_impl(module, mode);
exit:
@@ -550,4 +569,4 @@ exit:
#ifndef MSVCRT_SET_ERROR_MODE_METHODDEF
#define MSVCRT_SET_ERROR_MODE_METHODDEF
#endif /* !defined(MSVCRT_SET_ERROR_MODE_METHODDEF) */
-/*[clinic end generated code: output=2a794c520d6ae887 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ae04e2b50eef8b63 input=a9049054013a1b77]*/
diff --git a/PC/clinic/winreg.c.h b/PC/clinic/winreg.c.h
index f6ae2c0b92..c7d5b9e452 100644
--- a/PC/clinic/winreg.c.h
+++ b/PC/clinic/winreg.c.h
@@ -77,24 +77,26 @@ PyDoc_STRVAR(winreg_HKEYType___exit____doc__,
"\n");
#define WINREG_HKEYTYPE___EXIT___METHODDEF \
- {"__exit__", (PyCFunction)winreg_HKEYType___exit__, METH_VARARGS|METH_KEYWORDS, winreg_HKEYType___exit____doc__},
+ {"__exit__", (PyCFunction)winreg_HKEYType___exit__, METH_FASTCALL, winreg_HKEYType___exit____doc__},
static PyObject *
winreg_HKEYType___exit___impl(PyHKEYObject *self, PyObject *exc_type,
PyObject *exc_value, PyObject *traceback);
static PyObject *
-winreg_HKEYType___exit__(PyHKEYObject *self, PyObject *args, PyObject *kwargs)
+winreg_HKEYType___exit__(PyHKEYObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static char *_keywords[] = {"exc_type", "exc_value", "traceback", NULL};
+ static const char * const _keywords[] = {"exc_type", "exc_value", "traceback", NULL};
+ static _PyArg_Parser _parser = {"OOO:__exit__", _keywords, 0};
PyObject *exc_type;
PyObject *exc_value;
PyObject *traceback;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OOO:__exit__", _keywords,
- &exc_type, &exc_value, &traceback))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ &exc_type, &exc_value, &traceback)) {
goto exit;
+ }
return_value = winreg_HKEYType___exit___impl(self, exc_type, exc_value, traceback);
exit:
@@ -147,11 +149,13 @@ winreg_ConnectRegistry(PyObject *module, PyObject *args)
HKEY _return_value;
if (!PyArg_ParseTuple(args, "ZO&:ConnectRegistry",
- &computer_name, clinic_HKEY_converter, &key))
+ &computer_name, clinic_HKEY_converter, &key)) {
goto exit;
+ }
_return_value = winreg_ConnectRegistry_impl(module, computer_name, key);
- if (_return_value == NULL)
+ if (_return_value == NULL) {
goto exit;
+ }
return_value = PyHKEY_FromHKEY(_return_value);
exit:
@@ -192,11 +196,13 @@ winreg_CreateKey(PyObject *module, PyObject *args)
HKEY _return_value;
if (!PyArg_ParseTuple(args, "O&Z:CreateKey",
- clinic_HKEY_converter, &key, &sub_key))
+ clinic_HKEY_converter, &key, &sub_key)) {
goto exit;
+ }
_return_value = winreg_CreateKey_impl(module, key, sub_key);
- if (_return_value == NULL)
+ if (_return_value == NULL) {
goto exit;
+ }
return_value = PyHKEY_FromHKEY(_return_value);
exit:
@@ -229,29 +235,32 @@ PyDoc_STRVAR(winreg_CreateKeyEx__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_CREATEKEYEX_METHODDEF \
- {"CreateKeyEx", (PyCFunction)winreg_CreateKeyEx, METH_VARARGS|METH_KEYWORDS, winreg_CreateKeyEx__doc__},
+ {"CreateKeyEx", (PyCFunction)winreg_CreateKeyEx, METH_FASTCALL, winreg_CreateKeyEx__doc__},
static HKEY
winreg_CreateKeyEx_impl(PyObject *module, HKEY key, Py_UNICODE *sub_key,
int reserved, REGSAM access);
static PyObject *
-winreg_CreateKeyEx(PyObject *module, PyObject *args, PyObject *kwargs)
+winreg_CreateKeyEx(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static char *_keywords[] = {"key", "sub_key", "reserved", "access", NULL};
+ static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL};
+ static _PyArg_Parser _parser = {"O&Z|ii:CreateKeyEx", _keywords, 0};
HKEY key;
Py_UNICODE *sub_key;
int reserved = 0;
REGSAM access = KEY_WRITE;
HKEY _return_value;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&Z|ii:CreateKeyEx", _keywords,
- clinic_HKEY_converter, &key, &sub_key, &reserved, &access))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ clinic_HKEY_converter, &key, &sub_key, &reserved, &access)) {
goto exit;
+ }
_return_value = winreg_CreateKeyEx_impl(module, key, sub_key, reserved, access);
- if (_return_value == NULL)
+ if (_return_value == NULL) {
goto exit;
+ }
return_value = PyHKEY_FromHKEY(_return_value);
exit:
@@ -290,8 +299,9 @@ winreg_DeleteKey(PyObject *module, PyObject *args)
Py_UNICODE *sub_key;
if (!PyArg_ParseTuple(args, "O&u:DeleteKey",
- clinic_HKEY_converter, &key, &sub_key))
+ clinic_HKEY_converter, &key, &sub_key)) {
goto exit;
+ }
return_value = winreg_DeleteKey_impl(module, key, sub_key);
exit:
@@ -324,25 +334,27 @@ PyDoc_STRVAR(winreg_DeleteKeyEx__doc__,
"On unsupported Windows versions, NotImplementedError is raised.");
#define WINREG_DELETEKEYEX_METHODDEF \
- {"DeleteKeyEx", (PyCFunction)winreg_DeleteKeyEx, METH_VARARGS|METH_KEYWORDS, winreg_DeleteKeyEx__doc__},
+ {"DeleteKeyEx", (PyCFunction)winreg_DeleteKeyEx, METH_FASTCALL, winreg_DeleteKeyEx__doc__},
static PyObject *
winreg_DeleteKeyEx_impl(PyObject *module, HKEY key, Py_UNICODE *sub_key,
REGSAM access, int reserved);
static PyObject *
-winreg_DeleteKeyEx(PyObject *module, PyObject *args, PyObject *kwargs)
+winreg_DeleteKeyEx(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static char *_keywords[] = {"key", "sub_key", "access", "reserved", NULL};
+ static const char * const _keywords[] = {"key", "sub_key", "access", "reserved", NULL};
+ static _PyArg_Parser _parser = {"O&u|ii:DeleteKeyEx", _keywords, 0};
HKEY key;
Py_UNICODE *sub_key;
REGSAM access = KEY_WOW64_64KEY;
int reserved = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&u|ii:DeleteKeyEx", _keywords,
- clinic_HKEY_converter, &key, &sub_key, &access, &reserved))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ clinic_HKEY_converter, &key, &sub_key, &access, &reserved)) {
goto exit;
+ }
return_value = winreg_DeleteKeyEx_impl(module, key, sub_key, access, reserved);
exit:
@@ -374,8 +386,9 @@ winreg_DeleteValue(PyObject *module, PyObject *args)
Py_UNICODE *value;
if (!PyArg_ParseTuple(args, "O&Z:DeleteValue",
- clinic_HKEY_converter, &key, &value))
+ clinic_HKEY_converter, &key, &value)) {
goto exit;
+ }
return_value = winreg_DeleteValue_impl(module, key, value);
exit:
@@ -411,8 +424,9 @@ winreg_EnumKey(PyObject *module, PyObject *args)
int index;
if (!PyArg_ParseTuple(args, "O&i:EnumKey",
- clinic_HKEY_converter, &key, &index))
+ clinic_HKEY_converter, &key, &index)) {
goto exit;
+ }
return_value = winreg_EnumKey_impl(module, key, index);
exit:
@@ -457,8 +471,9 @@ winreg_EnumValue(PyObject *module, PyObject *args)
int index;
if (!PyArg_ParseTuple(args, "O&i:EnumValue",
- clinic_HKEY_converter, &key, &index))
+ clinic_HKEY_converter, &key, &index)) {
goto exit;
+ }
return_value = winreg_EnumValue_impl(module, key, index);
exit:
@@ -483,8 +498,9 @@ winreg_ExpandEnvironmentStrings(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_UNICODE *string;
- if (!PyArg_Parse(arg, "u:ExpandEnvironmentStrings", &string))
+ if (!PyArg_Parse(arg, "u:ExpandEnvironmentStrings", &string)) {
goto exit;
+ }
return_value = winreg_ExpandEnvironmentStrings_impl(module, string);
exit:
@@ -522,8 +538,9 @@ winreg_FlushKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!PyArg_Parse(arg, "O&:FlushKey", clinic_HKEY_converter, &key))
+ if (!PyArg_Parse(arg, "O&:FlushKey", clinic_HKEY_converter, &key)) {
goto exit;
+ }
return_value = winreg_FlushKey_impl(module, key);
exit:
@@ -574,8 +591,9 @@ winreg_LoadKey(PyObject *module, PyObject *args)
Py_UNICODE *file_name;
if (!PyArg_ParseTuple(args, "O&uu:LoadKey",
- clinic_HKEY_converter, &key, &sub_key, &file_name))
+ clinic_HKEY_converter, &key, &sub_key, &file_name)) {
goto exit;
+ }
return_value = winreg_LoadKey_impl(module, key, sub_key, file_name);
exit:
@@ -602,29 +620,32 @@ PyDoc_STRVAR(winreg_OpenKey__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_OPENKEY_METHODDEF \
- {"OpenKey", (PyCFunction)winreg_OpenKey, METH_VARARGS|METH_KEYWORDS, winreg_OpenKey__doc__},
+ {"OpenKey", (PyCFunction)winreg_OpenKey, METH_FASTCALL, winreg_OpenKey__doc__},
static HKEY
winreg_OpenKey_impl(PyObject *module, HKEY key, Py_UNICODE *sub_key,
int reserved, REGSAM access);
static PyObject *
-winreg_OpenKey(PyObject *module, PyObject *args, PyObject *kwargs)
+winreg_OpenKey(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static char *_keywords[] = {"key", "sub_key", "reserved", "access", NULL};
+ static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL};
+ static _PyArg_Parser _parser = {"O&Z|ii:OpenKey", _keywords, 0};
HKEY key;
Py_UNICODE *sub_key;
int reserved = 0;
REGSAM access = KEY_READ;
HKEY _return_value;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&Z|ii:OpenKey", _keywords,
- clinic_HKEY_converter, &key, &sub_key, &reserved, &access))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ clinic_HKEY_converter, &key, &sub_key, &reserved, &access)) {
goto exit;
+ }
_return_value = winreg_OpenKey_impl(module, key, sub_key, reserved, access);
- if (_return_value == NULL)
+ if (_return_value == NULL) {
goto exit;
+ }
return_value = PyHKEY_FromHKEY(_return_value);
exit:
@@ -651,29 +672,32 @@ PyDoc_STRVAR(winreg_OpenKeyEx__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_OPENKEYEX_METHODDEF \
- {"OpenKeyEx", (PyCFunction)winreg_OpenKeyEx, METH_VARARGS|METH_KEYWORDS, winreg_OpenKeyEx__doc__},
+ {"OpenKeyEx", (PyCFunction)winreg_OpenKeyEx, METH_FASTCALL, winreg_OpenKeyEx__doc__},
static HKEY
winreg_OpenKeyEx_impl(PyObject *module, HKEY key, Py_UNICODE *sub_key,
int reserved, REGSAM access);
static PyObject *
-winreg_OpenKeyEx(PyObject *module, PyObject *args, PyObject *kwargs)
+winreg_OpenKeyEx(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static char *_keywords[] = {"key", "sub_key", "reserved", "access", NULL};
+ static const char * const _keywords[] = {"key", "sub_key", "reserved", "access", NULL};
+ static _PyArg_Parser _parser = {"O&Z|ii:OpenKeyEx", _keywords, 0};
HKEY key;
Py_UNICODE *sub_key;
int reserved = 0;
REGSAM access = KEY_READ;
HKEY _return_value;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&Z|ii:OpenKeyEx", _keywords,
- clinic_HKEY_converter, &key, &sub_key, &reserved, &access))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ clinic_HKEY_converter, &key, &sub_key, &reserved, &access)) {
goto exit;
+ }
_return_value = winreg_OpenKeyEx_impl(module, key, sub_key, reserved, access);
- if (_return_value == NULL)
+ if (_return_value == NULL) {
goto exit;
+ }
return_value = PyHKEY_FromHKEY(_return_value);
exit:
@@ -707,8 +731,9 @@ winreg_QueryInfoKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!PyArg_Parse(arg, "O&:QueryInfoKey", clinic_HKEY_converter, &key))
+ if (!PyArg_Parse(arg, "O&:QueryInfoKey", clinic_HKEY_converter, &key)) {
goto exit;
+ }
return_value = winreg_QueryInfoKey_impl(module, key);
exit:
@@ -749,8 +774,9 @@ winreg_QueryValue(PyObject *module, PyObject *args)
Py_UNICODE *sub_key;
if (!PyArg_ParseTuple(args, "O&Z:QueryValue",
- clinic_HKEY_converter, &key, &sub_key))
+ clinic_HKEY_converter, &key, &sub_key)) {
goto exit;
+ }
return_value = winreg_QueryValue_impl(module, key, sub_key);
exit:
@@ -787,8 +813,9 @@ winreg_QueryValueEx(PyObject *module, PyObject *args)
Py_UNICODE *name;
if (!PyArg_ParseTuple(args, "O&Z:QueryValueEx",
- clinic_HKEY_converter, &key, &name))
+ clinic_HKEY_converter, &key, &name)) {
goto exit;
+ }
return_value = winreg_QueryValueEx_impl(module, key, name);
exit:
@@ -830,8 +857,9 @@ winreg_SaveKey(PyObject *module, PyObject *args)
Py_UNICODE *file_name;
if (!PyArg_ParseTuple(args, "O&u:SaveKey",
- clinic_HKEY_converter, &key, &file_name))
+ clinic_HKEY_converter, &key, &file_name)) {
goto exit;
+ }
return_value = winreg_SaveKey_impl(module, key, file_name);
exit:
@@ -883,8 +911,9 @@ winreg_SetValue(PyObject *module, PyObject *args)
Py_ssize_clean_t value_length;
if (!PyArg_ParseTuple(args, "O&Zku#:SetValue",
- clinic_HKEY_converter, &key, &sub_key, &type, &value, &value_length))
+ clinic_HKEY_converter, &key, &sub_key, &type, &value, &value_length)) {
goto exit;
+ }
return_value = winreg_SetValue_impl(module, key, sub_key, type, value, value_length);
exit:
@@ -907,7 +936,7 @@ PyDoc_STRVAR(winreg_SetValueEx__doc__,
" An integer that specifies the type of the data, one of:\n"
" REG_BINARY -- Binary data in any form.\n"
" REG_DWORD -- A 32-bit number.\n"
-" REG_DWORD_LITTLE_ENDIAN -- A 32-bit number in little-endian format.\n"
+" REG_DWORD_LITTLE_ENDIAN -- A 32-bit number in little-endian format. Equivalent to REG_DWORD\n"
" REG_DWORD_BIG_ENDIAN -- A 32-bit number in big-endian format.\n"
" REG_EXPAND_SZ -- A null-terminated string that contains unexpanded\n"
" references to environment variables (for example,\n"
@@ -917,6 +946,8 @@ PyDoc_STRVAR(winreg_SetValueEx__doc__,
" by two null characters. Note that Python handles\n"
" this termination automatically.\n"
" REG_NONE -- No defined value type.\n"
+" REG_QWORD -- A 64-bit number.\n"
+" REG_QWORD_LITTLE_ENDIAN -- A 64-bit number in little-endian format. Equivalent to REG_QWORD.\n"
" REG_RESOURCE_LIST -- A device-driver resource list.\n"
" REG_SZ -- A null-terminated string.\n"
" value\n"
@@ -950,8 +981,9 @@ winreg_SetValueEx(PyObject *module, PyObject *args)
PyObject *value;
if (!PyArg_ParseTuple(args, "O&ZOkO:SetValueEx",
- clinic_HKEY_converter, &key, &value_name, &reserved, &type, &value))
+ clinic_HKEY_converter, &key, &value_name, &reserved, &type, &value)) {
goto exit;
+ }
return_value = winreg_SetValueEx_impl(module, key, value_name, reserved, type, value);
exit:
@@ -985,8 +1017,9 @@ winreg_DisableReflectionKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!PyArg_Parse(arg, "O&:DisableReflectionKey", clinic_HKEY_converter, &key))
+ if (!PyArg_Parse(arg, "O&:DisableReflectionKey", clinic_HKEY_converter, &key)) {
goto exit;
+ }
return_value = winreg_DisableReflectionKey_impl(module, key);
exit:
@@ -1018,8 +1051,9 @@ winreg_EnableReflectionKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!PyArg_Parse(arg, "O&:EnableReflectionKey", clinic_HKEY_converter, &key))
+ if (!PyArg_Parse(arg, "O&:EnableReflectionKey", clinic_HKEY_converter, &key)) {
goto exit;
+ }
return_value = winreg_EnableReflectionKey_impl(module, key);
exit:
@@ -1049,11 +1083,12 @@ winreg_QueryReflectionKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!PyArg_Parse(arg, "O&:QueryReflectionKey", clinic_HKEY_converter, &key))
+ if (!PyArg_Parse(arg, "O&:QueryReflectionKey", clinic_HKEY_converter, &key)) {
goto exit;
+ }
return_value = winreg_QueryReflectionKey_impl(module, key);
exit:
return return_value;
}
-/*[clinic end generated code: output=7b8940a23f605ddc input=a9049054013a1b77]*/
+/*[clinic end generated code: output=16dd06be6e14b86e input=a9049054013a1b77]*/
diff --git a/PC/clinic/winsound.c.h b/PC/clinic/winsound.c.h
index b00b442362..52d25b2434 100644
--- a/PC/clinic/winsound.c.h
+++ b/PC/clinic/winsound.c.h
@@ -3,7 +3,7 @@ preserve
[clinic start generated code]*/
PyDoc_STRVAR(winsound_PlaySound__doc__,
-"PlaySound($module, sound, flags, /)\n"
+"PlaySound($module, /, sound, flags)\n"
"--\n"
"\n"
"A wrapper around the Windows PlaySound API.\n"
@@ -14,21 +14,24 @@ PyDoc_STRVAR(winsound_PlaySound__doc__,
" Flag values, ored together. See module documentation.");
#define WINSOUND_PLAYSOUND_METHODDEF \
- {"PlaySound", (PyCFunction)winsound_PlaySound, METH_VARARGS, winsound_PlaySound__doc__},
+ {"PlaySound", (PyCFunction)winsound_PlaySound, METH_FASTCALL, winsound_PlaySound__doc__},
static PyObject *
-winsound_PlaySound_impl(PyObject *module, Py_UNICODE *sound, int flags);
+winsound_PlaySound_impl(PyObject *module, PyObject *sound, int flags);
static PyObject *
-winsound_PlaySound(PyObject *module, PyObject *args)
+winsound_PlaySound(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- Py_UNICODE *sound;
+ static const char * const _keywords[] = {"sound", "flags", NULL};
+ static _PyArg_Parser _parser = {"Oi:PlaySound", _keywords, 0};
+ PyObject *sound;
int flags;
- if (!PyArg_ParseTuple(args, "Zi:PlaySound",
- &sound, &flags))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ &sound, &flags)) {
goto exit;
+ }
return_value = winsound_PlaySound_impl(module, sound, flags);
exit:
@@ -36,7 +39,7 @@ exit:
}
PyDoc_STRVAR(winsound_Beep__doc__,
-"Beep($module, frequency, duration, /)\n"
+"Beep($module, /, frequency, duration)\n"
"--\n"
"\n"
"A wrapper around the Windows Beep API.\n"
@@ -48,21 +51,24 @@ PyDoc_STRVAR(winsound_Beep__doc__,
" How long the sound should play, in milliseconds.");
#define WINSOUND_BEEP_METHODDEF \
- {"Beep", (PyCFunction)winsound_Beep, METH_VARARGS, winsound_Beep__doc__},
+ {"Beep", (PyCFunction)winsound_Beep, METH_FASTCALL, winsound_Beep__doc__},
static PyObject *
winsound_Beep_impl(PyObject *module, int frequency, int duration);
static PyObject *
-winsound_Beep(PyObject *module, PyObject *args)
+winsound_Beep(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"frequency", "duration", NULL};
+ static _PyArg_Parser _parser = {"ii:Beep", _keywords, 0};
int frequency;
int duration;
- if (!PyArg_ParseTuple(args, "ii:Beep",
- &frequency, &duration))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ &frequency, &duration)) {
goto exit;
+ }
return_value = winsound_Beep_impl(module, frequency, duration);
exit:
@@ -70,7 +76,7 @@ exit:
}
PyDoc_STRVAR(winsound_MessageBeep__doc__,
-"MessageBeep($module, x=MB_OK, /)\n"
+"MessageBeep($module, /, type=MB_OK)\n"
"--\n"
"\n"
"Call Windows MessageBeep(x).\n"
@@ -78,23 +84,26 @@ PyDoc_STRVAR(winsound_MessageBeep__doc__,
"x defaults to MB_OK.");
#define WINSOUND_MESSAGEBEEP_METHODDEF \
- {"MessageBeep", (PyCFunction)winsound_MessageBeep, METH_VARARGS, winsound_MessageBeep__doc__},
+ {"MessageBeep", (PyCFunction)winsound_MessageBeep, METH_FASTCALL, winsound_MessageBeep__doc__},
static PyObject *
-winsound_MessageBeep_impl(PyObject *module, int x);
+winsound_MessageBeep_impl(PyObject *module, int type);
static PyObject *
-winsound_MessageBeep(PyObject *module, PyObject *args)
+winsound_MessageBeep(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- int x = MB_OK;
+ static const char * const _keywords[] = {"type", NULL};
+ static _PyArg_Parser _parser = {"|i:MessageBeep", _keywords, 0};
+ int type = MB_OK;
- if (!PyArg_ParseTuple(args, "|i:MessageBeep",
- &x))
+ if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ &type)) {
goto exit;
- return_value = winsound_MessageBeep_impl(module, x);
+ }
+ return_value = winsound_MessageBeep_impl(module, type);
exit:
return return_value;
}
-/*[clinic end generated code: output=c0b290daf2330dc9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bfe16b2b8b490cb1 input=a9049054013a1b77]*/