Mercurial > cpython-lru_cache-weakref
view Python/strerror.c @ 29869:3442e7cdace8 legacy-trunk
SF patch 763201: handling of SyntaxErrors in symbol table build
Fixes for three related bugs, including errors that caused a script to
be ignored without printing an error message. The key problem was a bad
interaction between syntax warnings and syntax errors. If an
exception was already set when a warning was issued, the warning could
clobber the exception.
The PyErr_Occurred() check in issue_warning() isn't entirely
satisfying (the caller should know whether there was already an
error), but a better solution isn't immediately obvious.
Bug fix candidate.
| author | Jeremy Hylton <jeremy@alum.mit.edu> |
|---|---|
| date | Tue, 15 Jul 2003 20:23:26 +0000 |
| parents | 379fc66f4c96 |
| children | 86fdf8fe7f17 |
line wrap: on
line source
/* PD implementation of strerror() for systems that don't have it. Author: Guido van Rossum, CWI Amsterdam, Oct. 1990, <guido@cwi.nl>. */ #include <stdio.h> #include "Python.h" extern int sys_nerr; extern char *sys_errlist[]; char * strerror(int err) { static char buf[20]; if (err >= 0 && err < sys_nerr) return sys_errlist[err]; PyOS_snprintf(buf, sizeof(buf), "Unknown errno %d", err); return buf; } #ifdef macintosh int sys_nerr = 0; char *sys_errlist[1] = 0; #endif
