diff options
Diffstat (limited to 'src/coding.c')
| -rw-r--r-- | src/coding.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/coding.c b/src/coding.c index a9bf9032a69..93da9db0d36 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -3057,20 +3057,7 @@ detect_coding_iso_2022 (struct coding_system *coding, | |||
| 3057 | } | 3057 | } |
| 3058 | if (single_shifting) | 3058 | if (single_shifting) |
| 3059 | break; | 3059 | break; |
| 3060 | check_extra_latin: | 3060 | goto check_extra_latin; |
| 3061 | if (! VECTORP (Vlatin_extra_code_table) | ||
| 3062 | || NILP (AREF (Vlatin_extra_code_table, c))) | ||
| 3063 | { | ||
| 3064 | rejected = CATEGORY_MASK_ISO; | ||
| 3065 | break; | ||
| 3066 | } | ||
| 3067 | if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1]) | ||
| 3068 | & CODING_ISO_FLAG_LATIN_EXTRA) | ||
| 3069 | found |= CATEGORY_MASK_ISO_8_1; | ||
| 3070 | else | ||
| 3071 | rejected |= CATEGORY_MASK_ISO_8_1; | ||
| 3072 | rejected |= CATEGORY_MASK_ISO_8_2; | ||
| 3073 | break; | ||
| 3074 | 3061 | ||
| 3075 | default: | 3062 | default: |
| 3076 | if (c < 0) | 3063 | if (c < 0) |
| @@ -3121,6 +3108,20 @@ detect_coding_iso_2022 (struct coding_system *coding, | |||
| 3121 | } | 3108 | } |
| 3122 | break; | 3109 | break; |
| 3123 | } | 3110 | } |
| 3111 | check_extra_latin: | ||
| 3112 | if (! VECTORP (Vlatin_extra_code_table) | ||
| 3113 | || NILP (AREF (Vlatin_extra_code_table, c))) | ||
| 3114 | { | ||
| 3115 | rejected = CATEGORY_MASK_ISO; | ||
| 3116 | break; | ||
| 3117 | } | ||
| 3118 | if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1]) | ||
| 3119 | & CODING_ISO_FLAG_LATIN_EXTRA) | ||
| 3120 | found |= CATEGORY_MASK_ISO_8_1; | ||
| 3121 | else | ||
| 3122 | rejected |= CATEGORY_MASK_ISO_8_1; | ||
| 3123 | rejected |= CATEGORY_MASK_ISO_8_2; | ||
| 3124 | break; | ||
| 3124 | } | 3125 | } |
| 3125 | } | 3126 | } |
| 3126 | detect_info->rejected |= CATEGORY_MASK_ISO; | 3127 | detect_info->rejected |= CATEGORY_MASK_ISO; |