81 Commits

Author SHA1 Message Date
Antoine Pitrou
bb6eb857cf Issue #10914: fix bogus memory management in Modules/getpath.c, leading to a possible crash when calling Py_SetPath() 2011-03-17 23:34:33 +01:00
Martin v. Löwis
4d0d471a80 Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
Victor Stinner
47f637ce17 getpath.c: fix test to detech PyUnicode_AsWideChar() failure
PyUnicode_AsWideChar() result is signed, whereas it was stored in a unsigned
variable, and then the test was "n >= 0" which is always true to an unsigned
number. Patch written by Hallvard B Furuseth.
2010-11-10 14:12:20 +00:00
Victor Stinner
ae4836df6d Issue #6011: decode PREFIX, EXEC_PREFIX and PYTHONPATH variables using
_Py_char2wchar(), instead of L"" VAR hack, to escape undecodable bytes using
the surrogateescape error handler.
2010-11-08 23:49:47 +00:00
Victor Stinner
2158231433 Issue #6011: getpath: decode VPATH env var from the locale encoding
Instead of casting it to wchar_t* without conversion. It fixes a bug if Python
is compiled a non-ascii directory, different than the source code directory,
with C locale.
2010-10-23 00:13:28 +00:00
Victor Stinner
61aad57dc9 Oops, fix my previous commit (r85583) on calculate_path()
path value may be changed, so keep a copy in a new variable.
2010-10-16 23:38:07 +00:00
Victor Stinner
dc4b2a712f calculate_path(): use _Py_char2wchar() to decode the PATH environment variable,
to support surrogate characters
2010-10-16 23:34:22 +00:00
Victor Stinner
f4061dac60 _Py_wgetcwd() decodes the path using _Py_char2wchar() to support surrogates 2010-10-14 12:37:19 +00:00
Victor Stinner
4f3abb0f09 copy_absolute() keeps the relative path on _Py_wgetcwd() failure
.. instead of raising a fatal error. Even if the current directory was deleted,
use relative paths may still work (eg. run Python with "../python").
2010-10-07 23:29:18 +00:00
Victor Stinner
41c8b377d7 copy_absolute() raises a fatal error on _Py_wgetcwd() failure 2010-10-07 22:42:51 +00:00
Victor Stinner
4e31443c4d Create fileutils.c/.h
* _Py_fopen() and _Py_stat() come from Python/import.c
 * (_Py)_wrealpath() comes from Python/sysmodule.c
 * _Py_char2wchar(), _Py_wchar2char() and _Py_wfopen() come from Modules/main.c
 * (_Py)_wstat(), (_Py)_wgetcwd(), _Py_wreadlink() come from Modules/getpath.c
2010-10-07 21:45:39 +00:00
Victor Stinner
7ae7c87b05 _wrealpath() and _Py_wreadlink() support surrogates (PEP 383)
Use _Py_wchar2char() to support surrogate characters in the input path.
2010-10-07 11:06:49 +00:00
Kristján Valur Jónsson
3b69db27d7 issue 9910
Add a Py_SetPath api to override magic path computations when starting up python.
2010-09-27 05:32:54 +00:00
Antoine Pitrou
99773acf38 Fix indentation in Modules/getpath.c 2010-08-14 12:34:41 +00:00
Antoine Pitrou
eba57b6f3a Add comments about Windows in Modules/getpath.c 2010-08-14 12:33:18 +00:00
Victor Stinner
e406ef41b1 Kill a gcc warning introduced by r83988 2010-08-14 00:07:14 +00:00
Victor Stinner
f2e08b34f1 Create _Py_wchar2char() function, reverse of _Py_char2wchar()
* Use _Py_wchar2char() in _wstat() and _Py_wfopen()
 * Document _Py_char2wchar()
2010-08-13 23:29:08 +00:00
Antoine Pitrou
e9b428f997 Reimplement addbuilddir() in C inside getpath.c, so as to execute it
at interpreter startup before importing any non-builtin modules.
Should fix #9589.
2010-08-13 22:25:01 +00:00
Ronald Oussoren
97d1119dde Ensure that sys.prefix can reliably be found
on OSX. This fixes a small issue that was exposed
by running test_subprocess through regrtest (and
hence in a subdirectory).

Without this patch running python.exe from the
build tree will fail when these tree conditions
are true:
1) the CWD is not the root of build tree
2) python.exe is found through $PATH
3) the framework is not yet installed
2010-07-23 16:05:35 +00:00
Antoine Pitrou
f95a1b3c53 Recorded merge of revisions 81029 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines

  Untabify C files. Will watch buildbots.
........
2010-05-09 15:52:27 +00:00
Victor Stinner
171ba0504a Merged revisions 78835-78837 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78835 | victor.stinner | 2010-03-11 13:34:39 +0100 (jeu., 11 mars 2010) | 7 lines

  Issue #7774: Set sys.executable to an empty string if argv[0] has been
  set to an non existent program name and Python is unable to retrieve the real
  program name.

  Fix also sysconfig: if sys.executable is an empty string, use the current
  working directory.
........
  r78836 | victor.stinner | 2010-03-11 14:27:35 +0100 (jeu., 11 mars 2010) | 4 lines

  Fix test_executable introduce in previous commit (r78835): Windows is able to
  retrieve the absolute Python path even if argv[0] has been set to a non
  existent program name.
........
  r78837 | victor.stinner | 2010-03-11 14:46:06 +0100 (jeu., 11 mars 2010) | 3 lines

  Another fix to test_executable() of test_sys: set the current working to avoid
  the #7774 bug.
........
2010-03-12 14:20:59 +00:00
Andrew M. Kuchling
b2ceb3ad9e #4532: fixes to make 3.x compile on QNX 6.3.2 (reported by Matt Kraai) 2010-02-22 23:26:10 +00:00
Ronald Oussoren
3e264e13ed This fixes issue5143 and includes a test.
Issue5143 notes that getpath.c and main.c pass a 'char*' where
a 'wchar_t*' is expected on OSX.
2009-02-12 15:55:38 +00:00
Hirokazu Yamamoto
f8247796b1 Issue #3813: cannot lanch python.exe via symbolic link on cygwin.
readlink(2) can return non-null-terminated string.
Reviewed by Amaury Forgeot d'Arc.
2008-09-09 13:56:11 +00:00
Martin v. Löwis
790465fd90 Change command line processing API to use wchar_t.
Fixes #2128.
2008-04-05 20:41:37 +00:00