diff options
| author | Kenichi Handa | 2002-10-07 12:59:21 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2002-10-07 12:59:21 +0000 |
| commit | ba5e343cadd7ea40cb5508f8823f3872161d3110 (patch) | |
| tree | eed0f1cf0889314c6b8e9d5aedc2479902afc1f5 /src | |
| parent | c01bb36f11aa6f8038331f8154ef07f49e7a19b5 (diff) | |
| download | emacs-ba5e343cadd7ea40cb5508f8823f3872161d3110.tar.gz emacs-ba5e343cadd7ea40cb5508f8823f3872161d3110.zip | |
(re_search_2): Fix for the case of unibyte buffer.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/regex.c | 25 |
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 @@ | |||
| 1 | 2002-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 | |||
| 1 | 2002-10-06 Dave Love <fx@gnu.org> | 8 | 2002-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 | ||