mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									766de83ab1
								
							
						
					
					
						commit
						8b4d01d9f9
					
				
					 1 changed files with 37 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue