Mercurial > emacs
comparison src/coding.c @ 30847:91e24edb537a
(encode_coding): Fix the bug of not flushing ISO escape sequence at
the end of the source block.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 16 Aug 2000 11:19:34 +0000 |
parents | 2db6e42a6ba3 |
children | 5682de5cfdac |
comparison
equal
deleted
inserted
replaced
30846:d83ff3be716a | 30847:91e24edb537a |
---|---|
4184 { | 4184 { |
4185 unsigned char *src = source + coding->consumed; | 4185 unsigned char *src = source + coding->consumed; |
4186 unsigned char *dst = destination + coding->produced; | 4186 unsigned char *dst = destination + coding->produced; |
4187 | 4187 |
4188 src_bytes -= coding->consumed; | 4188 src_bytes -= coding->consumed; |
4189 coding->errors++; | 4189 coding->errors++; |
4190 if (COMPOSING_P (coding)) | 4190 if (COMPOSING_P (coding)) |
4191 DECODE_COMPOSITION_END ('1'); | 4191 DECODE_COMPOSITION_END ('1'); |
4192 while (src_bytes--) | 4192 while (src_bytes--) |
4193 { | 4193 { |
4194 int c = *src++; | 4194 int c = *src++; |
4253 | 4253 |
4254 default: | 4254 default: |
4255 encode_eol (coding, source, destination, src_bytes, dst_bytes); | 4255 encode_eol (coding, source, destination, src_bytes, dst_bytes); |
4256 } | 4256 } |
4257 | 4257 |
4258 if (coding->result == CODING_FINISH_INSUFFICIENT_SRC | |
4259 && coding->consumed == src_bytes) | |
4260 coding->result = CODING_FINISH_NORMAL; | |
4261 | |
4262 if (coding->mode & CODING_MODE_LAST_BLOCK | 4258 if (coding->mode & CODING_MODE_LAST_BLOCK |
4263 && coding->result == CODING_FINISH_INSUFFICIENT_SRC) | 4259 && coding->result == CODING_FINISH_INSUFFICIENT_SRC) |
4264 { | 4260 { |
4265 unsigned char *src = source + coding->consumed; | 4261 unsigned char *src = source + coding->consumed; |
4266 unsigned char *src_end = src + src_bytes; | 4262 unsigned char *src_end = src + src_bytes; |
4281 coding->consumed = src_bytes; | 4277 coding->consumed = src_bytes; |
4282 } | 4278 } |
4283 coding->produced = coding->produced_char = dst - destination; | 4279 coding->produced = coding->produced_char = dst - destination; |
4284 coding->result = CODING_FINISH_NORMAL; | 4280 coding->result = CODING_FINISH_NORMAL; |
4285 } | 4281 } |
4282 | |
4283 if (coding->result == CODING_FINISH_INSUFFICIENT_SRC | |
4284 && coding->consumed == src_bytes) | |
4285 coding->result = CODING_FINISH_NORMAL; | |
4286 | 4286 |
4287 return coding->result; | 4287 return coding->result; |
4288 } | 4288 } |
4289 | 4289 |
4290 /* Scan text in the region between *BEG and *END (byte positions), | 4290 /* Scan text in the region between *BEG and *END (byte positions), |