From 33f37824466d8deaf4780a15a0694e45e9ae96c6 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 4 Jul 2000 07:38:15 +0000 Subject: [PATCH] (concat): While copying text properties, make each composition property value a copy. --- src/fns.c | 16 +++++++++++++--- 1 file 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; -- 2.39.2