aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa1998-11-09 07:06:11 +0000
committerKenichi Handa1998-11-09 07:06:11 +0000
commit1dca54f61ea181bbcab4d75dc2599a28ba0d4024 (patch)
tree3959f001b35e214922dc7cef760ad127231f322b
parent5f1af2d872b58f5f990a7a667aab32cd5152388b (diff)
downloademacs-1dca54f61ea181bbcab4d75dc2599a28ba0d4024.tar.gz
emacs-1dca54f61ea181bbcab4d75dc2599a28ba0d4024.zip
(string_to_non_ascii_char): Return correct length for
a charset of dimension 2 and composition character.
-rw-r--r--src/charset.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/charset.c b/src/charset.c
index 702ec54a42c..a65de79c8a6 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -208,8 +208,10 @@ string_to_non_ascii_char (str, len, actual_len, exclude_tail_garbage)
208 if (cmpchar_id >= 0) 208 if (cmpchar_id >= 0)
209 { 209 {
210 c = MAKE_COMPOSITE_CHAR (cmpchar_id); 210 c = MAKE_COMPOSITE_CHAR (cmpchar_id);
211 str += cmpchar_table[cmpchar_id]->len; 211 str += cmpchar_table[cmpchar_id]->len - 1;
212 } 212 }
213 else
214 str += bytes - 1;
213 } 215 }
214 else 216 else
215 { 217 {
@@ -230,7 +232,7 @@ string_to_non_ascii_char (str, len, actual_len, exclude_tail_garbage)
230 if (CHARSET_DEFINED_P (charset) 232 if (CHARSET_DEFINED_P (charset)
231 && CHARSET_DIMENSION (charset) == 2 233 && CHARSET_DIMENSION (charset) == 2
232 && str < endp) 234 && str < endp)
233 c2 = *str & 0x7F; 235 c2 = *str++ & 0x7F;
234 c = MAKE_NON_ASCII_CHAR (charset, c1, c2); 236 c = MAKE_NON_ASCII_CHAR (charset, c1, c2);
235 } 237 }
236 } while (0); 238 } while (0);