(code_convert_region): When we need more GAP for

conversion, pay attention to the case that coding->produced is not
greater than coding->consumed.
This commit is contained in:
Kenichi Handa 2002-10-08 00:57:59 +00:00
parent 4d46d6da26
commit b3385c2865

View file

@ -5696,9 +5696,19 @@ code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace)
REQUIRE + LEN_BYTE = LEN_BYTE * (NEW / ORIG)
REQUIRE = LEN_BYTE * (NEW - ORIG) / ORIG
Here, we are sure that NEW >= ORIG. */
float ratio = coding->produced - coding->consumed;
ratio /= coding->consumed;
require = len_byte * ratio;
float ratio;
if (coding->produced <= coding->consumed)
{
/* This happens because of CCL-based coding system with
eol-type CRLF. */
require = 0;
}
else
{
ratio = (coding->produced - coding->consumed) / coding->consumed;
require = len_byte * ratio;
}
first = 0;
}
if ((src - dst) < (require + 2000))