diff options
author | Kim F. Storm <storm@cua.dk> | 2005-09-12 20:38:47 +0000 |
---|---|---|
committer | Kim F. Storm <storm@cua.dk> | 2005-09-12 20:38:47 +0000 |
commit | 56350ef60cb80faeedd84cd3098c2d4ab7e9ffc6 (patch) | |
tree | 756195e575091a6ae106fce0e18eb516ba0b471b /src/composite.c | |
parent | 989a981af83ea0fe94b591f44535be563874f381 (diff) | |
download | emacs-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.c | 13 |
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++; |