X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Ftext-coding.c;h=b3f80ff4ea181d0cc040f17320f06dd4908621da;hb=f9b8477aa42121d179c3404698ecaa8433c06b3c;hp=4b8f2d2bd057adb056acf8797b95c923aa275976;hpb=0cbb0d1c451c164beae371763b59ce64347f5ce5;p=chise%2Fxemacs-chise.git diff --git a/src/text-coding.c b/src/text-coding.c index 4b8f2d2..b3f80ff 100644 --- a/src/text-coding.c +++ b/src/text-coding.c @@ -3246,6 +3246,8 @@ decode_flush_er_chars (struct decoding_stream *str, unsigned_char_dynarr* dst) } } +EXFUN (Fregexp_quote, 1); + void decode_add_er_char (struct decoding_stream *str, Emchar character, unsigned_char_dynarr* dst); void @@ -3267,7 +3269,7 @@ decode_add_er_char (struct decoding_stream *str, Emchar c, { Lisp_Object string = make_string (str->er_buf, str->er_counter); - Lisp_Object rest = Vcoded_charset_entity_reference_alist; + Lisp_Object rest; Lisp_Object cell; Lisp_Object ret; Lisp_Object pat; @@ -3275,7 +3277,8 @@ decode_add_er_char (struct decoding_stream *str, Emchar c, Lisp_Object char_type; int base; - while (!NILP (rest)) + for ( rest = Vcoded_charset_entity_reference_alist; + !NILP (rest); rest = Fcdr (rest) ) { cell = Fcar (rest); ccs = Fcar (cell); @@ -3295,6 +3298,7 @@ decode_add_er_char (struct decoding_stream *str, Emchar c, pat = ret; else continue; + pat = Fregexp_quote (pat); cell = Fcdr (cell); cell = Fcdr (cell); @@ -3336,7 +3340,6 @@ decode_add_er_char (struct decoding_stream *str, Emchar c, DECODE_ADD_UCS_CHAR (chr, dst); goto decoded; } - rest = Fcdr (rest); } if (!NILP (Fstring_match (build_string ("^&MCS-\\([0-9A-F]+\\)$"), string, Qnil, Qnil)))