diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-04-18 20:17:52 +0000 |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-04-18 20:17:52 +0000 |
commit | 7abf8d4066e9b4dd21f9a498427ac1ec8914c0ab (patch) | |
tree | 354e670eb1de034ee884818039a97f0141544961 /Objects/floatobject.c | |
parent | 153c70f6d770f69314cc3f95ab240e2d9bcaf959 (diff) | |
download | cpython-7abf8d4066e9b4dd21f9a498427ac1ec8914c0ab.tar.gz cpython-7abf8d4066e9b4dd21f9a498427ac1ec8914c0ab.zip |
The SSE2 detection and enabling could potentially cause
problems for binary distributions of Python in situations
where the build machine has SSE2 but the target machine
does not.
Therefore, don't enable SSE2 instructions automatically on x86.
Diffstat (limited to 'Objects/floatobject.c')
-rw-r--r-- | Objects/floatobject.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Objects/floatobject.c b/Objects/floatobject.c index b7b52207e36..f78f7df88a9 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -15,6 +15,11 @@ #define MAX(x, y) ((x) < (y) ? (y) : (x)) #define MIN(x, y) ((x) < (y) ? (x) : (y)) +/* ascii character tests (as opposed to locale tests) */ +#define ISSPACE(c) ((c) == ' ' || (c) == '\f' || (c) == '\n' || \ + (c) == '\r' || (c) == '\t' || (c) == '\v') +#define ISDIGIT(c) ((c) >= '0' && (c) <= '9') + #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif @@ -188,7 +193,7 @@ PyFloat_FromString(PyObject *v) } last = s + len; - while (*s && isspace(Py_CHARMASK(*s))) + while (*s && ISSPACE(Py_CHARMASK(*s))) s++; if (*s == '\0') { PyErr_SetString(PyExc_ValueError, "empty string for float()"); @@ -245,7 +250,7 @@ PyFloat_FromString(PyObject *v) } /* Since end != s, the platform made *some* kind of sense out of the input. Trust it. */ - while (*end && isspace(Py_CHARMASK(*end))) + while (*end && ISSPACE(Py_CHARMASK(*end))) end++; if (*end != '\0') { PyOS_snprintf(buffer, sizeof(buffer), @@ -1275,7 +1280,7 @@ float_fromhex(PyObject *cls, PyObject *arg) ********************/ /* leading whitespace and optional sign */ - while (isspace(Py_CHARMASK(*s))) + while (ISSPACE(Py_CHARMASK(*s))) s++; if (*s == '-') { s++; @@ -1299,6 +1304,7 @@ float_fromhex(PyObject *cls, PyObject *arg) s_store = s; if (*s == '0') { s++; + if (*s == 'x' || *s == 'X') if (tolower(*s) == (int)'x') s++; else @@ -1345,7 +1351,7 @@ float_fromhex(PyObject *cls, PyObject *arg) exp = 0; /* optional trailing whitespace leading to the end of the string */ - while (isspace(Py_CHARMASK(*s))) + while (ISSPACE(Py_CHARMASK(*s))) s++; if (s != s_end) goto parse_error; |