]> git.eshelyaron.com Git - emacs.git/commitdiff
(concat): While copying text properties, make each composition
authorKenichi Handa <handa@m17n.org>
Tue, 4 Jul 2000 07:38:15 +0000 (07:38 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 4 Jul 2000 07:38:15 +0000 (07:38 +0000)
property value a copy.

src/fns.c

index 680fec8cc62f31c465d56f7045f3285d430cf2ac..b4a67b4ebe450c657ec4d0cdf211189cde7a8652 100644 (file)
--- 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;