mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef Py_INTERNAL_UNICODEOBJECT_H
 | |
| #define Py_INTERNAL_UNICODEOBJECT_H
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #ifndef Py_BUILD_CORE
 | |
| #  error "this header requires Py_BUILD_CORE define"
 | |
| #endif
 | |
| 
 | |
| #include "pycore_fileutils.h"     // _Py_error_handler
 | |
| 
 | |
| void _PyUnicode_ExactDealloc(PyObject *op);
 | |
| 
 | |
| /* runtime lifecycle */
 | |
| 
 | |
| extern void _PyUnicode_InitState(PyInterpreterState *);
 | |
| extern PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *);
 | |
| extern PyStatus _PyUnicode_InitTypes(PyInterpreterState *);
 | |
| extern void _PyUnicode_Fini(PyInterpreterState *);
 | |
| extern void _PyUnicode_FiniTypes(PyInterpreterState *);
 | |
| extern void _PyStaticUnicode_Dealloc(PyObject *);
 | |
| 
 | |
| extern PyTypeObject _PyUnicodeASCIIIter_Type;
 | |
| 
 | |
| /* other API */
 | |
| 
 | |
| struct _Py_unicode_runtime_ids {
 | |
|     PyThread_type_lock lock;
 | |
|     // next_index value must be preserved when Py_Initialize()/Py_Finalize()
 | |
|     // is called multiple times: see _PyUnicode_FromId() implementation.
 | |
|     Py_ssize_t next_index;
 | |
| };
 | |
| 
 | |
| /* fs_codec.encoding is initialized to NULL.
 | |
|    Later, it is set to a non-NULL string by _PyUnicode_InitEncodings(). */
 | |
| struct _Py_unicode_fs_codec {
 | |
|     char *encoding;   // Filesystem encoding (encoded to UTF-8)
 | |
|     int utf8;         // encoding=="utf-8"?
 | |
|     char *errors;     // Filesystem errors (encoded to UTF-8)
 | |
|     _Py_error_handler error_handler;
 | |
| };
 | |
| 
 | |
| struct _Py_unicode_ids {
 | |
|     Py_ssize_t size;
 | |
|     PyObject **array;
 | |
| };
 | |
| 
 | |
| struct _Py_unicode_state {
 | |
|     struct _Py_unicode_fs_codec fs_codec;
 | |
| 
 | |
|     // Unicode identifiers (_Py_Identifier): see _PyUnicode_FromId()
 | |
|     struct _Py_unicode_ids ids;
 | |
| };
 | |
| 
 | |
| extern void _PyUnicode_ClearInterned(PyInterpreterState *interp);
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| #endif /* !Py_INTERNAL_UNICODEOBJECT_H */
 | 
