aboutsummaryrefslogtreecommitdiffstats
path: root/src/editfns.c
diff options
context:
space:
mode:
authorGerd Moellmann2000-03-27 15:48:36 +0000
committerGerd Moellmann2000-03-27 15:48:36 +0000
commit7439e5b9ca61c98078e7dd51c8a4769fcf20377f (patch)
tree67f9766b2a642dd7170ce9ef4ffacd65589e0d47 /src/editfns.c
parentd9c545daed804dea4c79782e5249ef79269f4517 (diff)
downloademacs-7439e5b9ca61c98078e7dd51c8a4769fcf20377f.tar.gz
emacs-7439e5b9ca61c98078e7dd51c8a4769fcf20377f.zip
(Fsubst_char_in_region): Don't use INC_POS in unibyte
buffers because it looks for multibyte character sequences which don't exist in unibyte text.
Diffstat (limited to 'src/editfns.c')
-rw-r--r--src/editfns.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/editfns.c b/src/editfns.c
index 4e25655f492..12db1a310dd 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -2280,12 +2280,13 @@ Both characters must have the same length of multi-byte form.")
2280#define COMBINING_BOTH (COMBINING_BEFORE | COMBINING_AFTER) 2280#define COMBINING_BOTH (COMBINING_BEFORE | COMBINING_AFTER)
2281 int maybe_byte_combining = COMBINING_NO; 2281 int maybe_byte_combining = COMBINING_NO;
2282 int last_changed; 2282 int last_changed;
2283 int multibyte_p = !NILP (current_buffer->enable_multibyte_characters);
2283 2284
2284 validate_region (&start, &end); 2285 validate_region (&start, &end);
2285 CHECK_NUMBER (fromchar, 2); 2286 CHECK_NUMBER (fromchar, 2);
2286 CHECK_NUMBER (tochar, 3); 2287 CHECK_NUMBER (tochar, 3);
2287 2288
2288 if (! NILP (current_buffer->enable_multibyte_characters)) 2289 if (multibyte_p)
2289 { 2290 {
2290 len = CHAR_STRING (XFASTINT (fromchar), fromstr); 2291 len = CHAR_STRING (XFASTINT (fromchar), fromstr);
2291 if (CHAR_STRING (XFASTINT (tochar), tostr) != len) 2292 if (CHAR_STRING (XFASTINT (tochar), tostr) != len)
@@ -2341,7 +2342,10 @@ Both characters must have the same length of multi-byte form.")
2341 stop = end_byte; 2342 stop = end_byte;
2342 } 2343 }
2343 p = BYTE_POS_ADDR (pos_byte); 2344 p = BYTE_POS_ADDR (pos_byte);
2344 INC_POS (pos_byte_next); 2345 if (multibyte_p)
2346 INC_POS (pos_byte_next);
2347 else
2348 ++pos_byte_next;
2345 if (pos_byte_next - pos_byte == len 2349 if (pos_byte_next - pos_byte == len
2346 && p[0] == fromstr[0] 2350 && p[0] == fromstr[0]
2347 && (len == 1 2351 && (len == 1