]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
M.-A. Lemburg <mal@lemburg.com>:
authorFred Drake <fdrake@acm.org>
Tue, 9 May 2000 19:57:01 +0000 (19:57 +0000)
committerFred Drake <fdrake@acm.org>
Tue, 9 May 2000 19:57:01 +0000 (19:57 +0000)
Added APIs to allow setting and querying the system's
current string encoding: sys.set_string_encoding()
and sys.get_string_encoding().

Python/sysmodule.c

index 34f7c96daff779440d569a31a7eb3c1fcefff9fc..ebe9a947a98e2490ecde59f7c25784e1f0f6d781 100644 (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},