Mercurial > emacs
comparison src/coding.c @ 31455:0b33b8c5d16e
(encode_coding_sjis_big5): Use translation table for
encoding, not decoding. Check for the charset katakana-jisx0201,
not latin-jisx0201.
(ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
| author | Kenichi Handa <handa@m17n.org> |
|---|---|
| date | Thu, 07 Sep 2000 12:04:09 +0000 |
| parents | 097593e77185 |
| children | b1c66af9aba5 |
comparison
equal
deleted
inserted
replaced
| 31454:4dd84bbe2c6c | 31455:0b33b8c5d16e |
|---|---|
| 233 || UNIBYTE_STR_AS_MULTIBYTE_P (src, len, bytes)) \ | 233 || UNIBYTE_STR_AS_MULTIBYTE_P (src, len, bytes)) \ |
| 234 c = STRING_CHAR_AND_LENGTH (src, len, bytes); \ | 234 c = STRING_CHAR_AND_LENGTH (src, len, bytes); \ |
| 235 else \ | 235 else \ |
| 236 c = *src, bytes = 1; \ | 236 c = *src, bytes = 1; \ |
| 237 if (!NILP (translation_table)) \ | 237 if (!NILP (translation_table)) \ |
| 238 c = translate_char (translation_table, c, 0, 0, 0); \ | 238 c = translate_char (translation_table, c, -1, 0, 0); \ |
| 239 src += bytes; \ | 239 src += bytes; \ |
| 240 } while (0) | 240 } while (0) |
| 241 | 241 |
| 242 | 242 |
| 243 /* Produce a multibyte form of characater C to `dst'. Jump to | 243 /* Produce a multibyte form of characater C to `dst'. Jump to |
| 2547 | 2547 |
| 2548 if (NILP (Venable_character_translation)) | 2548 if (NILP (Venable_character_translation)) |
| 2549 translation_table = Qnil; | 2549 translation_table = Qnil; |
| 2550 else | 2550 else |
| 2551 { | 2551 { |
| 2552 translation_table = coding->translation_table_for_decode; | 2552 translation_table = coding->translation_table_for_encode; |
| 2553 if (NILP (translation_table)) | 2553 if (NILP (translation_table)) |
| 2554 translation_table = Vstandard_translation_table_for_decode; | 2554 translation_table = Vstandard_translation_table_for_encode; |
| 2555 } | 2555 } |
| 2556 | 2556 |
| 2557 while (1) | 2557 while (1) |
| 2558 { | 2558 { |
| 2559 int c, charset, c1, c2; | 2559 int c, charset, c1, c2; |
| 2594 || charset == charset_jisx0208_1978) | 2594 || charset == charset_jisx0208_1978) |
| 2595 { | 2595 { |
| 2596 ENCODE_SJIS (c1, c2, c1, c2); | 2596 ENCODE_SJIS (c1, c2, c1, c2); |
| 2597 EMIT_TWO_BYTES (c1, c2); | 2597 EMIT_TWO_BYTES (c1, c2); |
| 2598 } | 2598 } |
| 2599 else if (charset == charset_latin_jisx0201) | 2599 else if (charset == charset_katakana_jisx0201) |
| 2600 EMIT_ONE_BYTE (c1); | 2600 EMIT_ONE_BYTE (c1 | 0x80); |
| 2601 else | 2601 else |
| 2602 /* There's no way other than producing the internal | 2602 /* There's no way other than producing the internal |
| 2603 codes as is. */ | 2603 codes as is. */ |
| 2604 EMIT_BYTES (src_base, src); | 2604 EMIT_BYTES (src_base, src); |
| 2605 } | 2605 } |
