From cfd42b556bfa6282362dc53edcfabd5fa95fd9c0 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 15 Dec 2000 21:58:52 +0000 Subject: Add PyErr_Warn(). --- Python/errors.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Python/errors.c b/Python/errors.c index 3053e00..908c0c1 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -588,3 +588,37 @@ PyErr_WriteUnraisable(PyObject *obj) Py_XDECREF(v); Py_XDECREF(tb); } + + +/* Function to issue a warning message; may raise an exception. */ +int +PyErr_Warn(PyObject *category, char *message) +{ + PyObject *mod, *dict, *func = NULL; + + mod = PyImport_ImportModule("warnings"); + if (mod != NULL) { + dict = PyModule_GetDict(mod); + func = PyDict_GetItemString(dict, "warn"); + Py_DECREF(mod); + } + if (func == NULL) { + PySys_WriteStderr("warning: %s\n", message); + return 0; + } + else { + PyObject *args, *res; + + if (category == NULL) + category = PyExc_RuntimeWarning; + args = Py_BuildValue("(sO)", message, category); + if (args == NULL) + return -1; + res = PyEval_CallObject(func, args); + Py_DECREF(args); + if (res == NULL) + return -1; + Py_DECREF(res); + return 0; + } +} -- cgit v0.12