mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 1422e9dc60
			
		
	
	
		1422e9dc60
		
	
	
	
	
		
			
			Dietmar Schwertberger.
Bugfix candidate.
"""
RISCOS/Modules/getpath_riscos.c:
Include trailing '\0' when using strncpy [copy
strlen(...)+1 characters].
Lib/plat-riscos/riscospath.py:
Use riscosmodule.expand for os.path.abspath.
[fixes problems with site.py where
abspath("<Python$Dir>") returned
join(os.getcwd(), "<Python$Dir>") as e.g.
"SCSI::SCSI4.$.<Python$Dir>" because "<Python$Dir>"
wasn't recognised as an absolute path.]
"""
		
	
			
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #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;
 | |
| }
 |