mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	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;
 | 
						|
}
 |