Mercurial > cpython-lru_cache-weakref
view Python/pystrcmp.c @ 87261:0d9624f2ff43
Issue #12892: The utf-16* and utf-32* codecs now reject (lone) surrogates.
The utf-16* and utf-32* encoders no longer allow surrogate code points
(U+D800-U+DFFF) to be encoded.
The utf-32* decoders no longer decode byte sequences that correspond to
surrogate code points.
The surrogatepass error handler now works with the utf-16* and utf-32* codecs.
Based on patches by Victor Stinner and Kang-Hao (Kenny) Lu.
| author | Serhiy Storchaka <storchaka@gmail.com> |
|---|---|
| date | Tue, 19 Nov 2013 11:32:41 +0200 |
| parents | fd25030223b0 |
| children |
line wrap: on
line source
/* Cross platform case insensitive string compare functions */ #include "Python.h" int PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size) { if (size == 0) return 0; while ((--size > 0) && (tolower((unsigned)*s1) == tolower((unsigned)*s2))) { if (!*s1++ || !*s2++) break; } return tolower((unsigned)*s1) - tolower((unsigned)*s2); } int PyOS_mystricmp(const char *s1, const char *s2) { while (*s1 && (tolower((unsigned)*s1++) == tolower((unsigned)*s2++))) { ; } return (tolower((unsigned)*s1) - tolower((unsigned)*s2)); }
