Kaydet (Commit) 8b4d01d9 authored tarafından Fred Drake's avatar Fred Drake

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().
üst 766de83a
......@@ -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},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment