aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/composite.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/composite.c b/src/composite.c
index 085458db521..7da4c579ea7 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -534,6 +534,31 @@ update_compositions (from, to, check_mask)
534 } 534 }
535} 535}
536 536
537
538/* Modify composition property values in LIST destructively. LIST is
539 a list as returned from text_property_list. Change values to the
540 top-level copies of them so that none of them are `eq'. */
541
542void
543make_composition_value_copy (list)
544 Lisp_Object list;
545{
546 Lisp_Object plist, val;
547
548 for (; CONSP (list); list = XCDR (list))
549 {
550 plist = XCAR (XCDR (XCDR (XCAR (list))));
551 while (CONSP (plist) && CONSP (XCDR (plist)))
552 {
553 if (EQ (XCAR (plist), Qcomposition)
554 && (val = XCAR (XCDR (plist)), CONSP (val)))
555 XCAR (XCDR (plist)) = Fcons (XCAR (val), XCDR (val));
556 plist = XCDR (XCDR (plist));
557 }
558 }
559}
560
561
537/* Make text in the region between START and END a composition that 562/* Make text in the region between START and END a composition that
538 has COMPONENTS and MODIFICATION-FUNC. 563 has COMPONENTS and MODIFICATION-FUNC.
539 564