246 Commits

Author SHA1 Message Date
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
Mark Dickinson
e94c679df0 Issue #1717: rename tp_compare to tp_reserved. I'll change the
type of tp_compare in a separate commit, for ease of reversion
should things go wrong.
2009-02-02 20:36:42 +00:00
Martin v. Löwis
ff649b41e8 Make stdprinter_write static. 2008-06-13 07:24:48 +00:00
Christian Heimes
72b710a596 Renamed PyString to PyBytes 2008-05-26 13:28:38 +00:00
Guido van Rossum
e7fc50f2d0 Add an errors parameter to open() and TextIOWrapper() to specify error handling. 2007-12-03 22:54:21 +00:00
Christian Heimes
217cfd1c86 Cleanup: Replaced most PyInt_ aliases with PyLong_ and disabled the aliases in intobject.h 2007-12-02 14:31:20 +00:00
Christian Heimes
58cb1b8b0e Fix for #1415 pythonw.exe fails because std streams a missing
After a long discussion about the problem with Windows GUI apps Guido decided that sys.stdin, stdout and stderr should be None when the C runtime library returns invalid file descriptors for the standard streams.

So far the only known cases are Windows GUI apps and scripts started with pythonw on Windows. The OS restrictions are tight enough to catch the problem on other OSes.
2007-11-13 02:19:40 +00:00
Christian Heimes
1607278c26 Let's do as Guido says and return None instead of -1 2007-11-12 17:02:51 +00:00
Christian Heimes
af935e3bc4 Stop Python code from instantiating a new stdprinter with sys.stderr.__class__()
Added some more methods and attributes to stdprinter to ease up debugging #1415 on Windows. It also makes the object more file like. Now it can be used as a working replacement for an io instance.
2007-11-12 16:05:45 +00:00
Christian Heimes
e018b305f6 Bug #1415
On Windows fileno(stdout) and fileno(stderr) can return an invalid file descriptor number (-2 on my machine). It happens only for pythonw.exe but not for python.exe.

Catch the problem ASAP in PyFile_NewStdPrinter(). I've also removed the call to PyErr_BadInternalCall(). It was causing a seg fault because the exceptions aren't available yet.
2007-11-10 00:30:14 +00:00
Guido van Rossum
98297ee781 Merging the py3k-pep3137 branch back into the py3k branch.
No detailed change log; just check out the change log for the py3k-pep3137
branch.  The most obvious changes:

  - str8 renamed to bytes (PyString at the C level);
  - bytes renamed to buffer (PyBytes at the C level);
  - PyString and PyUnicode are no longer compatible.

I.e. we now have an immutable bytes type and a mutable bytes type.

The behavior of PyString was modified quite a bit, to make it more
bytes-like.  Some changes are still on the to-do list.
2007-11-06 21:34:58 +00:00
Guido van Rossum
c6ecfcd876 Minor correction to the stdprinter object. 2007-10-30 18:36:44 +00:00
Guido van Rossum
826d8973ac Patch 1352 (continued in issue 1329) by Christian Heimes.
Before sys.stderr is set to the proper thing, set it to a really simple
file-like object that can print tracebacks using direct file descriptor I/O.
This is handy for debugging.
2007-10-30 18:34:07 +00:00
Guido van Rossum
2dced8b602 Patch 1329 (partial) by Christian Heimes.
Add a closefd flag to open() which can be set to False to prevent closing
the file descriptor when close() is called or when the object is destroyed.
Useful to ensure that sys.std{in,out,err} keep their file descriptors open
when Python is uninitialized.  (This was always a feature in 2.x, it just
wasn't implemented in 3.0 yet.)
2007-10-30 17:27:30 +00:00
Georg Brandl
b6538a86ba Remove redundant PyInt/PyLong checks. 2007-10-23 18:25:20 +00:00
Guido van Rossum
40d20bcf1f Issue 1267, continued.
Additional patch by Christian Heimes to deal more cleanly with the
FILE* vs file-descriptor issues.
I cleaned up his code a bit, and moved the lseek() call into import.c.
2007-10-22 00:09:51 +00:00
Guido van Rossum
ce3a72aec6 Patch 1267 by Christian Heimes.
Move the initialization of sys.std{in,out,err} and __builtin__.open
to C code.
This solves the problem that "python -S" wouldn't work.
2007-10-19 23:16:50 +00:00
Guido van Rossum
e518bf3c49 PyFile_WriteObject() should use PyObject_Repr(), not _ReprStr8(). 2007-10-09 21:55:58 +00:00
Neal Norwitz
016880229a Kill execfile(), use exec() instead 2007-08-12 00:43:29 +00:00
Guido van Rossum
11019804f6 In PyFile_WriteString(), call PyUnicode_FromString() instead of
PyString_FromString().  This is arguably more correct, even if it
shouldn't matter much (all the input is likely to be ASCII).
2007-08-09 22:58:05 +00:00
Guido van Rossum
55b4a7b6dc Make test_descr.py pass. Had to disable a few tests, remove references
to 'file', and fix a bunch of subtleties in the behavior of objects
related to overriding __str__.  Also disabled a few tests that I couldn't
see how to fix but that seemed to be checking silly stuff only.
2007-07-11 09:28:11 +00:00
Guido van Rossum
da5b8f2d28 Rip out the file object's implementation.
Fixed test_import.py while I was at it.

However, there's still a problem in import.c -- get_file() can leak a
FILE struct (not a file descriptor though).  I'm not sure how to fix
this; closing the FILE* closes the file descriptor, and that's the
wrong thing to do when there's still a Python file object keeping the
file descriptor open.  I also would rather not mess with dup(), as it
won't port to Windows.
2007-06-12 23:30:11 +00:00
Guido van Rossum
5397039504 Minimal changes to make the "freeze" tool work again.
There are other issues left, but these were basics (e.g. keys().sort()).
2007-06-12 00:28:30 +00:00
Guido van Rossum
6f376c4031 Enable new I/O. Disable creation of old files.
Lots of stuff fails now, including -S and -m command line flags.
2007-05-24 14:31:33 +00:00
Walter Dörwald
1ab8330827 Add functions PyUnicode_Append() and PyUnicode_AppendAndDel() that mirror
PyString_Concat() and PyString_ConcatAndDel() (the name PyUnicode_Concat()
was already taken).

Change PyObject_Repr() to always return a unicode object.

Update all repr implementations to return unicode objects.

Add a function PyObject_ReprStr8() that calls PyObject_Repr() and converts
the result to an 8bit string.

Use PyObject_ReprStr8() where using PyObject_Repr() can't be done
straightforward.
2007-05-18 17:15:44 +00:00