From: Fred Drake Date: Tue, 9 May 2000 19:57:01 +0000 (+0000) Subject: M.-A. Lemburg : X-Git-Tag: v2.0b1~1782 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8b4d01d9f93068ec08abf62f5307d9391fe6740a;p=thirdparty%2FPython%2Fcpython.git M.-A. Lemburg : Added APIs to allow setting and querying the system's current string encoding: sys.set_string_encoding() and sys.get_string_encoding(). --- diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 34f7c96daff7..ebe9a947a98e 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -142,6 +142,41 @@ If the status numeric, it will be used as the system exit status.\n\ If it is another kind of object, it will be printed and the system\n\ exit status will be one (i.e., failure)."; +static PyObject * +sys_get_string_encoding(self, args) + PyObject *self; + PyObject *args; +{ + if (!PyArg_ParseTuple(args, ":get_string_encoding")) + return NULL; + return PyString_FromString(PyUnicode_GetDefaultEncoding()); +} + +static char get_string_encoding_doc[] = +"get_string_encoding() -> string\n\ +\n\ +Return the current default string encoding used by the Unicode \n\ +implementation."; + +static PyObject * +sys_set_string_encoding(self, args) + PyObject *self; + PyObject *args; +{ + char *encoding; + if (!PyArg_ParseTuple(args, "s:set_string_encoding", &encoding)) + return NULL; + if (PyUnicode_SetDefaultEncoding(encoding)) + return NULL; + Py_INCREF(Py_None); + return Py_None; +} + +static char set_string_encoding_doc[] = +"set_string_encoding(encoding)\n\ +\n\ +Set the current default string encoding used by the Unicode implementation."; + static PyObject * sys_settrace(self, args) PyObject *self; @@ -266,6 +301,7 @@ static PyMethodDef sys_methods[] = { /* Might as well keep this in alphabetic order */ {"exc_info", sys_exc_info, 1, exc_info_doc}, {"exit", sys_exit, 0, exit_doc}, + {"get_string_encoding", sys_get_string_encoding, 1, get_string_encoding_doc}, #ifdef COUNT_ALLOCS {"getcounts", sys_getcounts, 1}, #endif @@ -279,6 +315,7 @@ static PyMethodDef sys_methods[] = { #ifdef USE_MALLOPT {"mdebug", sys_mdebug, 1}, #endif + {"set_string_encoding", sys_set_string_encoding, 1, set_string_encoding_doc}, {"setcheckinterval", sys_setcheckinterval, 1, setcheckinterval_doc}, {"setprofile", sys_setprofile, 0, setprofile_doc}, {"settrace", sys_settrace, 0, settrace_doc},