| 
									
										
										
										
											2001-03-02 05:58:11 +00:00
										 |  |  | #include "Python.h"
 | 
					
						
							|  |  |  | #include "osdefs.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-28 21:30:04 +00:00
										 |  |  | static char *prefix, *exec_prefix, *progpath, *module_search_path=NULL; | 
					
						
							| 
									
										
										
										
											2001-03-02 05:58:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | calculate_path() | 
					
						
							| 
									
										
										
										
											2001-11-28 21:30:04 +00:00
										 |  |  | {  | 
					
						
							|  |  |  | 	char *pypath = getenv("Python$Path"); | 
					
						
							|  |  |  | 	if (pypath) { | 
					
						
							|  |  |  | 		int pathlen = strlen(pypath); | 
					
						
							|  |  |  | 		module_search_path = malloc(pathlen + 1); | 
					
						
							|  |  |  | 		if (module_search_path)  | 
					
						
							| 
									
										
										
										
											2001-12-15 22:12:47 +00:00
										 |  |  | 			strncpy(module_search_path, pypath, pathlen + 1); | 
					
						
							| 
									
										
										
										
											2001-11-28 21:30:04 +00:00
										 |  |  | 		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(); | 
					
						
							| 
									
										
										
										
											2001-03-02 05:58:11 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* 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; | 
					
						
							|  |  |  | } |