Commit Graph

3357 Commits

Author SHA1 Message Date
Ezio Melotti e57e50c8e7 Update PyUnicode_DecodeUTF8 from RFC 2279 to RFC 3629.
1) #8271: when a byte sequence is invalid, only the start byte and all the
   valid continuation bytes are now replaced by U+FFFD, instead of replacing
   the number of bytes specified by the start byte.
   See http://www.unicode.org/versions/Unicode5.2.0/ch03.pdf (pages 94-95);
2) 5- and 6-bytes-long UTF-8 sequences are now considered invalid (no changes
   in behavior);
3) Add code and tests to reject surrogates (U+D800-U+DFFF) as defined in
   RFC 3629, but leave it commented out since it's not backward compatible;
4) Change the error messages "unexpected code byte" to "invalid start byte"
   and "invalid data" to "invalid continuation byte";
5) Add an extensive set of tests in test_unicode;
6) Fix test_codeccallbacks because it was failing after this change.
2010-06-05 17:51:07 +00:00
Mark Dickinson 77acee9567 Fix comment typo. 2010-06-05 12:51:21 +00:00
Mark Dickinson e4b83e013b Issue #8627: Fix "XXX undetected error" from unchecked PyErr_WarnPy3k return.
This is just a quick fix:  if the warning is turned into an exception, the
exception simply gets ignored.
2010-06-05 12:14:43 +00:00
Mark Dickinson 23f0d6b57b Issue #8627: remove out-of-date warning about overriding __cmp__ 2010-06-05 11:52:24 +00:00
Benjamin Peterson d5adb5d73d _PyObject_LookupSpecial returns a new reference 2010-06-05 02:07:01 +00:00
Benjamin Peterson 67783b1f71 fix ref counting 2010-06-05 01:00:10 +00:00
Benjamin Peterson 039c585805 implement object.__format__ with PyObject_Format 2010-06-05 00:56:46 +00:00
Benjamin Peterson 3a2acb5040 remove PyType_Ready call; float should be initialized in interpreter startup 2010-06-05 00:38:22 +00:00
Benjamin Peterson 2aa6c38237 properly lookup the __format__ special method 2010-06-05 00:32:50 +00:00
Mark Dickinson 4ca7c3c089 Issue #8748: Fix incorrect results from comparisons between an integer
and a complex instance.  Based on a patch by Meador Inge.
2010-05-30 13:18:10 +00:00
Mark Dickinson 4b3035d0b8 Remove declaration for unused variable. 2010-05-30 12:17:11 +00:00
Mark Dickinson 813363743d Issue #5211: Complete removal of implicit coercions for the complex
type.  Coercion for arithmetic operations was already removed in
r78280, but that commit didn't remove coercion for rich comparisons.
2010-05-30 12:12:25 +00:00
Georg Brandl 54d2898ef8 #8635: document enumerate() start parameter in docstring. 2010-05-22 11:43:25 +00:00
Antoine Pitrou 83137c2e16 Issue #7079: Fix a possible crash when closing a file object while using
it from another thread.  Patch by Daniel Stutzbach.
2010-05-17 19:56:59 +00:00
Mark Dickinson 43ca377e45 Wrap multiline macros in a 'do {} while(0)', for safety. 2010-05-09 20:42:09 +00:00
Mark Dickinson fda8d114ea Post-detabification cleanup: whitespace fixes and long line rewraps only. 2010-05-09 20:30:29 +00:00
Antoine Pitrou c83ea137d7 Untabify C files. Will watch buildbots. 2010-05-09 14:46:46 +00:00
Mark Dickinson 22ff664ff7 Issue #8659: Remove redundant ABS calls. Thanks Daniel Stutzbach. 2010-05-08 08:01:19 +00:00
Brett Cannon a8ac944924 Add back in a line that was unneeded which advanced a pointer, but commented
out as it is currently unneeded.

This effectively adds back in the line removed in r80809 as a comment.
2010-05-06 17:56:36 +00:00
Brett Cannon 8a478ced55 Remove an unneeded assignment.
Found using Clang's static analyzer.
2010-05-05 20:19:26 +00:00
Brett Cannon fee3acb082 Remove an unneeded variable assignment.
Found using Clang's static analyzer.
2010-05-05 20:18:23 +00:00
Brett Cannon eb3fef59b9 Remove an unneeded variable.
Found using Clang's static analyzer.
2010-05-05 20:16:50 +00:00
Brett Cannon 6f38175cbc Remove an unneeded variable increment.
Found using Clang's static analyzer.
2010-05-05 20:16:09 +00:00
Alexandre Vassalotti 268e4872d3 Issue #8404: Fix set operations on dictionary views. 2010-05-04 03:21:51 +00:00
Brett Cannon 0d8a859a85 Pull a NULL pointer check up to cover more cases in the function.
Found using Clang's static analyzer.
2010-05-04 01:23:36 +00:00
Brett Cannon a7f13ee3f5 Remove an unneeded variable and assignment.
Found using Clang's static analyzer.
2010-05-04 01:16:51 +00:00
Mark Dickinson 328284adcf Improve error message from nb_int returning a non-integer, in various PyInt_As* functions: 2010-05-02 09:38:43 +00:00
Raymond Hettinger 35b76027f9 Issue 8436: set.__init__ accepts keyword args 2010-04-18 22:57:57 +00:00
Benjamin Peterson ae530c2bab tiny simplification 2010-04-16 22:52:44 +00:00
Benjamin Peterson 821a8ea39f have a clear error when passing something > sys.maxsize to bytearray 2010-04-16 22:35:38 +00:00
Stefan Krah ef7590e943 Issue #8328: Silence Visual Studio warnings. 2010-04-07 08:24:44 +00:00
Mark Dickinson ea7e5510aa Silence a 'comparison between signed and unsigned integer expressions' gcc warning. 2010-04-06 18:58:54 +00:00
Mark Dickinson 3ec9b942b5 Issue #8259: Get rid of 'outrageous left shift count' error when
left-shifting an integer by more than 2**31 on a 64-bit machine.  Also
convert shift counts to a Py_ssize_t instead of a C long.
2010-04-06 16:46:09 +00:00
Mark Dickinson 56506a6ed2 Use a better NaN test in _Py_HashDouble as well. 2010-04-05 18:54:51 +00:00
Mark Dickinson 5e0c2748fb Use a more robust infinity check in _Py_HashDouble.
This fixes a test_decimal failure on FreeBSD 8.0.  (modf apparently
doesn't follow C99 Annex F on FreeBSD.)
2010-04-05 18:07:51 +00:00
Raymond Hettinger 30583e3f38 Silence a compiler warning. 2010-04-03 17:10:05 +00:00
Benjamin Peterson bea424af98 more _PyString_Resize error checking 2010-04-03 00:57:33 +00:00
Benjamin Peterson 6caf7ff505 always check _PyString_Resize for error
also normalize how this error is checked
2010-04-02 23:59:41 +00:00
Eric Smith d44b2fc87c Issue 7994: Make object.__format__ with a non-empty format string a PendingDecprecationWarning. Still need to remove uses of this from various tests. 2010-04-02 12:30:56 +00:00
Larry Hastings 5ac006dfd3 Capsule-related changes:
* PyCObject_AsVoidPtr() can now open capsules.  This addresses
  most of the remaining backwards-compatibility concerns about
  the conversion of Python 2.7 from CObjects to capsules.
* CObjects were marked Pending Deprecation.
* Documentation about this pending deprecation was added to
  cobject.h.
* The capsule source files were added to the legacy PC build
  processes.
2010-04-02 11:01:35 +00:00
Antoine Pitrou a57df2cf1d Issue #8268: Old-style classes (not just instances) now support weak
references.
2010-03-31 21:32:15 +00:00
Florent Xicluna 22b243809e #7643: Unicode codepoints VT (0x0B) and FF (0x0C) are linebreaks according to Unicode Standard Annex #14. 2010-03-30 08:24:06 +00:00
Larry Hastings 402b73fb8d Backported PyCapsule from 3.1, and converted most uses of
CObject to PyCapsule.
2010-03-25 00:54:54 +00:00
Victor Stinner 95affc4449 Issue #1583863: An unicode subclass can now override the __str__ method 2010-03-22 12:24:37 +00:00
Collin Winter 001a3952c9 Add support for weak references to code objects. This will be used by an optimization in the incoming Python 3 JIT.
Patch by Reid Kleckner!
2010-03-18 21:54:01 +00:00
Florent Xicluna 2e0a53fdf6 Issue #8024: Update the Unicode database to 5.2 2010-03-18 21:50:06 +00:00
Victor Stinner 17d905449d Issue #7818: set().test_c_api() doesn't expect a set('abc'), modify the set. 2010-03-13 00:13:22 +00:00
Ezio Melotti fb501123e3 #8030: more docstring fix for builtin types. 2010-02-28 23:59:00 +00:00
Georg Brandl b36e63a5ee The set types can also be called without arguments. 2010-02-28 18:26:37 +00:00
Georg Brandl bca1169e94 #8030: make builtin type docstrings more consistent: use "iterable" instead of "seq(uence)", use "new" to show that set() always returns a new object. 2010-02-28 18:19:17 +00:00
Ezio Melotti 321251567e #7649: "u'%c' % char" now behaves like "u'%s' % char" and raises a UnicodeDecodeError if 'char' is a byte string that can't be decoded using the default encoding. 2010-02-25 17:36:04 +00:00
Eric Smith 2d9856d6ce Issue #7309: Unchecked pointer access when converting UnicodeEncodeError, UnicodeDecodeError, and UnicodeTranslateError to strings. 2010-02-24 14:15:36 +00:00
Victor Stinner f20f9c299e Issue #7649: Fix u'%c' % char for character in range 0x80..0xFF
=> raise an UnicodeDecodeError. Patch written by Ezio Melotti.
2010-02-23 23:16:07 +00:00
Eric Smith 87bcb243ac Issue #6902: Fix problem with built-in types format incorrectly with 0 padding. 2010-02-23 00:11:16 +00:00
Andrew M. Kuchling 00b6a5c03d #7706: DONT_HAVE_ERRNO_H is no longer defined by configure (after rev.46819). 2010-02-22 23:10:52 +00:00
Eric Smith f32d4acead Issue #7988: Fix default alignment to be right aligned for complex.__format__. Now it matches other numeric types. 2010-02-22 18:33:47 +00:00
Ezio Melotti bce3e17bd2 #7482: clarify error message in case of division by zero of float and complex numbers. 2010-02-22 16:30:58 +00:00
Mark Dickinson 82b34c5dbe Issue #5211: Fix complex type to avoid implicit calls to
complex.__coerce__.  Thanks Meador Inge for the patch.
2010-02-21 12:57:35 +00:00
Mark Dickinson 2d7911eda4 Silence more compiler warnings; fix an instance of potential undefined behaviour from signed overflow. 2010-02-14 12:31:26 +00:00
Mark Dickinson ac5685eb67 Silence some 'comparison between signed and unsigned' compiler warnings. 2010-02-14 12:16:43 +00:00
Antoine Pitrou bb445a1f22 Issue #5677: Explicitly forbid write operations on read-only file objects,
and read operations on write-only file objects.  On Windows, the system C
library would return a bogus result; on Solaris, it was possible to crash
the interpreter.  Patch by Stefan Krah.
2010-02-05 17:05:54 +00:00
Antoine Pitrou 526e421b12 Issue #7385: Fix a crash in `MemoryView_FromObject` when
`PyObject_GetBuffer` fails.  Patch by Florent Xicluna.
2010-02-02 22:36:17 +00:00
Mark Dickinson a36507c64c Issue #7767: Add new C-API function PyLong_AsLongLongAndOverflow, a
long long variant of PyLong_AsLongAndOverflow.  Patch by Case Van
Horsen.
2010-01-30 10:08:33 +00:00
Mark Dickinson 36ecd676ea Issue #7788: Fix a crash produced by deleting a list slice with huge
step value.  Patch by Marcin Bachry.
2010-01-29 17:11:39 +00:00
Ezio Melotti 1fafaab5e5 #7775: fixed docstring for rpartition 2010-01-25 11:24:37 +00:00
Antoine Pitrou e80a6a4ead Issue #7561: Operations on empty bytearrays (such as `int(bytearray())`)
could crash in many places because of the PyByteArray_AS_STRING() macro
returning NULL.  The macro now returns a statically allocated empty
string instead.
2010-01-17 12:26:20 +00:00
Georg Brandl aee900338e Add note about usage of STRINGLIB_EMPTY. 2010-01-17 12:14:42 +00:00
Ezio Melotti d234208588 Fixed typo 2010-01-14 11:34:10 +00:00
Antoine Pitrou 10042922d9 Sanitize bloom filter macros 2010-01-13 14:01:26 +00:00
Antoine Pitrou a913a20c91 Test commit to try to diagnose failures of the IA-64 buildbot 2010-01-13 13:43:37 +00:00
Antoine Pitrou 5c767c2f87 Fix Windows build (re r77461) 2010-01-13 08:55:20 +00:00
Antoine Pitrou 6467213bfd Issue #7622: Improve the split(), rsplit(), splitlines() and replace()
methods of bytes, bytearray and unicode objects by using a common
implementation based on stringlib's fast search.  Patch by Florent Xicluna.
2010-01-13 07:55:48 +00:00
Alexandre Vassalotti 58a96efde5 Fixed repr of dictionary views. 2010-01-12 01:34:43 +00:00
Alexandre Vassalotti 69eb51697c Issue #1967: Backport dictionary views. 2010-01-11 23:17:10 +00:00
Benjamin Peterson 3694366af5 factor out __complex__ lookup code to fix another case 2010-01-04 01:00:47 +00:00
Benjamin Peterson ecdae19fbe do correct lookup of the __complex__ method 2010-01-04 00:43:01 +00:00
Antoine Pitrou 5b7139aab4 Issue #7462: Implement the stringlib fast search algorithm for the `rfind`,
`rindex`, `rsplit` and `rpartition` methods.  Patch by Florent Xicluna.
2010-01-02 21:12:58 +00:00
Mark Dickinson d3e323215c Refactor some longobject internals: PyLong_AsDouble and _PyLong_AsScaledDouble
(the latter renamed to _PyLong_Frexp) now use the same core code.  The
exponent produced by _PyLong_Frexp now has type Py_ssize_t instead of the
previously used int, and no longer needs scaling by PyLong_SHIFT.  This
frees the math module from having to know anything about the PyLong
implementation.  This closes issue #5576.
2010-01-02 14:45:40 +00:00
Mark Dickinson 99d652ef66 Issue #7534: Fix handling of nans, infinities, and negative zero in **
operator, on IEEE 754 platforms.  Thanks Marcos Donolo for original patch.
2009-12-30 12:12:23 +00:00
Mark Dickinson 4657283647 Issue #1811: Improve accuracy and consistency of true division for integers. 2009-12-27 14:55:57 +00:00
Ezio Melotti f84caf4eda #6108: unicode(exception) and str(exception) should return the same message 2009-12-24 22:25:17 +00:00
Mark Dickinson e31d300664 Issue #7528: Backport PyLong_AsLongAndOverflow from py3k to trunk.
Thanks Case Van Horsen for the patch.
2009-12-21 11:21:25 +00:00
Benjamin Peterson 0c0dcaf272 remove type_compare, since type_richcompare does the same trick 2009-12-16 03:36:22 +00:00
R. David Murray 0a0a1a842c Issue #1680159: unicode coercion during an 'in' operation was masking
any errors that might occur during coercion of the left operand and
turning them into a TypeError with a message text that was confusing in
the given context.  This patch lets any errors through, as was already
done during coercion of the right hand side.
2009-12-14 16:28:26 +00:00
Benjamin Peterson 4895af4ef1 fix the ignoring of __cmp__ method on metaclasses #7491 2009-12-13 16:36:53 +00:00
Antoine Pitrou c169c781a8 Issue #7466: segmentation fault when the garbage collector is called
in the middle of populating a tuple.  Patch by Florent Xicluna.

(note: no NEWS entry for trunk since the bug was introduced in 2.7/3.1)
2009-12-12 19:13:08 +00:00
Benjamin Peterson 5fb877027b substitute PyDict_Check() for PyObject_IsInstance 2009-12-10 03:37:59 +00:00
Mark Dickinson 1691025ff2 Avoid undefined behaviour due to overflow in i_divmod (Objects/intobject.c). 2009-12-04 11:24:38 +00:00
Benjamin Peterson 91c12ebc3d disable pymalloc tricks with the --with-valgrind option #2422
Patch from James Henstridge.
2009-12-03 02:52:39 +00:00
Mark Dickinson 34398184eb Issue #7406: Fix some occurrences of potential signed overflow in int
arithmetic.
2009-12-02 17:33:41 +00:00
Eric Smith c4ab8339e9 Issue #3382: Make '%F' and float.__format__('F') convert results to upper case. Much of the patch came from Mark Dickinson. 2009-11-29 17:40:57 +00:00
Mark Dickinson 31f0cfef0e Include ieeefp.h (when available) in pyport.h instead of individually in
Objects/floatobject.c and Objects/complexobject.c.  This should silence
compiler warnings about implicit declaration of the 'finite' function
on Solaris.
2009-11-28 12:30:36 +00:00
Mark Dickinson 9dd5e16c5d Issue #7117, continued: Remove substitution of %g-style formatting for
%f-style formatting, which used to occur at high precision.  Float formatting
should now be consistent between 2.7 and 3.1.
2009-11-23 20:54:09 +00:00
Mark Dickinson 18cfada1ea Remove restriction on precision when formatting floats. This is the
first step towards removing the %f -> %g switch (see issues 7117,
5859).
2009-11-23 18:46:41 +00:00
Benjamin Peterson dc3c239b1e #5037 proxy __unicode__ correctly 2009-11-19 03:00:02 +00:00
Raymond Hettinger 79628d311f Issue 7263: Fix set.intersection() docstring. 2009-11-18 20:28:22 +00:00
Mark Dickinson bd15a06fd3 Issue #7117, continued: Change round implementation to use the correctly-rounded
string <-> float conversions;  this makes sure that the result of the round
operation is correctly rounded, and hence displays nicely using the new float
repr.
2009-11-18 19:33:35 +00:00
Mark Dickinson 3d6790e49f Silence another MSVC warning about unary minus. 2009-11-16 19:17:16 +00:00
Mark Dickinson b2c3ca1e38 Silence MSVC warning about unary minus applied to unsigned type. 2009-11-16 17:33:25 +00:00
Mark Dickinson 82864d1ab1 Issue #7228: Add '%lld' and '%llu' support to PyFormat_FromString,
PyFormat_FromStringV and PyErr_Format.
2009-11-15 16:18:58 +00:00