Patch #494045: patches errno and stat to cope on plan9.

This commit is contained in:
Martin v. Löwis 2002-03-09 12:07:51 +00:00
parent c8bb9eba31
commit 3484a18af1
2 changed files with 36 additions and 16 deletions

View file

@ -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