aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2002-10-07 12:59:21 +0000
committerKenichi Handa2002-10-07 12:59:21 +0000
commitba5e343cadd7ea40cb5508f8823f3872161d3110 (patch)
treeeed0f1cf0889314c6b8e9d5aedc2479902afc1f5 /src
parentc01bb36f11aa6f8038331f8154ef07f49e7a19b5 (diff)
downloademacs-ba5e343cadd7ea40cb5508f8823f3872161d3110.tar.gz
emacs-ba5e343cadd7ea40cb5508f8823f3872161d3110.zip
(re_search_2): Fix for the case of unibyte buffer.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog7
-rw-r--r--src/regex.c25
2 files changed, 26 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 47b7f90359b..4b9400ab77d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
12002-10-07 Kenichi Handa <handa@m17n.org>
2
3 * keymap.c (push_key_description): Pay attention to
4 force_multibyte.
5
6 * regex.c (re_search_2): Fix for the case of unibyte buffer.
7
12002-10-06 Dave Love <fx@gnu.org> 82002-10-06 Dave Love <fx@gnu.org>
2 9
3 * charset.c (define_charset_internal): Rename `supprementary'. 10 * charset.c (define_charset_internal): Rename `supprementary'.
diff --git a/src/regex.c b/src/regex.c
index a7ded877515..8cbc5f7949a 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -4099,13 +4099,26 @@ re_search_2 (bufp, str1, size1, str2, size2, startpos, range, regs, stop)
4099 int room = (startpos >= size1 4099 int room = (startpos >= size1
4100 ? size2 + size1 - startpos 4100 ? size2 + size1 - startpos
4101 : size1 - startpos); 4101 : size1 - startpos);
4102 buf_ch = RE_STRING_CHAR (d, room);
4103 if (! target_multibyte)
4104 MAKE_CHAR_MULTIBYTE (buf_ch);
4105 buf_ch = TRANSLATE (buf_ch);
4106 4102
4107 if (! fastmap[CHAR_LEADING_CODE (buf_ch)]) 4103 if (multibyte)
4108 goto advance; 4104 {
4105 /* Case of Emacs. */
4106 if (target_multibyte)
4107 buf_ch = RE_STRING_CHAR (d, room);
4108 else
4109 {
4110 buf_ch = *d;
4111 MAKE_CHAR_MULTIBYTE (buf_ch);
4112 }
4113 buf_ch = TRANSLATE (buf_ch);
4114 if (! fastmap[CHAR_LEADING_CODE (buf_ch)])
4115 goto advance;
4116 }
4117 else
4118 {
4119 if (! fastmap[TRANSLATE (*d)])
4120 goto advance;
4121 }
4109 } 4122 }
4110 } 4123 }
4111 4124