diff options
| -rw-r--r-- | src/coding.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/coding.c b/src/coding.c index 20583a388d1..a8f84378e66 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -4671,6 +4671,12 @@ detect_coding_sjis (coding, detect_info) | |||
| 4671 | int consumed_chars = 0; | 4671 | int consumed_chars = 0; |
| 4672 | int found = 0; | 4672 | int found = 0; |
| 4673 | int c; | 4673 | int c; |
| 4674 | Lisp_Object attrs, charset_list; | ||
| 4675 | int max_first_byte_of_2_byte_code; | ||
| 4676 | |||
| 4677 | CODING_GET_INFO (coding, attrs, charset_list); | ||
| 4678 | max_first_byte_of_2_byte_code | ||
| 4679 | = (XINT (Flength (charset_list)) > 3 ? 0xFC : 0xEF); | ||
| 4674 | 4680 | ||
| 4675 | detect_info->checked |= CATEGORY_MASK_SJIS; | 4681 | detect_info->checked |= CATEGORY_MASK_SJIS; |
| 4676 | /* A coding system of this category is always ASCII compatible. */ | 4682 | /* A coding system of this category is always ASCII compatible. */ |
| @@ -4682,7 +4688,8 @@ detect_coding_sjis (coding, detect_info) | |||
| 4682 | ONE_MORE_BYTE (c); | 4688 | ONE_MORE_BYTE (c); |
| 4683 | if (c < 0x80) | 4689 | if (c < 0x80) |
| 4684 | continue; | 4690 | continue; |
| 4685 | if ((c >= 0x81 && c <= 0x9F) || (c >= 0xE0 && c <= 0xEF)) | 4691 | if ((c >= 0x81 && c <= 0x9F) |
| 4692 | || (c >= 0xE0 && c <= max_first_byte_of_2_byte_code)) | ||
| 4686 | { | 4693 | { |
| 4687 | ONE_MORE_BYTE (c); | 4694 | ONE_MORE_BYTE (c); |
| 4688 | if (c < 0x40 || c == 0x7F || c > 0xFC) | 4695 | if (c < 0x40 || c == 0x7F || c > 0xFC) |
| @@ -5055,7 +5062,8 @@ encode_coding_sjis (coding) | |||
| 5055 | int c1, c2; | 5062 | int c1, c2; |
| 5056 | 5063 | ||
| 5057 | c1 = code >> 8; | 5064 | c1 = code >> 8; |
| 5058 | if (c1 == 0x21 || (c1 >= 0x23 && c1 < 0x25) | 5065 | if (c1 == 0x21 || (c1 >= 0x23 && c1 <= 0x25) |
| 5066 | || c1 == 0x28 | ||
| 5059 | || (c1 >= 0x2C && c1 <= 0x2F) || c1 >= 0x6E) | 5067 | || (c1 >= 0x2C && c1 <= 0x2F) || c1 >= 0x6E) |
| 5060 | { | 5068 | { |
| 5061 | JIS_TO_SJIS2 (code); | 5069 | JIS_TO_SJIS2 (code); |