Mercurial > cpython-lru_cache-weakref
comparison Python/sysmodule.c @ 79803:d2127cdec10e
Issue #16166: Add PY_LITTLE_ENDIAN and PY_BIG_ENDIAN macros and unified
endianess detection and handling.
| author | Christian Heimes <christian@cheimes.de> |
|---|---|
| date | Wed, 17 Oct 2012 23:52:17 +0200 |
| parents | ee01fd98b5b0 |
| children | ceb0184c7f44 |
comparison
equal
deleted
inserted
replaced
| 79802:943d3e289ab4 | 79803:d2127cdec10e |
|---|---|
| 1559 | 1559 |
| 1560 PyObject * | 1560 PyObject * |
| 1561 _PySys_Init(void) | 1561 _PySys_Init(void) |
| 1562 { | 1562 { |
| 1563 PyObject *m, *v, *sysdict, *version_info; | 1563 PyObject *m, *v, *sysdict, *version_info; |
| 1564 char *s; | |
| 1565 | 1564 |
| 1566 m = PyModule_Create(&sysmodule); | 1565 m = PyModule_Create(&sysmodule); |
| 1567 if (m == NULL) | 1566 if (m == NULL) |
| 1568 return NULL; | 1567 return NULL; |
| 1569 sysdict = PyModule_GetDict(m); | 1568 sysdict = PyModule_GetDict(m); |
| 1636 get_hash_info()); | 1635 get_hash_info()); |
| 1637 SET_SYS_FROM_STRING("maxunicode", | 1636 SET_SYS_FROM_STRING("maxunicode", |
| 1638 PyLong_FromLong(0x10FFFF)); | 1637 PyLong_FromLong(0x10FFFF)); |
| 1639 SET_SYS_FROM_STRING("builtin_module_names", | 1638 SET_SYS_FROM_STRING("builtin_module_names", |
| 1640 list_builtin_module_names()); | 1639 list_builtin_module_names()); |
| 1641 { | 1640 #if PY_BIG_ENDIAN |
| 1642 /* Assumes that longs are at least 2 bytes long. | 1641 SET_SYS_FROM_STRING("byteorder", |
| 1643 Should be safe! */ | 1642 PyUnicode_FromString("big")); |
| 1644 unsigned long number = 1; | 1643 #else |
| 1645 char *value; | 1644 SET_SYS_FROM_STRING("byteorder", |
| 1646 | 1645 PyUnicode_FromString("little")); |
| 1647 s = (char *) &number; | 1646 #endif |
| 1648 if (s[0] == 0) | 1647 |
| 1649 value = "big"; | |
| 1650 else | |
| 1651 value = "little"; | |
| 1652 SET_SYS_FROM_STRING("byteorder", | |
| 1653 PyUnicode_FromString(value)); | |
| 1654 } | |
| 1655 #ifdef MS_COREDLL | 1648 #ifdef MS_COREDLL |
| 1656 SET_SYS_FROM_STRING("dllhandle", | 1649 SET_SYS_FROM_STRING("dllhandle", |
| 1657 PyLong_FromVoidPtr(PyWin_DLLhModule)); | 1650 PyLong_FromVoidPtr(PyWin_DLLhModule)); |
| 1658 SET_SYS_FROM_STRING("winver", | 1651 SET_SYS_FROM_STRING("winver", |
| 1659 PyUnicode_FromString(PyWin_DLLVersionString)); | 1652 PyUnicode_FromString(PyWin_DLLVersionString)); |
