Jim Ahlstrom's contributions for DOS, OS/2, WIN3.1.

This commit is contained in:
Guido van Rossum 1997-05-19 14:16:21 +00:00
parent 5a37d7d150
commit 1aa7e3a177
6 changed files with 2982 additions and 2718 deletions

294
PC/getpathp.c Normal file
View File

@ -0,0 +1,294 @@
/***********************************************************
Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
The Netherlands.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Stichting Mathematisch
Centrum or CWI or Corporation for National Research Initiatives or
CNRI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.
While CWI is the initial source for this software, a modified version
is made available by the Corporation for National Research Initiatives
(CNRI) at the Internet address ftp://ftp.python.org.
STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
/* Return the initial module search path. */
/* Used by DOS, OS/2, Windows 3.1. Works on NT too. */
#include "Python.h"
#include "osdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#if HAVE_UNISTD_H
#include <unistd.h>
#endif /* HAVE_UNISTD_H */
/* Search in some common locations for the associated Python libraries.
*
* This version always returns "" for both prefix and exec_prefix.
*
* Py_GetPath() tries to return a sensible Python module search path.
*
* First, we look to see if the executable is in a subdirectory of
* the Python build directory. We calculate the full path of the
* directory containing the executable as progpath. We work backwards
* along progpath and look for $dir/Modules/Setup.in, a distinctive
* landmark. If found, we use $dir/Lib as $root. The returned
* Python path is the compiled #define PYTHONPATH with all the initial
* "./lib" replaced by $root.
*
* Otherwise, if there is a PYTHONPATH environment variable, we return that.
*
* Otherwise we try to find $progpath/lib/string.py, and if found, then
* root is $progpath/lib, and we return Python path as compiled PYTHONPATH
* with all "./lib" replaced by $root (as above).
*
*/
#ifndef LANDMARK
#define LANDMARK "Modules\\Setup.in"
#endif
static char prefix[MAXPATHLEN+1];
static char progpath[MAXPATHLEN+1];
static char *module_search_path = NULL;
static int
is_sep(ch) /* determine if "ch" is a separator character */
char ch;
{
#ifdef ALTSEP
return ch == SEP || ch == ALTSEP;
#else
return ch == SEP;
#endif
}
static void
reduce(dir)
char *dir;
{
int i = strlen(dir);
while (i > 0 && !is_sep(dir[i]))
--i;
dir[i] = '\0';
}
static int
exists(filename)
char *filename;
{
struct stat buf;
return stat(filename, &buf) == 0;
}
static void
join(buffer, stuff)
char *buffer;
char *stuff;
{
int n, k;
if (is_sep(stuff[0]))
n = 0;
else {
n = strlen(buffer);
if (n > 0 && !is_sep(buffer[n-1]) && n < MAXPATHLEN)
buffer[n++] = SEP;
}
k = strlen(stuff);
if (n + k > MAXPATHLEN)
k = MAXPATHLEN - n;
strncpy(buffer+n, stuff, k);
buffer[n+k] = '\0';
}
static int
search_for_prefix(argv0_path, landmark)
char *argv0_path;
char *landmark;
{
int n;
/* Search from argv0_path, until root is found */
strcpy(prefix, argv0_path);
do {
n = strlen(prefix);
join(prefix, landmark);
if (exists(prefix))
return 1;
prefix[n] = '\0';
reduce(prefix);
} while (prefix[0]);
return 0;
}
static void
get_progpath()
{
#ifdef MS_WIN32
#include <windows.h>
if (!GetModuleFileName(NULL, progpath, MAXPATHLEN))
progpath[0] = '\0'; /* failure */
#else
extern char *Py_GetProgramName();
char *path = getenv("PATH");
char *prog = Py_GetProgramName();
/* If there is no slash in the argv0 path, then we have to
* assume python is on the user's $PATH, since there's no
* other way to find a directory to start the search from. If
* $PATH isn't exported, you lose.
*/
#ifdef ALTSEP
if (strchr(prog, SEP) || strchr(prog, ALTSEP))
#else
if (strchr(prog, SEP))
#endif
strcpy(progpath, prog);
else if (path) {
while (1) {
char *delim = strchr(path, DELIM);
if (delim) {
int len = delim - path;
strncpy(progpath, path, len);
*(progpath + len) = '\0';
}
else
strcpy(progpath, path);
join(progpath, prog);
if (exists(progpath))
break;
if (!delim) {
progpath[0] = '\0';
break;
}
path = delim + 1;
}
}
else
progpath[0] = '\0';
#endif
}
static void
calculate_path()
{
char ch, *pt, *pt2;
char argv0_path[MAXPATHLEN+1];
char *buf;
int bufsz;
get_progpath();
strcpy(argv0_path, progpath);
reduce(argv0_path);
if (search_for_prefix(argv0_path, LANDMARK)) {
reduce(prefix);
reduce(prefix);
join(prefix, "lib");
}
else if ((module_search_path = getenv("PYTHONPATH")) != 0) {
return; /* if PYTHONPATH environment variable exists, we are done */
}
else { /* Try the executable_directory/lib */
strcpy(prefix, progpath);
reduce(prefix);
join(prefix, "lib");
join(prefix, "string.py"); /* Look for lib/string.py */
if (exists(prefix)) {
reduce(prefix);
}
else { /* No module search path!!! */
module_search_path = PYTHONPATH;
return;
}
}
/* If we get here, we need to return a path equal to the compiled
PYTHONPATH with ".\lib" replaced by our "prefix" directory */
bufsz = 1; /* Calculate size of return buffer. */
for (pt = PYTHONPATH; *pt; pt++)
if (*pt == DELIM)
bufsz++; /* number of DELIM plus one */
bufsz *= strlen(PYTHONPATH) + strlen(prefix); /* high estimate */
module_search_path = buf = malloc(bufsz);
if (buf == NULL) {
/* We can't exit, so print a warning and limp along */
fprintf(stderr, "Not enough memory for dynamic PYTHONPATH.\n");
fprintf(stderr, "Using default static PYTHONPATH.\n");
module_search_path = PYTHONPATH;
return;
}
for (pt = PYTHONPATH; *pt; pt++) {
if (!strncmp(pt, ".\\lib", 5) &&
((ch = *(pt + 5)) == '\\' || ch == DELIM || !ch)){
pt += 4;
for (pt2 = prefix; *pt2; pt2++)
*buf++ = *pt2;
}
else
*buf++ = *pt;
}
*buf = '\0';
}
/* External interface */
char *
Py_GetPath()
{
if (!module_search_path)
calculate_path();
return module_search_path;
}
char *
Py_GetPrefix()
{
return "";
}
char *
Py_GetExecPrefix()
{
return "";
}
char *
Py_GetProgramFullPath() /* Full path to Python executable */
{
if (!module_search_path)
calculate_path();
return progpath;
}

View File

@ -4,8 +4,8 @@ projectIdent
VpeMain
1
WRect
128
409
64
529
9920
8704
2
@ -42,14 +42,14 @@ WRect
WFileName
20
wat_os2\pyth_os2.tgt
0
5
70
9
11
VComponent
12
WRect
243
204
25
17
5632
4096
0
@ -58,6 +58,6 @@ WRect
WFileName
20
wat_dos\pyth_dos.tgt
68
5
70
9
11

View File

@ -7,20 +7,33 @@ several PC ports of Python, as well as all the PC-specific
Python source files. It should be located in the root of the
Python distribution, and there should be directories "Modules",
"Objects", "Python", etc. in the parent directory of this "PC"
subdirectory.
subdirectory. Be sure to read the documentation in the Python
distribution.
Be sure to read the documentation in the Python distribution. You
must set the environment variable PYTHONPATH to point to your Python
library directory. This is "../Lib", but you must use an absolute path,
and perhaps copy it somewhere else. Be sure to include the Windows
specific directory "win" too. If you use a DOS FAT file system and
either a DOS or Windows 3.1x Python version, you should also put
../Lib/dos_8x3 on your PYTHONPATH too, since it has DOS 8x3 names
for the standard Python library names. So your autoexec.bat should have:
set PYTHONPATH=.;c:\python\lib;c:\python\lib\win
for Windows NT or
set PYTHONPATH=.;c:\python\lib;c:\python\lib\win;c:\python\lib\dos_8x3
for DOS or Windows 3.1x (change the path to the correct path).
Python requires library files such as string.py to be available in
one or more library directories. The search path of libraries is
set up when Python starts. To see the current Python library search
path, start Python and enter "import sys" and "print sys.path".
All PC ports except Windows 95/NT use this scheme to try to set up
a search path:
1) If the Python executable (for example, py_dos.exe) is located
in a subdirectory of the Python root (..), then those library
files are used (../Lib) to generate the path.
2) Otherwise the environment variable PYTHONPATH is the search path.
3) Otherwise the directory "lib" in the directory of the executable
file is used to generate the path.
4) Otherwise, the current directory is used (not useful).
The best installation strategy (except NT) is to put the Python
executable in some convenient directory such as C:/python, and
copy all library files and subdirectories (using XCOPY) to C:/python/lib.
Then you don't need to set PYTHONPATH. Otherwise, set the environment
variable PYTHONPATH to your Python search path. For example,
set PYTHONPATH=.;d:\python\lib;d:\python\lib\win;d:\python\lib\dos_8x3
Python for Windows 95/NT uses the same PYTHONPATH environment variable, plus
the Python path recorded in the registry.
There are several add-in modules to build Python programs which use
the native Windows operating environment. The ports here just make
@ -75,7 +88,7 @@ python The Python main program, named python.exe. This should
_tkinter The optional _tkinter extension, _tkinter.dll; see below.
ALl end products of the compilation are placed in the subdirectory
All end products of the compilation are placed in the subdirectory
vc40 (which Developer Studio creates); object files are placed in
vc40/tmp. There are no separate Release and Debug project variants.
Note that the python and _tkinter projects require that the

View File

@ -1,31 +1,32 @@
import sys
# This is a test module for Python. It looks in the standard
# places for various *.py files. If these are moved, you must
# change this module too.
try:
import string
except:
print """Could not import the standard "string" module.
Please check your PYTHONPATH environment variable."""
sys.exit(1)
try:
import regex_syntax
except:
print """Could not import the standard "regex_syntax" module. If this is
a PC, you should add the dos_8x3 directory to your PYTHONPATH."""
sys.exit(1)
import os
for dir in sys.path:
file = os.path.join(dir, "string.py")
if os.path.isfile(file):
test = os.path.join(dir, "test")
if os.path.isdir(test):
# Add the "test" directory to PYTHONPATH.
sys.path = sys.path + [test]
import autotest # Standard Python tester.
import sys
# This is a test module for Python. It looks in the standard
# places for various *.py files. If these are moved, you must
# change this module too.
try:
import string
except:
print """Could not import the standard "string" module.
Please check your PYTHONPATH environment variable."""
sys.exit(1)
try:
import regex_syntax
except:
print """Could not import the standard "regex_syntax" module. If this is
a PC, you should add the dos_8x3 directory to your PYTHONPATH."""
sys.exit(1)
import os
for dir in sys.path:
file = os.path.join(dir, "string.py")
if os.path.isfile(file):
test = os.path.join(dir, "test")
if os.path.isdir(test):
# Add the "test" directory to PYTHONPATH.
sys.path = sys.path + [test]
import regrtest # Standard Python tester.
regrtest.main()

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ D_RCDEFINES = -d_DEBUG
R_RCDEFINES = -dNDEBUG
ORIGIN = MSVC
ORIGIN_VER = 1.00
PROJPATH = N:\PYTHON\PYTHON\PC\VC15_W31\
PROJPATH = N:\PYTHON\PYTHON-1.5A1\PC\VC15_W31\
USEMFC = 0
CC = cl
CPP = cl
@ -40,14 +40,14 @@ LFLAGS = $(LFLAGS_D_WTTY)
LIBS = $(LIBS_D_WTTY)
MAPFILE = nul
RCDEFINES = $(D_RCDEFINES)
DEFFILE=N:\PYTHON\PYTHON\PC\PYTH_W31.DEF
DEFFILE=N:\PYTHON\PYTHON-1.5A1\PC\PYTH_W31.DEF
!else
CFLAGS = $(CFLAGS_R_WTTY)
LFLAGS = $(LFLAGS_R_WTTY)
LIBS = $(LIBS_R_WTTY)
MAPFILE = nul
RCDEFINES = $(R_RCDEFINES)
DEFFILE=N:\PYTHON\PYTHON\PC\PYTH_W31.DEF
DEFFILE=N:\PYTHON\PYTHON-1.5A1\PC\PYTH_W31.DEF
!endif
!if [if exist MSVC.BND del MSVC.BND]
!endif
@ -57,126 +57,121 @@ SBRS = MAIN.SBR \
SOCKETMO.SBR
MAIN_DEP = n:\python\python\pc\src\python.h \
n:\python\python\pc\src\allobjec.h \
n:\python\python\pc\src\config.h \
n:\python\python\pc\src\myproto.h \
n:\python\python\pc\src\rename2.h \
n:\python\python\pc\src\object.h \
n:\python\python\pc\src\objimpl.h \
n:\python\python\pc\src\pydebug.h \
n:\python\python\pc\src\accessob.h \
n:\python\python\pc\src\intobjec.h \
n:\python\python\pc\src\longobje.h \
n:\python\python\pc\src\floatobj.h \
n:\python\python\pc\src\complexo.h \
n:\python\python\pc\src\rangeobj.h \
n:\python\python\pc\src\stringob.h \
n:\python\python\pc\src\tupleobj.h \
n:\python\python\pc\src\listobje.h \
n:\python\python\pc\src\mappingo.h \
n:\python\python\pc\src\methodob.h \
n:\python\python\pc\src\moduleob.h \
n:\python\python\pc\src\funcobje.h \
n:\python\python\pc\src\classobj.h \
n:\python\python\pc\src\thread.h \
n:\python\python\pc\src\fileobje.h \
n:\python\python\pc\src\cobject.h \
n:\python\python\pc\src\tracebac.h \
n:\python\python\pc\src\sliceobj.h \
n:\python\python\pc\src\pyerrors.h \
n:\python\python\pc\src\mymalloc.h \
n:\python\python\pc\src\modsuppo.h \
n:\python\python\pc\src\ceval.h \
n:\python\python\pc\src\pythonru.h \
n:\python\python\pc\src\sysmodul.h \
n:\python\python\pc\src\intrchec.h \
n:\python\python\pc\src\import.h \
n:\python\python\pc\src\bltinmod.h \
n:\python\python\pc\src\abstract.h
MAIN_DEP = n:\python\python-1.5a1\pc\src\python.h \
n:\python\python-1.5a1\pc\src\config.h \
n:\python\python-1.5a1\pc\src\myproto.h \
n:\python\python-1.5a1\pc\src\object.h \
n:\python\python-1.5a1\pc\src\objimpl.h \
n:\python\python-1.5a1\pc\src\pydebug.h \
n:\python\python-1.5a1\pc\src\intobjec.h \
n:\python\python-1.5a1\pc\src\longobje.h \
n:\python\python-1.5a1\pc\src\floatobj.h \
n:\python\python-1.5a1\pc\src\complexo.h \
n:\python\python-1.5a1\pc\src\rangeobj.h \
n:\python\python-1.5a1\pc\src\stringob.h \
n:\python\python-1.5a1\pc\src\tupleobj.h \
n:\python\python-1.5a1\pc\src\listobje.h \
n:\python\python-1.5a1\pc\src\mappingo.h \
n:\python\python-1.5a1\pc\src\methodob.h \
n:\python\python-1.5a1\pc\src\moduleob.h \
n:\python\python-1.5a1\pc\src\funcobje.h \
n:\python\python-1.5a1\pc\src\classobj.h \
n:\python\python-1.5a1\pc\src\fileobje.h \
n:\python\python-1.5a1\pc\src\cobject.h \
n:\python\python-1.5a1\pc\src\tracebac.h \
n:\python\python-1.5a1\pc\src\sliceobj.h \
n:\python\python-1.5a1\pc\src\pyerrors.h \
n:\python\python-1.5a1\pc\src\mymalloc.h \
n:\python\python-1.5a1\pc\src\modsuppo.h \
n:\python\python-1.5a1\pc\src\ceval.h \
n:\python\python-1.5a1\pc\src\pythonru.h \
n:\python\python-1.5a1\pc\src\sysmodul.h \
n:\python\python-1.5a1\pc\src\intrchec.h \
n:\python\python-1.5a1\pc\src\import.h \
n:\python\python-1.5a1\pc\src\bltinmod.h \
n:\python\python-1.5a1\pc\src\pystate.h \
n:\python\python-1.5a1\pc\src\abstract.h \
n:\python\python-1.5a1\pc\src\pyfpe.h
GETOPT_DEP =
SELECTMO_DEP = n:\python\python\pc\src\allobjec.h \
n:\python\python\pc\src\config.h \
n:\python\python\pc\src\myproto.h \
n:\python\python\pc\src\rename2.h \
n:\python\python\pc\src\object.h \
n:\python\python\pc\src\objimpl.h \
n:\python\python\pc\src\pydebug.h \
n:\python\python\pc\src\accessob.h \
n:\python\python\pc\src\intobjec.h \
n:\python\python\pc\src\longobje.h \
n:\python\python\pc\src\floatobj.h \
n:\python\python\pc\src\complexo.h \
n:\python\python\pc\src\rangeobj.h \
n:\python\python\pc\src\stringob.h \
n:\python\python\pc\src\tupleobj.h \
n:\python\python\pc\src\listobje.h \
n:\python\python\pc\src\mappingo.h \
n:\python\python\pc\src\methodob.h \
n:\python\python\pc\src\moduleob.h \
n:\python\python\pc\src\funcobje.h \
n:\python\python\pc\src\classobj.h \
n:\python\python\pc\src\thread.h \
n:\python\python\pc\src\fileobje.h \
n:\python\python\pc\src\cobject.h \
n:\python\python\pc\src\tracebac.h \
n:\python\python\pc\src\sliceobj.h \
n:\python\python\pc\src\pyerrors.h \
n:\python\python\pc\src\mymalloc.h \
n:\python\python\pc\src\modsuppo.h \
n:\python\python\pc\src\ceval.h \
n:\python\python\pc\src\pythonru.h \
n:\python\python\pc\src\sysmodul.h \
n:\python\python\pc\src\intrchec.h \
n:\python\python\pc\src\import.h \
n:\python\python\pc\src\bltinmod.h \
n:\python\python\pc\src\abstract.h \
SELECTMO_DEP = n:\python\python-1.5a1\pc\src\python.h \
n:\python\python-1.5a1\pc\src\config.h \
n:\python\python-1.5a1\pc\src\myproto.h \
n:\python\python-1.5a1\pc\src\object.h \
n:\python\python-1.5a1\pc\src\objimpl.h \
n:\python\python-1.5a1\pc\src\pydebug.h \
n:\python\python-1.5a1\pc\src\intobjec.h \
n:\python\python-1.5a1\pc\src\longobje.h \
n:\python\python-1.5a1\pc\src\floatobj.h \
n:\python\python-1.5a1\pc\src\complexo.h \
n:\python\python-1.5a1\pc\src\rangeobj.h \
n:\python\python-1.5a1\pc\src\stringob.h \
n:\python\python-1.5a1\pc\src\tupleobj.h \
n:\python\python-1.5a1\pc\src\listobje.h \
n:\python\python-1.5a1\pc\src\mappingo.h \
n:\python\python-1.5a1\pc\src\methodob.h \
n:\python\python-1.5a1\pc\src\moduleob.h \
n:\python\python-1.5a1\pc\src\funcobje.h \
n:\python\python-1.5a1\pc\src\classobj.h \
n:\python\python-1.5a1\pc\src\fileobje.h \
n:\python\python-1.5a1\pc\src\cobject.h \
n:\python\python-1.5a1\pc\src\tracebac.h \
n:\python\python-1.5a1\pc\src\sliceobj.h \
n:\python\python-1.5a1\pc\src\pyerrors.h \
n:\python\python-1.5a1\pc\src\mymalloc.h \
n:\python\python-1.5a1\pc\src\modsuppo.h \
n:\python\python-1.5a1\pc\src\ceval.h \
n:\python\python-1.5a1\pc\src\pythonru.h \
n:\python\python-1.5a1\pc\src\sysmodul.h \
n:\python\python-1.5a1\pc\src\intrchec.h \
n:\python\python-1.5a1\pc\src\import.h \
n:\python\python-1.5a1\pc\src\bltinmod.h \
n:\python\python-1.5a1\pc\src\pystate.h \
n:\python\python-1.5a1\pc\src\abstract.h \
n:\python\python-1.5a1\pc\src\pyfpe.h \
c:\msvc\include\winsock.h \
n:\python\python\pc\src\myselect.h \
n:\python\python\pc\src\mytime.h
n:\python\python-1.5a1\pc\src\myselect.h \
n:\python\python-1.5a1\pc\src\mytime.h
SOCKETMO_DEP = n:\python\python\pc\src\python.h \
n:\python\python\pc\src\allobjec.h \
n:\python\python\pc\src\config.h \
n:\python\python\pc\src\myproto.h \
n:\python\python\pc\src\rename2.h \
n:\python\python\pc\src\object.h \
n:\python\python\pc\src\objimpl.h \
n:\python\python\pc\src\pydebug.h \
n:\python\python\pc\src\accessob.h \
n:\python\python\pc\src\intobjec.h \
n:\python\python\pc\src\longobje.h \
n:\python\python\pc\src\floatobj.h \
n:\python\python\pc\src\complexo.h \
n:\python\python\pc\src\rangeobj.h \
n:\python\python\pc\src\stringob.h \
n:\python\python\pc\src\tupleobj.h \
n:\python\python\pc\src\listobje.h \
n:\python\python\pc\src\mappingo.h \
n:\python\python\pc\src\methodob.h \
n:\python\python\pc\src\moduleob.h \
n:\python\python\pc\src\funcobje.h \
n:\python\python\pc\src\classobj.h \
n:\python\python\pc\src\thread.h \
n:\python\python\pc\src\fileobje.h \
n:\python\python\pc\src\cobject.h \
n:\python\python\pc\src\tracebac.h \
n:\python\python\pc\src\sliceobj.h \
n:\python\python\pc\src\pyerrors.h \
n:\python\python\pc\src\mymalloc.h \
n:\python\python\pc\src\modsuppo.h \
n:\python\python\pc\src\ceval.h \
n:\python\python\pc\src\pythonru.h \
n:\python\python\pc\src\sysmodul.h \
n:\python\python\pc\src\intrchec.h \
n:\python\python\pc\src\import.h \
n:\python\python\pc\src\bltinmod.h \
n:\python\python\pc\src\abstract.h \
n:\python\python\pc\src\mytime.h \
SOCKETMO_DEP = n:\python\python-1.5a1\pc\src\python.h \
n:\python\python-1.5a1\pc\src\config.h \
n:\python\python-1.5a1\pc\src\myproto.h \
n:\python\python-1.5a1\pc\src\object.h \
n:\python\python-1.5a1\pc\src\objimpl.h \
n:\python\python-1.5a1\pc\src\pydebug.h \
n:\python\python-1.5a1\pc\src\intobjec.h \
n:\python\python-1.5a1\pc\src\longobje.h \
n:\python\python-1.5a1\pc\src\floatobj.h \
n:\python\python-1.5a1\pc\src\complexo.h \
n:\python\python-1.5a1\pc\src\rangeobj.h \
n:\python\python-1.5a1\pc\src\stringob.h \
n:\python\python-1.5a1\pc\src\tupleobj.h \
n:\python\python-1.5a1\pc\src\listobje.h \
n:\python\python-1.5a1\pc\src\mappingo.h \
n:\python\python-1.5a1\pc\src\methodob.h \
n:\python\python-1.5a1\pc\src\moduleob.h \
n:\python\python-1.5a1\pc\src\funcobje.h \
n:\python\python-1.5a1\pc\src\classobj.h \
n:\python\python-1.5a1\pc\src\fileobje.h \
n:\python\python-1.5a1\pc\src\cobject.h \
n:\python\python-1.5a1\pc\src\tracebac.h \
n:\python\python-1.5a1\pc\src\sliceobj.h \
n:\python\python-1.5a1\pc\src\pyerrors.h \
n:\python\python-1.5a1\pc\src\mymalloc.h \
n:\python\python-1.5a1\pc\src\modsuppo.h \
n:\python\python-1.5a1\pc\src\ceval.h \
n:\python\python-1.5a1\pc\src\pythonru.h \
n:\python\python-1.5a1\pc\src\sysmodul.h \
n:\python\python-1.5a1\pc\src\intrchec.h \
n:\python\python-1.5a1\pc\src\import.h \
n:\python\python-1.5a1\pc\src\bltinmod.h \
n:\python\python-1.5a1\pc\src\pystate.h \
n:\python\python-1.5a1\pc\src\abstract.h \
n:\python\python-1.5a1\pc\src\pyfpe.h \
n:\python\python-1.5a1\pc\src\mytime.h \
c:\msvc\include\winsock.h