comparison src/coding.c @ 90809:3c52757d5f6e

(produce_chars): Don't call insert_from_gap if no characters to produce. (encode_coding): Likewise.
author Kenichi Handa <handa@m17n.org>
date Tue, 24 Apr 2007 08:13:48 +0000
parents b15334b4a9c3
children 988f1edc9674
comparison
equal deleted inserted replaced
90808:5021c896064c 90809:3c52757d5f6e
6077 coding->consumed = coding->src_bytes; 6077 coding->consumed = coding->src_bytes;
6078 coding->consumed_char = coding->src_chars; 6078 coding->consumed_char = coding->src_chars;
6079 } 6079 }
6080 6080
6081 produced = dst - (coding->destination + coding->produced); 6081 produced = dst - (coding->destination + coding->produced);
6082 if (BUFFERP (coding->dst_object)) 6082 if (BUFFERP (coding->dst_object) && produced_chars > 0)
6083 insert_from_gap (produced_chars, produced); 6083 insert_from_gap (produced_chars, produced);
6084 coding->produced += produced; 6084 coding->produced += produced;
6085 coding->produced_char += produced_chars; 6085 coding->produced_char += produced_chars;
6086 return carryover; 6086 return carryover;
6087 } 6087 }
6646 consume_chars (coding, translation_table, max_lookup); 6646 consume_chars (coding, translation_table, max_lookup);
6647 coding_set_destination (coding); 6647 coding_set_destination (coding);
6648 (*(coding->encoder)) (coding); 6648 (*(coding->encoder)) (coding);
6649 } while (coding->consumed_char < coding->src_chars); 6649 } while (coding->consumed_char < coding->src_chars);
6650 6650
6651 if (BUFFERP (coding->dst_object)) 6651 if (BUFFERP (coding->dst_object) && coding->produced_char > 0)
6652 insert_from_gap (coding->produced_char, coding->produced); 6652 insert_from_gap (coding->produced_char, coding->produced);
6653 6653
6654 return (coding->result); 6654 return (coding->result);
6655 } 6655 }
6656 6656