mirror of
https://github.com/python/cpython.git
synced 2025-10-17 20:28:43 +00:00
Issue #16166: Add PY_LITTLE_ENDIAN and PY_BIG_ENDIAN macros and unified
endianess detection and handling.
This commit is contained in:
parent
1e9af84e2e
commit
743e0cd6b5
15 changed files with 78 additions and 107 deletions
|
@ -1561,7 +1561,6 @@ PyObject *
|
|||
_PySys_Init(void)
|
||||
{
|
||||
PyObject *m, *v, *sysdict, *version_info;
|
||||
char *s;
|
||||
|
||||
m = PyModule_Create(&sysmodule);
|
||||
if (m == NULL)
|
||||
|
@ -1638,20 +1637,14 @@ _PySys_Init(void)
|
|||
PyLong_FromLong(0x10FFFF));
|
||||
SET_SYS_FROM_STRING("builtin_module_names",
|
||||
list_builtin_module_names());
|
||||
{
|
||||
/* Assumes that longs are at least 2 bytes long.
|
||||
Should be safe! */
|
||||
unsigned long number = 1;
|
||||
char *value;
|
||||
#if PY_BIG_ENDIAN
|
||||
SET_SYS_FROM_STRING("byteorder",
|
||||
PyUnicode_FromString("big"));
|
||||
#else
|
||||
SET_SYS_FROM_STRING("byteorder",
|
||||
PyUnicode_FromString("little"));
|
||||
#endif
|
||||
|
||||
s = (char *) &number;
|
||||
if (s[0] == 0)
|
||||
value = "big";
|
||||
else
|
||||
value = "little";
|
||||
SET_SYS_FROM_STRING("byteorder",
|
||||
PyUnicode_FromString(value));
|
||||
}
|
||||
#ifdef MS_COREDLL
|
||||
SET_SYS_FROM_STRING("dllhandle",
|
||||
PyLong_FromVoidPtr(PyWin_DLLhModule));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue