From 9b680226e4bd030041b7b0fa77b540821be982ea Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 8 Oct 2002 01:13:23 +0000 Subject: [PATCH] (code_convert_region): When we need more GAP for conversion, pay attention to the case that coding->produced is not greater than coding->consumed. --- src/coding.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/coding.c b/src/coding.c index 14d5542dd13..31ec3da01a3 100644 --- a/src/coding.c +++ b/src/coding.c @@ -5680,9 +5680,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)) -- 2.39.2