aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2000-07-04 07:36:58 +0000
committerKenichi Handa2000-07-04 07:36:58 +0000
commitc1361885c561f3e1178ff83160dbdd23b3cfb9d4 (patch)
treec163a1126ce087ab9ce37504844694b0e3372126
parent78e7e8a0454255e97764027389d3faaa476faa99 (diff)
downloademacs-c1361885c561f3e1178ff83160dbdd23b3cfb9d4.tar.gz
emacs-c1361885c561f3e1178ff83160dbdd23b3cfb9d4.zip
(make_composition_value_copy): New function.
-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