mirror of
https://github.com/python/cpython.git
synced 2025-08-29 05:05:03 +00:00
Merge part of the trunk changes into the p3yk branch. This merges from 43030
(branch-creation time) up to 43067. 43068 and 43069 contain a little swapping action between re.py and sre.py, and this mightily confuses svn merge, so later changes are going in separately. This merge should break no additional tests. The last-merged revision is going in a 'last_merge' property on '.' (the branch directory.) Arbitrarily chosen, really; if there's a BCP for this, I couldn't find it, but we can easily change it afterwards ;)
This commit is contained in:
parent
d858f70617
commit
a977329b6f
116 changed files with 3409 additions and 709 deletions
|
@ -260,6 +260,56 @@ PyObject *PyCodec_Decoder(const char *encoding)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
PyObject *PyCodec_IncrementalEncoder(const char *encoding,
|
||||
const char *errors)
|
||||
{
|
||||
PyObject *codecs, *ret, *encoder;
|
||||
|
||||
codecs = _PyCodec_Lookup(encoding);
|
||||
if (codecs == NULL)
|
||||
goto onError;
|
||||
encoder = PyObject_GetAttrString(codecs, "incrementalencoder");
|
||||
if (encoder == NULL) {
|
||||
Py_DECREF(codecs);
|
||||
return NULL;
|
||||
}
|
||||
if (errors)
|
||||
ret = PyObject_CallFunction(encoder, "O", errors);
|
||||
else
|
||||
ret = PyObject_CallFunction(encoder, NULL);
|
||||
Py_DECREF(encoder);
|
||||
Py_DECREF(codecs);
|
||||
return ret;
|
||||
|
||||
onError:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PyObject *PyCodec_IncrementalDecoder(const char *encoding,
|
||||
const char *errors)
|
||||
{
|
||||
PyObject *codecs, *ret, *decoder;
|
||||
|
||||
codecs = _PyCodec_Lookup(encoding);
|
||||
if (codecs == NULL)
|
||||
goto onError;
|
||||
decoder = PyObject_GetAttrString(codecs, "incrementaldecoder");
|
||||
if (decoder == NULL) {
|
||||
Py_DECREF(codecs);
|
||||
return NULL;
|
||||
}
|
||||
if (errors)
|
||||
ret = PyObject_CallFunction(decoder, "O", errors);
|
||||
else
|
||||
ret = PyObject_CallFunction(decoder, NULL);
|
||||
Py_DECREF(decoder);
|
||||
Py_DECREF(codecs);
|
||||
return ret;
|
||||
|
||||
onError:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PyObject *PyCodec_StreamReader(const char *encoding,
|
||||
PyObject *stream,
|
||||
const char *errors)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue