diff options
Diffstat (limited to 'Modules/cjkcodecs/multibytecodec.c')
| -rw-r--r-- | Modules/cjkcodecs/multibytecodec.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index af7ea5b83a..7b04f020c9 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -479,7 +479,7 @@ multibytecodec_encode(MultibyteCodec *codec,      MultibyteEncodeBuffer buf;      Py_ssize_t finalsize, r = 0; -    if (datalen == 0) +    if (datalen == 0 && !(flags & MBENC_RESET))          return PyBytes_FromStringAndSize(NULL, 0);      buf.excobj = NULL; @@ -514,7 +514,7 @@ multibytecodec_encode(MultibyteCodec *codec,              break;      } -    if (codec->encreset != NULL) +    if (codec->encreset != NULL && (flags & MBENC_RESET))          for (;;) {              Py_ssize_t outleft; @@ -784,8 +784,8 @@ encoder_encode_stateful(MultibyteStatefulEncoderContext *ctx,      inbuf_end = inbuf + datalen;      r = multibytecodec_encode(ctx->codec, &ctx->state, -                    (const Py_UNICODE **)&inbuf, -                    datalen, ctx->errors, final ? MBENC_FLUSH : 0); +                    (const Py_UNICODE **)&inbuf, datalen, +                    ctx->errors, final ? MBENC_FLUSH | MBENC_RESET : 0);      if (r == NULL) {          /* recover the original pending buffer */          if (origpending > 0)  | 
