M.-A. Lemburg <mal@lemburg.com>:

Added APIs to allow setting and querying the system's
current string encoding: sys.set_string_encoding()
and sys.get_string_encoding().
This commit is contained in:
Fred Drake 2000-05-09 19:57:01 +00:00
parent 766de83ab1
commit 8b4d01d9f9

View file

@ -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},