diff options
author | Kenichi Handa <handa@m17n.org> | 2000-07-04 07:38:15 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2000-07-04 07:38:15 +0000 |
commit | 33f37824466d8deaf4780a15a0694e45e9ae96c6 (patch) | |
tree | 461bfe25611daa8e5fd0f70449bbb71641e6e9dc /src/fns.c | |
parent | be17069b715f28617d6375ef898f06450c80e6ad (diff) | |
download | emacs-33f37824466d8deaf4780a15a0694e45e9ae96c6.tar.gz |
(concat): While copying text properties, make each composition
property value a copy.
Diffstat (limited to 'src/fns.c')
-rw-r--r-- | src/fns.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/fns.c b/src/fns.c index 680fec8cc62..b4a67b4ebe4 100644 --- a/src/fns.c +++ b/src/fns.c @@ -826,12 +826,22 @@ concat (nargs, args, target_type, last_special) if (num_textprops > 0) { + Lisp_Object props; + for (argnum = 0; argnum < num_textprops; argnum++) { this = args[textprops[argnum].argnum]; - copy_text_properties (make_number (textprops[argnum].from), - make_number (XSTRING (this)->size), this, - make_number (textprops[argnum].to), val, Qnil); + props = text_property_list (this, + make_number (0), + make_number (XSTRING (this)->size), + Qnil); + /* If successive arguments have properites, be sure that the + value of `composition' property be the copy. */ + if (argnum > 0 + && textprops[argnum - 1].argnum + 1 == textprops[argnum].argnum) + make_composition_value_copy (props); + add_text_properties_from_list (val, props, + make_number (textprops[argnum].to)); } } return val; |