Commit Graph

924 Commits

Author SHA1 Message Date
Guido van Rossum
2efa369861 Use modern PyArg_ParseTuple style, with function names. 2000-03-31 00:37:41 +00:00
Jeremy Hylton
074c3e62d1 Two fixes for extended call syntax:
If a non-tuple sequence is passed as the *arg, convert it to a tuple
before checking its length.
If named keyword arguments are used in combination with **kwargs, make
a copy of kwargs before inserting the new keys.
2000-03-30 23:55:31 +00:00
Barry Warsaw
b2ba9d8963 eval_code2(): Oops, in the last checkin, we shouldn't check for
PyErr_Occurred(), just set x=NULL and break.  Oh, and make Jeremy stop
nagging me about the "special" indentation for this block.
2000-03-29 18:36:49 +00:00
Barry Warsaw
4961ef7086 eval_code2(): In the extended calling syntax opcodes, you must check
the return value of PySequence_Length().  If an exception occurred,
the returned length will be -1.  Make sure this doesn't get obscurred,
and that the bogus length isn't used.
2000-03-29 18:30:03 +00:00
Jeremy Hylton
e4fb958fc2 remove reference (vestigal) to CALL_FUNCTION_STAR 2000-03-29 00:10:44 +00:00
Jeremy Hylton
7690151c7e slightly modified version of Greg Ewing's extended call syntax patch
executive summary:
Instead of typing 'apply(f, args, kwargs)' you can type 'f(*arg, **kwargs)'.
Some file-by-file details follow.

Grammar/Grammar:
    simplify varargslist, replacing '*' '*' with '**'
    add * & ** options to arglist

Include/opcode.h & Lib/dis.py:
    define three new opcodes
        CALL_FUNCTION_VAR
        CALL_FUNCTION_KW
        CALL_FUNCTION_VAR_KW

Python/ceval.c:
    extend TypeError "keyword parameter redefined" message to include
        the name of the offending keyword
    reindent CALL_FUNCTION using four spaces
    add handling of sequences and dictionaries using extend calls
    fix function import_from to use PyErr_Format
2000-03-28 23:49:17 +00:00
Guido van Rossum
24bdb0474f Marc-Andre Lemburg:
The attached patch set includes a workaround to get Python with
Unicode compile on BSDI 4.x (courtesy Thomas Wouters; the cause
is a bug in the BSDI wchar.h header file) and Python interfaces
for the MBCS codec donated by Mark Hammond.

Also included are some minor corrections w/r to the docs of
the new "es" and "es#" parser markers (use PyMem_Free() instead
of free(); thanks to Mark Hammond for finding these).

The unicodedata tests are now in a separate file
(test_unicodedata.py) to avoid problems if the module cannot
be found.
2000-03-28 20:29:59 +00:00
Guido van Rossum
50fbb15b16 Typo fixed by Mark Hammond. 2000-03-28 02:00:29 +00:00
Guido van Rossum
d8855fde88 Marc-Andre Lemburg:
Attached you find the latest update of the Unicode implementation.
The patch is against the current CVS version.

It includes the fix I posted yesterday for the core dump problem
in codecs.c (was introduced by my previous patch set -- sorry),
adds more tests for the codecs and two new parser markers
"es" and "es#".
2000-03-24 22:14:19 +00:00
Guido van Rossum
5ba3c843db Marc-Andre Lemburg:
Andy Robinson noted a core dump in the codecs.c file. This
was introduced by my latest patch which fixed a memory leak
in codecs.c. The bug causes all successful codec lookups to fail.
2000-03-24 20:52:23 +00:00
Barry Warsaw
51ac58039f On 17-Mar-2000, Marc-Andre Lemburg said:
Attached you find an update of the Unicode implementation.

    The patch is against the current CVS version. I would appreciate
    if someone with CVS checkin permissions could check the changes
    in.

    The patch contains all bugs and patches sent this week and also
    fixes a leak in the codecs code and a bug in the free list code
    for Unicode objects (which only shows up when compiling Python
    with Py_DEBUG; thanks to MarkH for spotting this one).
2000-03-20 16:36:48 +00:00
Guido van Rossum
d724b23420 Christian Tismer's "trashcan" patch:
Added wrapping macros to dictobject.c, listobject.c, tupleobject.c,
frameobject.c, traceback.c that safely prevends core dumps
on stack overflow. Macros and functions in object.c, object.h.
The method is an "elevator destructor" that turns cascading
deletes into tail recursive behavior when some limit is hit.
2000-03-13 16:01:29 +00:00
Guido van Rossum
2d0f5f932a Marc-Andre Lemburg: add new unicode files 2000-03-10 23:04:14 +00:00
Guido van Rossum
c94044c11d Marc-Andre Lemburg: add calls to initialize and finalize Unicode and
Codec registry.
2000-03-10 23:03:54 +00:00
Guido van Rossum
c279b53b4f Marc-Andre Lemburg: support marshalling Unicode objects (code 'u'). 2000-03-10 23:03:02 +00:00
Guido van Rossum
e826ef0a89 Marc-Andre Lemburg: support for Unicode strings; 'U' expects a Unicode
object.
2000-03-10 23:02:17 +00:00
Guido van Rossum
5aa88f097f Marc-Andre Lemburg: support for Unicode string literals (u"...", ur"..."). 2000-03-10 23:01:36 +00:00
Guido van Rossum
09095f3f61 Marc-Andre Lemburg: added new builtin functions unicode() and
unichr(); changed ord() to support Unicode strings; added new
exception UnicodeError; fixed a typo in doc string for buffer().
2000-03-10 23:00:52 +00:00
Guido van Rossum
feee4b994f Python Codec Registry and support functions, written by Marc-Andre
Lemburg.
2000-03-10 22:57:27 +00:00
Guido van Rossum
0b55670968 Mark discovered a bug in his patch: he didn't *use* PyExc_WindowsError
in PyErr_SetFromWindowsErrWithFilename() like he intended to... :-)
2000-03-02 13:55:01 +00:00
Guido van Rossum
43713e5a28 Massive patch by Skip Montanaro to add ":name" to as many
PyArg_ParseTuple() format string arguments as possible.
2000-02-29 13:59:29 +00:00
Andrew M. Kuchling
2194b165db Allow using long integers as slice indexes 2000-02-23 22:18:48 +00:00
Fred Drake
145c26e3d3 Remove comment that Guido agree's doesn't make sense:
PyEval_EvalCode() is *not* a "backward compatible interface", it's the
one to use!
2000-02-21 17:59:48 +00:00
Guido van Rossum
584b16a1f3 Mark pointed out a buglet in his patch: i < _sys_nerr isn't strong
enough, it could be negative.  Add i > 0 test.  (Not i >= 0; zero isn't
a valid error number.)
2000-02-21 16:50:31 +00:00
Guido van Rossum
795e189d28 Patch by Mark Hammond:
* Changes to a recent patch by Chris Tismer to errors.c.  Chris' patch
always used FormatMessage() to get the error message passing the error code
from errno - but errno and FormatMessage use a different numbering scheme.
The main reason the patch looked OK was that ENOFILE==ERROR_FILE_NOT_FOUND -
but that is about the only shared error code :-).  The MS CRT docs tell you
to use _sys_errlist()/_sys_nerr.  My patch does also this, and adds a very
similar function specifically for win32 error codes.
2000-02-17 15:19:15 +00:00