mirror of
https://github.com/python/cpython.git
synced 2025-07-12 13:55:34 +00:00
Derived from SF patch #446899 Permit import of .pyw under Windows, from
David Bolen.
This commit is contained in:
parent
289898cdbb
commit
c173137391
4 changed files with 72 additions and 50 deletions
|
@ -70,6 +70,9 @@ static const struct filedescr _PyImport_StandardFiletab[] = {
|
|||
#else
|
||||
static const struct filedescr _PyImport_StandardFiletab[] = {
|
||||
{".py", "r", PY_SOURCE},
|
||||
#ifdef MS_WIN32
|
||||
{".pyw", "r", PY_SOURCE},
|
||||
#endif
|
||||
{".pyc", "rb", PY_COMPILED},
|
||||
{0, 0}
|
||||
};
|
||||
|
@ -513,13 +516,19 @@ PyImport_ExecCodeModuleEx(char *name, PyObject *co, char *pathname)
|
|||
static char *
|
||||
make_compiled_pathname(char *pathname, char *buf, size_t buflen)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
len = strlen(pathname);
|
||||
size_t len = strlen(pathname);
|
||||
if (len+2 > buflen)
|
||||
return NULL;
|
||||
strcpy(buf, pathname);
|
||||
strcpy(buf+len, Py_OptimizeFlag ? "o" : "c");
|
||||
|
||||
#ifdef MS_WIN32
|
||||
/* Treat .pyw as if it were .py. The case of ".pyw" must match
|
||||
that used in _PyImport_StandardFiletab. */
|
||||
if (len >= 4 && strcmp(&pathname[len-4], ".pyw") == 0)
|
||||
--len; /* pretend 'w' isn't there */
|
||||
#endif
|
||||
memcpy(buf, pathname, len);
|
||||
buf[len] = Py_OptimizeFlag ? 'o' : 'c';
|
||||
buf[len+1] = '\0';
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue