Commit Graph

173 Commits

Author SHA1 Message Date
Georg Brandl 7ef825fdab merge with 3.2 2012-02-21 22:36:37 +01:00
Georg Brandl c9a42070a6 Remove reST markup from --help output. Also: O(n**2) is dict construction, not single insertion. 2012-02-21 22:36:27 +01:00
Antoine Pitrou 86838b02f0 Fix test failure in test_cmd_line by initializing the hash secret at the earliest point. 2012-02-21 19:03:47 +01:00
Georg Brandl 09a7c72cad Merge from 3.1: Issue #13703: add a way to randomize the hash values of basic types (str, bytes, datetime)
in order to make algorithmic complexity attacks on (e.g.) web apps much more complicated.

The environment variable PYTHONHASHSEED and the new command line flag -R control this
behavior.
2012-02-20 21:31:46 +01:00
Georg Brandl 2daf6ae249 Issue #13703: add a way to randomize the hash values of basic types (str, bytes, datetime)
in order to make algorithmic complexity attacks on (e.g.) web apps much more complicated.

The environment variable PYTHONHASHSEED and the new command line flag -R control this
behavior.
2012-02-20 19:54:16 +01:00
Antoine Pitrou c345ce1a69 Issue #10350: Read and save errno before calling a function which might overwrite it.
Original patch by Hallvard B Furuseth.
2011-12-16 12:28:32 +01:00
Eli Bendersky 44a6c16729 Merged revisions 87991 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87991 | eli.bendersky | 2011-01-14 09:31:14 +0200 (Fri, 14 Jan 2011) | 2 lines

  Remove call to nonexisting function (relic from Python 2.x) under #ifdef __INSURE__. Issue 9844
........
2011-01-14 08:52:17 +00:00
Eli Bendersky 07395914ca Remove call to nonexisting function (relic from Python 2.x) under #ifdef __INSURE__. Issue 9844 2011-01-14 07:31:14 +00:00
Victor Stinner 89e3436606 Issue #10841: set binary mode on files; the parser translates newlines
On Windows, set the binary mode on stdin, stdout, stderr and all
io.FileIO objects (to not translate newlines, \r\n <=> \n). The Python parser
translates newlines (\r\n => \n).
2011-01-07 18:47:22 +00:00
Georg Brandl 8aa7e999b5 Add sys.flags.quiet attribute for the new -q option, as noted missing by Eric in #1772833. 2010-12-28 18:30:18 +00:00
Georg Brandl 9d8711964f #1772833: add -q command line option. 2010-12-04 10:47:18 +00:00
Georg Brandl e5b99f0fb3 Remove redundant includes of headers that are already included by Python.h. 2010-11-30 09:41:01 +00:00
Victor Stinner 2f02a51135 PyUnicode_EncodeFS() raises an exception if _Py_wchar2char() fails
* Add error_pos optional argument to _Py_wchar2char()
 * PyUnicode_EncodeFS() raises a UnicodeEncodeError or MemoryError if
   _Py_wchar2char() fails
2010-11-08 22:43:46 +00:00
Antoine Pitrou 9583cac633 Issue #10089: Add support for arbitrary -X options on the command-line.
They can be retrieved through a new attribute `sys._xoptions`.
2010-10-21 13:42:28 +00:00
Victor Stinner e0f3268715 run_file(): encode the filename with PyUnicode_EncodeFSDefault() instead of
PyUnicode_AsUTF8String()
2010-10-17 19:34:51 +00:00
Victor Stinner 168e117e0a Add an optional size argument to _Py_char2wchar()
_Py_char2wchar() callers usually need the result size in characters. Since it's
trivial to compute it in _Py_char2wchar() (O(1) whereas wcslen() is O(n)), add
an option to get it.
2010-10-16 23:16:16 +00:00
Victor Stinner 9a6692f6d7 Py_Main() uses _Py_wchar2char() to encode the filename in error messages 2010-10-14 10:51:24 +00:00
Victor Stinner 8f6b6b0cc3 Issue #9992: Remove PYTHONFSENCODING environment variable. 2010-10-13 22:02:27 +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 4726e40e00 Rewrite RunMainFromImporter()
* fix argv0 reference counter if PyList_SetItem() fails
 * don't use complex if conditions, but a simple indentation and "goto error"
 * simplify error handling (remove Py_XDECREF(importer) from the error label)
 * don't set sys_path to NULL (it's useless, sys_path is a borrowed reference
   and sys_path is not a static variable)
 * try to write only one instruction per line for better readability
2010-10-06 23:24:57 +00:00
Victor Stinner 5c848a84fd Isse #8589: Decode PYTHONWARNINGS from utf-8 on Mac OS X
Instead of the locale encoding.
2010-09-12 08:00:41 +00:00
Victor Stinner c2d76fd339 Issue #8589: surrogateescape error handler is not available at startup
Py_Main() uses _Py_wchar2char() + PyUnicode_FromWideChar() instead of
PyUnicode_DecodeFSDefault(), because the PyCodec machinery is not ready yet.
2010-09-10 23:13:52 +00:00
Victor Stinner 9802b39c12 PYTHONFSENCODING is not available on Windows or Mac OS X 2010-08-19 11:36:43 +00:00
Victor Stinner 398356baaa Improve error message if the command is not decodable 2010-08-18 22:23:22 +00:00
Victor Stinner 94908bbc15 Issue #8622: Add PYTHONFSENCODING environment variable to override the
filesystem encoding.

initfsencoding() displays also a better error message if get_codeset() failed.
2010-08-18 21:23:25 +00:00
Nick Coghlan d26c18adcc Issue #8202: Set sys.argv[0] to -m rather than -c while searching for the module to execute. Also updates all the cmd_line_script tests to validate the setting of sys.path[0] and the current working directory 2010-08-17 13:06:11 +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
Victor Stinner 0a3ddad666 Issue #9425: Create run_file() subfunction
* Call Py_MakePendingCalls() before converting the filename from
   wchar_t* to char*
 * Use PyUnicode_AsUTF8String() instead of _PyUnicode_AsString()
2010-08-07 16:34:25 +00:00
Victor Stinner a62207c584 Issue #9425: Create run_command() subfunction
Use PyUnicode_AsUTF8String() instead of _PyUnicode_AsString()
2010-08-07 10:57:17 +00:00
Victor Stinner 9ca9c25bcd Issue #8589: Decode PYTHONWARNINGS environment variable with the file system
encoding and surrogateespace error handler instead of the locale encoding to be
consistent with os.environ. Add PySys_AddWarnOptionUnicode() function.
2010-05-19 16:53:30 +00:00
Victor Stinner 2e71d014ea Merged revisions 81250-81253 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r81250 | victor.stinner | 2010-05-17 03:13:37 +0200 (lun., 17 mai 2010) | 2 lines

  Issue #6697: Fix a crash if code of "python -c code" contains surrogates
........
  r81251 | victor.stinner | 2010-05-17 03:26:01 +0200 (lun., 17 mai 2010) | 3 lines

  PyObject_Dump() encodes unicode objects to utf8 with backslashreplace (instead
  of strict) error handler to escape surrogates
........
  r81252 | victor.stinner | 2010-05-17 10:58:51 +0200 (lun., 17 mai 2010) | 6 lines

  handle_system_exit() flushs files to warranty the output order

  PyObject_Print() writes into the C object stderr, whereas PySys_WriteStderr()
  writes into the Python object sys.stderr. Each object has its own buffer, so
  call sys.stderr.flush() and fflush(stderr).
........
  r81253 | victor.stinner | 2010-05-17 11:33:42 +0200 (lun., 17 mai 2010) | 6 lines

  Fix refleak in internal_print() introduced by myself in r81251

  _PyUnicode_AsDefaultEncodedString() uses a magical PyUnicode attribute to
  automatically destroy PyUnicode_EncodeUTF8() result when the unicode string is
  destroyed.
........
2010-05-17 09:35:44 +00:00
Victor Stinner 6baded49d0 Issue #6697: Fix a crash if code of "python -c code" contains surrogates 2010-05-17 01:13:37 +00:00
Antoine Pitrou 7f14f0d8a0 Recorded merge of revisions 81032 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines

  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 16:14:21 +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
Ronald Oussoren d61deca27c Move _Py_char2wchar from python.c to main.c.
This fixes issue #8441: python.c is not included
in the framework while main.c is and without this
patch you get a link error when building
Python.framework on OSX.
2010-04-18 14:46:12 +00:00
Philip Jenvey a1bda34cba strings from _Py_char2wchar need PyMem_Free 2010-04-14 17:03:38 +00:00
Philip Jenvey e53de3dc4a #7301: decode $PYTHONWARNINGS in the same way as argv, test non-ascii values 2010-04-14 03:01:39 +00:00
Benjamin Peterson ad6139acc7 Merged revisions 79936 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79936 | philip.jenvey | 2010-04-10 15:27:15 -0500 (Sat, 10 Apr 2010) | 3 lines

  fix PYTHONWARNINGS handling to not modify the original env value and improve
  its tests
........
2010-04-11 21:16:33 +00:00
Philip Jenvey a9aedd2011 woops these strings aren't kept around, free them 2010-04-07 05:19:21 +00:00
Philip Jenvey 0805ca3f93 Merged revisions 79878-79880 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79878 | philip.jenvey | 2010-04-06 16:24:45 -0700 (Tue, 06 Apr 2010) | 4 lines

  #7301: add the environment variable $PYTHONWARNINGS to supplement the -W
  command line option
  patch from Brian Curtin
........
  r79879 | benjamin.peterson | 2010-04-06 16:32:27 -0700 (Tue, 06 Apr 2010) | 1 line

  tell people to update python.man, too
........
  r79880 | philip.jenvey | 2010-04-06 16:38:57 -0700 (Tue, 06 Apr 2010) | 1 line

  document new PYTHONWARNINGS env var
........
2010-04-07 04:04:10 +00:00
Victor Stinner ffbc2f63e1 Merged revisions 78872 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r78872 | victor.stinner | 2010-03-12 15:45:56 +0100 (ven., 12 mars 2010) | 12 lines

  Merged revisions 78826 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78826 | victor.stinner | 2010-03-10 23:30:19 +0100 (mer., 10 mars 2010) | 5 lines

    Issue #3137: Don't ignore errors at startup, especially a keyboard interrupt
    (SIGINT). If an error occurs while importing the site module, the error is
    printed and Python exits. Initialize the GIL before importing the site
    module.
  ........
................
2010-03-21 21:48:45 +00:00
Victor Stinner 52f6dd7a3d Merged revisions 78826 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78826 | victor.stinner | 2010-03-10 23:30:19 +0100 (mer., 10 mars 2010) | 5 lines

  Issue #3137: Don't ignore errors at startup, especially a keyboard interrupt
  (SIGINT). If an error occurs while importing the site module, the error is
  printed and Python exits. Initialize the GIL before importing the site
  module.
........
2010-03-12 14:45:56 +00:00
Antoine Pitrou cefb316e9e Merged revisions 75571,75576-75577 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r75571 | antoine.pitrou | 2009-10-20 23:52:47 +0200 (mar., 20 oct. 2009) | 11 lines

  Merged revisions 75570 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75570 | antoine.pitrou | 2009-10-20 23:29:37 +0200 (mar., 20 oct. 2009) | 6 lines

    Issue #1722344: threading._shutdown() is now called in Py_Finalize(), which
    fixes the problem of some exceptions being thrown at shutdown when the
    interpreter is killed. Patch by Adam Olsen.
  ........
................
  r75576 | antoine.pitrou | 2009-10-21 00:02:29 +0200 (mer., 21 oct. 2009) | 10 lines

  Merged revisions 75574 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75574 | antoine.pitrou | 2009-10-20 23:59:25 +0200 (mar., 20 oct. 2009) | 4 lines

    Test wouldn't work in debug mode.
    We probably need a function in test_support to handle this.
  ........
................
  r75577 | antoine.pitrou | 2009-10-21 00:05:38 +0200 (mer., 21 oct. 2009) | 3 lines

  Another futile error in the previous commit :-(
................
2009-10-20 22:08:36 +00:00
Antoine Pitrou 011bd62c8c Merged revisions 75570 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75570 | antoine.pitrou | 2009-10-20 23:29:37 +0200 (mar., 20 oct. 2009) | 6 lines

  Issue #1722344: threading._shutdown() is now called in Py_Finalize(), which
  fixes the problem of some exceptions being thrown at shutdown when the
  interpreter is killed. Patch by Adam Olsen.
........
2009-10-20 21:52:47 +00:00
Georg Brandl c3c6fed6fe Merged revisions 74010,74034,74054 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k

................
  r74010 | r.david.murray | 2009-07-15 16:16:54 +0200 (Mi, 15 Jul 2009) | 2 lines

  PEP-8-ify r73389.
................
  r74034 | alexandre.vassalotti | 2009-07-17 07:35:59 +0200 (Fr, 17 Jul 2009) | 2 lines

  The output() function takes only one string argument.
................
  r74054 | alexandre.vassalotti | 2009-07-17 10:31:44 +0200 (Fr, 17 Jul 2009) | 14 lines

  Merged revisions 74051-74052 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74051 | alexandre.vassalotti | 2009-07-17 03:54:23 -0400 (Fri, 17 Jul 2009) | 2 lines

    Initialize variables in PyCurses_getsyx() to avoid compiler warnings.
  ........
    r74052 | alexandre.vassalotti | 2009-07-17 04:09:04 -0400 (Fri, 17 Jul 2009) | 3 lines

    Fix GCC warning about fprintf used without a string literal and
    without format arguments.
  ........
................
2009-08-13 09:15:16 +00:00
Alexandre Vassalotti cf7128ccbc Merged revisions 74051-74052 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74051 | alexandre.vassalotti | 2009-07-17 03:54:23 -0400 (Fri, 17 Jul 2009) | 2 lines

  Initialize variables in PyCurses_getsyx() to avoid compiler warnings.
........
  r74052 | alexandre.vassalotti | 2009-07-17 04:09:04 -0400 (Fri, 17 Jul 2009) | 3 lines

  Fix GCC warning about fprintf used without a string literal and
  without format arguments.
........
2009-07-17 08:31:44 +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
Antoine Pitrou 0560843b8f Issue #4705: Fix the -u ("unbuffered binary stdout and stderr") command-line
flag to work properly. Furthermore, when specifying -u, the text stdout
and stderr streams have line-by-line buffering enabled (the default being
to buffer arbitrary chunks of data). Patch by Victor Stinner, test by me.
2009-01-09 18:53:14 +00:00
Amaury Forgeot d'Arc 374e220bcb #4747: on Windows, starting a module with a non-ascii filename would print a useless "SyntaxError: None"
when the script contains a "# coding:" declaration.

The Python API expects char* to be utf-8 encoded. wcstombs should be avoided here.

Reviewed by Benjamin. Will backport to 3.0
2009-01-01 23:05:36 +00:00