summaryrefslogtreecommitdiff
path: root/src/composite.c
diff options
context:
space:
mode:
authorKim F. Storm <storm@cua.dk>2005-09-12 20:38:47 +0000
committerKim F. Storm <storm@cua.dk>2005-09-12 20:38:47 +0000
commit56350ef60cb80faeedd84cd3098c2d4ab7e9ffc6 (patch)
tree756195e575091a6ae106fce0e18eb516ba0b471b /src/composite.c
parent989a981af83ea0fe94b591f44535be563874f381 (diff)
downloademacs-56350ef60cb80faeedd84cd3098c2d4ab7e9ffc6.tar.gz
(compose_chars_in_text): Fix setup of `pend'.
Unconditionally reload `ptr' and `pend' after eval.
Diffstat (limited to 'src/composite.c')
-rw-r--r--src/composite.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/composite.c b/src/composite.c
index daa6dceb3c6..02abb66e1e5 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -616,7 +616,7 @@ compose_chars_in_text (start, end, string)
GCPRO1 (string);
stop = end;
ptr = SDATA (string) + string_char_to_byte (string, start);
- pend = ptr + SBYTES (string);
+ pend = SDATA (string) + SBYTES (string);
}
else
{
@@ -680,10 +680,19 @@ compose_chars_in_text (start, end, string)
{
start += XINT (val);
if (STRINGP (string))
- ptr = SDATA (string) + string_char_to_byte (string, start);
+ {
+ ptr = SDATA (string) + string_char_to_byte (string, start);
+ pend = SDATA (string) + SBYTES (string);
+ }
else
ptr = CHAR_POS_ADDR (start);
}
+ else if (STRINGP (string))
+ {
+ start++;
+ ptr = SDATA (string) + string_char_to_byte (string, start);
+ pend = SDATA (string) + SBYTES (string);
+ }
else
{
start++;