mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Patch #494045: patches errno and stat to cope on plan9.
This commit is contained in:
parent
c8bb9eba31
commit
3484a18af1
2 changed files with 36 additions and 16 deletions
|
@ -536,9 +536,6 @@ builtin_execfile(PyObject *self, PyObject *args)
|
|||
FILE* fp = NULL;
|
||||
PyCompilerFlags cf;
|
||||
int exists;
|
||||
#ifndef RISCOS
|
||||
struct stat s;
|
||||
#endif
|
||||
|
||||
if (!PyArg_ParseTuple(args, "s|O!O!:execfile",
|
||||
&filename,
|
||||
|
@ -560,25 +557,40 @@ builtin_execfile(PyObject *self, PyObject *args)
|
|||
|
||||
exists = 0;
|
||||
/* Test for existence or directory. */
|
||||
#ifndef RISCOS
|
||||
if (!stat(filename, &s)) {
|
||||
if (S_ISDIR(s.st_mode))
|
||||
#if defined(PYOS_OS2) && defined(PYCC_VACPP)
|
||||
errno = EOS2ERR;
|
||||
#else
|
||||
errno = EISDIR;
|
||||
#endif
|
||||
else
|
||||
exists = 1;
|
||||
#if defined(PLAN9)
|
||||
{
|
||||
Dir *d;
|
||||
|
||||
if ((d = dirstat(filename))!=nil) {
|
||||
if(d->mode & DMDIR)
|
||||
werrstr("is a directory");
|
||||
else
|
||||
exists = 1;
|
||||
free(d);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#elif defined(RISCOS)
|
||||
if (object_exists(filename)) {
|
||||
if (isdir(filename))
|
||||
errno = EISDIR;
|
||||
else
|
||||
exists = 1;
|
||||
}
|
||||
#endif /* RISCOS */
|
||||
#else /* standard Posix */
|
||||
{
|
||||
struct stat s;
|
||||
if (stat(filename, &s) == 0) {
|
||||
if (S_ISDIR(s.st_mode))
|
||||
# if defined(PY_OS2) && defined(PYCC_VACPP)
|
||||
errno = EOS2ERR;
|
||||
# else
|
||||
errno = EISDIR;
|
||||
# endif
|
||||
else
|
||||
exists = 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (exists) {
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue