comparison src/composite.c @ 30022:6a52904a743b

(make_composition_value_copy): New function.
author Kenichi Handa <handa@m17n.org>
date Tue, 04 Jul 2000 07:36:58 +0000
parents 151b7ae3b21f
children 4c2d8e4d00e0
comparison
equal deleted inserted replaced
30021:098362c40020 30022:6a52904a743b
532 && find_composition (to, -1, &start, &end, &prop, Qnil)) 532 && find_composition (to, -1, &start, &end, &prop, Qnil))
533 run_composition_function (start, end, prop); 533 run_composition_function (start, end, prop);
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
542 void
543 make_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
540 If STRING is non-nil, then operate on characters contained between 565 If STRING is non-nil, then operate on characters contained between
541 indices START and END in STRING. */ 566 indices START and END in STRING. */