diff options
| author | Martin v. Löwis <martin@v.loewis.de> | 2009-01-12 07:59:10 +0000 | 
|---|---|---|
| committer | Martin v. Löwis <martin@v.loewis.de> | 2009-01-12 07:59:10 +0000 | 
| commit | ec59d04fad3ffae1b0ce94d2872172398a012d16 (patch) | |
| tree | bbda639d353df299eff60e9dbeae01b318337aa5 /Python | |
| parent | de3369f2ca0e2e1b26482a34fdc09d18a3a928d9 (diff) | |
| download | cpython-git-ec59d04fad3ffae1b0ce94d2872172398a012d16.tar.gz | |
Merged revisions 68540 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r68540 | martin.v.loewis | 2009-01-12 08:57:11 +0100 (Mo, 12 Jan 2009) | 2 lines
  Issue #4915: Port sysmodule to Windows CE.
........
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/sysmodule.c | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/Python/sysmodule.c b/Python/sysmodule.c index af960bc070..f703e097f0 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1257,8 +1257,13 @@ _PySys_Init(void)  		PyDict_SetItemString(sysdict, key, v);	\  	Py_XDECREF(v) +	/* Check that stdin is not a directory +	Using shell redirection, you can redirect stdin to a directory, +	crashing the Python interpreter. Catch this common mistake here +	and output a useful error message. Note that under MS Windows, +	the shell already prevents that. */ +#if !defined(MS_WINDOWS)  	{ -		/* XXX: does this work on Win/Win64? (see posix_fstat) */  		struct stat sb;  		if (fstat(fileno(stdin), &sb) == 0 &&  		    S_ISDIR(sb.st_mode)) { @@ -1268,6 +1273,7 @@ _PySys_Init(void)  			exit(EXIT_FAILURE);  		}  	} +#endif          /* stdin/stdout/stderr are now set by pythonrun.c */ @@ -1483,7 +1489,7 @@ PySys_SetArgv(int argc, wchar_t **argv)  {  #if defined(HAVE_REALPATH)  	wchar_t fullpath[MAXPATHLEN]; -#elif defined(MS_WINDOWS) +#elif defined(MS_WINDOWS) && !defined(MS_WINCE)  	wchar_t fullpath[MAX_PATH];  #endif  	PyObject *av = makeargvobject(argc, argv); @@ -1529,7 +1535,10 @@ PySys_SetArgv(int argc, wchar_t **argv)  #if SEP == '\\' /* Special case for MS filename syntax */  		if (argc > 0 && argv0 != NULL && wcscmp(argv0, L"-c") != 0) {  			wchar_t *q; -#ifdef MS_WINDOWS +#if defined(MS_WINDOWS) && !defined(MS_WINCE) +			/* This code here replaces the first element in argv with the full +			path that it represents. Under CE, there are no relative paths so +			the argument must be the full path anyway. */  			wchar_t *ptemp;  			if (GetFullPathNameW(argv0,  					   sizeof(fullpath)/sizeof(fullpath[0]),  | 
