Mercurial > emacs
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. */ |