mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
	
	
		
			55 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |     This is the entry point for Python DLL(s). | ||
|  |     It also provides an getenv() function that works from within DLLs. | ||
|  | */ | ||
|  | 
 | ||
|  | #define NULL 0
 | ||
|  | 
 | ||
|  | /* Make references to imported symbols to pull them from static library */ | ||
|  | #define REF(s)	extern void s (); void *____ref_##s = &s;
 | ||
|  | 
 | ||
|  | REF (Py_Main); | ||
|  | 
 | ||
|  | #if defined (__EMX__)
 | ||
|  | 
 | ||
|  | #include <signal.h>
 | ||
|  | 
 | ||
|  | extern int _CRT_init (void); | ||
|  | extern void _CRT_term (void); | ||
|  | extern void __ctordtorInit (void); | ||
|  | extern void __ctordtorTerm (void); | ||
|  | 
 | ||
|  | unsigned long _DLL_InitTerm (unsigned long mod_handle, unsigned long flag) | ||
|  | { | ||
|  |   switch (flag) | ||
|  |   { | ||
|  |     case 0: | ||
|  |       if (_CRT_init ()) return 0; | ||
|  |       __ctordtorInit (); | ||
|  |       /* Ignore fatal signals */ | ||
|  |       signal (SIGSEGV, SIG_IGN); | ||
|  |       signal (SIGFPE, SIG_IGN); | ||
|  |       return 1; | ||
|  |     case 1: | ||
|  |       __ctordtorTerm (); | ||
|  |       _CRT_term (); | ||
|  |       return 1; | ||
|  |     default: | ||
|  |       return 0; | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /* A version of getenv() that works from DLLs */ | ||
|  | extern int DosScanEnv (const char *pszName, char **ppszValue); | ||
|  | 
 | ||
|  | char *getenv (const char *name) | ||
|  | { | ||
|  |   char *value; | ||
|  |   if (DosScanEnv (name, &value)) | ||
|  |     return NULL; | ||
|  |   else | ||
|  |     return value; | ||
|  | } |