| #include "Python.h" | 
 | #include "osdefs.h" | 
 |  | 
 | static char *prefix, *exec_prefix, *progpath, *module_search_path=NULL; | 
 |  | 
 | static void | 
 | calculate_path() | 
 | {  | 
 | 	char *pypath = getenv("Python$Path"); | 
 | 	if (pypath) { | 
 | 		int pathlen = strlen(pypath); | 
 | 		module_search_path = malloc(pathlen + 1); | 
 | 		if (module_search_path)  | 
 | 			strncpy(module_search_path, pypath, pathlen + 1); | 
 | 		else { | 
 | 			fprintf(stderr,  | 
 | 				"Not enough memory for dynamic PYTHONPATH.\n" | 
 | 				"Using default static PYTHONPATH.\n"); | 
 | 		} | 
 | 	} | 
 | 	if (!module_search_path)  | 
 | 		module_search_path = "<Python$Dir>.Lib"; | 
 | 	prefix = "<Python$Dir>"; | 
 | 	exec_prefix = prefix; | 
 | 	progpath = Py_GetProgramName(); | 
 | } | 
 |  | 
 | /* External interface */ | 
 |  | 
 | char * | 
 | Py_GetPath() | 
 | { | 
 | 	if (!module_search_path) | 
 | 		calculate_path(); | 
 | 	return module_search_path; | 
 | } | 
 |  | 
 | char * | 
 | Py_GetPrefix() | 
 | { | 
 | 	if (!module_search_path) | 
 | 		calculate_path(); | 
 | 	return prefix; | 
 | } | 
 |  | 
 | char * | 
 | Py_GetExecPrefix() | 
 | { | 
 | 	if (!module_search_path) | 
 | 		calculate_path(); | 
 | 	return exec_prefix; | 
 | } | 
 |  | 
 | char * | 
 | Py_GetProgramFullPath() | 
 | { | 
 | 	if (!module_search_path) | 
 | 		calculate_path(); | 
 | 	return progpath; | 
 | } |