Mercurial > emacs
comparison src/textprop.c @ 109179:8cfee7d2955f
Convert DEFUNs to standard C.
* src/alloc.c: Convert DEFUNs to standard C.
* src/buffer.c:
* src/bytecode.c:
* src/callint.c:
* src/callproc.c:
* src/casefiddle.c:
* src/casetab.c:
* src/category.c:
* src/character.c:
* src/charset.c:
* src/chartab.c:
* src/cmds.c:
* src/coding.c:
* src/composite.c:
* src/data.c:
* src/dbusbind.c:
* src/dired.c:
* src/dispnew.c:
* src/doc.c:
* src/dosfns.c:
* src/editfns.c:
* src/emacs.c:
* src/eval.c:
* src/fileio.c:
* src/filelock.c:
* src/floatfns.c:
* src/fns.c:
* src/font.c:
* src/fontset.c:
* src/frame.c:
* src/fringe.c:
* src/image.c:
* src/indent.c:
* src/insdel.c:
* src/keyboard.c:
* src/keymap.c:
* src/lread.c:
* src/macros.c:
* src/marker.c:
* src/menu.c:
* src/minibuf.c:
* src/msdos.c:
* src/nsfns.m:
* src/nsmenu.m:
* src/nsselect.m:
* src/print.c:
* src/process.c:
* src/search.c:
* src/sound.c:
* src/syntax.c:
* src/term.c:
* src/terminal.c:
* src/textprop.c:
* src/undo.c:
* src/w16select.c:
* src/w32console.c:
* src/w32fns.c:
* src/w32font.c:
* src/w32menu.c:
* src/w32proc.c:
* src/w32select.c:
* src/window.c:
* src/xdisp.c:
* src/xfaces.c:
* src/xfns.c:
* src/xmenu.c:
* src/xselect.c:
* src/xsettings.c:
* src/xsmfns.c: Likewise.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Thu, 08 Jul 2010 14:25:08 -0700 |
parents | aec1143e8d85 |
children | 08d10ad776d8 |
comparison
equal
deleted
inserted
replaced
109178:53f8ebcd9a97 | 109179:8cfee7d2955f |
---|---|
556 doc: /* Return the list of properties of the character at POSITION in OBJECT. | 556 doc: /* Return the list of properties of the character at POSITION in OBJECT. |
557 If the optional second argument OBJECT is a buffer (or nil, which means | 557 If the optional second argument OBJECT is a buffer (or nil, which means |
558 the current buffer), POSITION is a buffer position (integer or marker). | 558 the current buffer), POSITION is a buffer position (integer or marker). |
559 If OBJECT is a string, POSITION is a 0-based index into it. | 559 If OBJECT is a string, POSITION is a 0-based index into it. |
560 If POSITION is at the end of OBJECT, the value is nil. */) | 560 If POSITION is at the end of OBJECT, the value is nil. */) |
561 (position, object) | 561 (Lisp_Object position, Lisp_Object object) |
562 Lisp_Object position, object; | |
563 { | 562 { |
564 register INTERVAL i; | 563 register INTERVAL i; |
565 | 564 |
566 if (NILP (object)) | 565 if (NILP (object)) |
567 XSETBUFFER (object, current_buffer); | 566 XSETBUFFER (object, current_buffer); |
581 | 580 |
582 DEFUN ("get-text-property", Fget_text_property, Sget_text_property, 2, 3, 0, | 581 DEFUN ("get-text-property", Fget_text_property, Sget_text_property, 2, 3, 0, |
583 doc: /* Return the value of POSITION's property PROP, in OBJECT. | 582 doc: /* Return the value of POSITION's property PROP, in OBJECT. |
584 OBJECT is optional and defaults to the current buffer. | 583 OBJECT is optional and defaults to the current buffer. |
585 If POSITION is at the end of OBJECT, the value is nil. */) | 584 If POSITION is at the end of OBJECT, the value is nil. */) |
586 (position, prop, object) | 585 (Lisp_Object position, Lisp_Object prop, Lisp_Object object) |
587 Lisp_Object position, object; | |
588 Lisp_Object prop; | |
589 { | 586 { |
590 return textget (Ftext_properties_at (position, object), prop); | 587 return textget (Ftext_properties_at (position, object), prop); |
591 } | 588 } |
592 | 589 |
593 /* Return the value of char's property PROP, in OBJECT at POSITION. | 590 /* Return the value of char's property PROP, in OBJECT at POSITION. |
663 If POSITION is at the end of OBJECT, the value is nil. | 660 If POSITION is at the end of OBJECT, the value is nil. |
664 If OBJECT is a buffer, then overlay properties are considered as well as | 661 If OBJECT is a buffer, then overlay properties are considered as well as |
665 text properties. | 662 text properties. |
666 If OBJECT is a window, then that window's buffer is used, but window-specific | 663 If OBJECT is a window, then that window's buffer is used, but window-specific |
667 overlays are considered only if they are associated with OBJECT. */) | 664 overlays are considered only if they are associated with OBJECT. */) |
668 (position, prop, object) | 665 (Lisp_Object position, Lisp_Object prop, Lisp_Object object) |
669 Lisp_Object position, object; | |
670 register Lisp_Object prop; | |
671 { | 666 { |
672 return get_char_property_and_overlay (position, prop, object, 0); | 667 return get_char_property_and_overlay (position, prop, object, 0); |
673 } | 668 } |
674 | 669 |
675 DEFUN ("get-char-property-and-overlay", Fget_char_property_and_overlay, | 670 DEFUN ("get-char-property-and-overlay", Fget_char_property_and_overlay, |
684 a string, a buffer or a window. For strings, the cdr of the return | 679 a string, a buffer or a window. For strings, the cdr of the return |
685 value is always nil, since strings do not have overlays. If OBJECT is | 680 value is always nil, since strings do not have overlays. If OBJECT is |
686 a window, then that window's buffer is used, but window-specific | 681 a window, then that window's buffer is used, but window-specific |
687 overlays are considered only if they are associated with OBJECT. If | 682 overlays are considered only if they are associated with OBJECT. If |
688 POSITION is at the end of OBJECT, both car and cdr are nil. */) | 683 POSITION is at the end of OBJECT, both car and cdr are nil. */) |
689 (position, prop, object) | 684 (Lisp_Object position, Lisp_Object prop, Lisp_Object object) |
690 Lisp_Object position, object; | |
691 register Lisp_Object prop; | |
692 { | 685 { |
693 Lisp_Object overlay; | 686 Lisp_Object overlay; |
694 Lisp_Object val | 687 Lisp_Object val |
695 = get_char_property_and_overlay (position, prop, object, &overlay); | 688 = get_char_property_and_overlay (position, prop, object, &overlay); |
696 return Fcons (val, overlay); | 689 return Fcons (val, overlay); |
706 If none is found up to (point-max), the function returns (point-max). | 699 If none is found up to (point-max), the function returns (point-max). |
707 | 700 |
708 If the optional second argument LIMIT is non-nil, don't search | 701 If the optional second argument LIMIT is non-nil, don't search |
709 past position LIMIT; return LIMIT if nothing is found before LIMIT. | 702 past position LIMIT; return LIMIT if nothing is found before LIMIT. |
710 LIMIT is a no-op if it is greater than (point-max). */) | 703 LIMIT is a no-op if it is greater than (point-max). */) |
711 (position, limit) | 704 (Lisp_Object position, Lisp_Object limit) |
712 Lisp_Object position, limit; | |
713 { | 705 { |
714 Lisp_Object temp; | 706 Lisp_Object temp; |
715 | 707 |
716 temp = Fnext_overlay_change (position); | 708 temp = Fnext_overlay_change (position); |
717 if (! NILP (limit)) | 709 if (! NILP (limit)) |
732 If none is found since (point-min), the function returns (point-min). | 724 If none is found since (point-min), the function returns (point-min). |
733 | 725 |
734 If the optional second argument LIMIT is non-nil, don't search | 726 If the optional second argument LIMIT is non-nil, don't search |
735 past position LIMIT; return LIMIT if nothing is found before LIMIT. | 727 past position LIMIT; return LIMIT if nothing is found before LIMIT. |
736 LIMIT is a no-op if it is less than (point-min). */) | 728 LIMIT is a no-op if it is less than (point-min). */) |
737 (position, limit) | 729 (Lisp_Object position, Lisp_Object limit) |
738 Lisp_Object position, limit; | |
739 { | 730 { |
740 Lisp_Object temp; | 731 Lisp_Object temp; |
741 | 732 |
742 temp = Fprevious_overlay_change (position); | 733 temp = Fprevious_overlay_change (position); |
743 if (! NILP (limit)) | 734 if (! NILP (limit)) |
765 The property values are compared with `eq'. | 756 The property values are compared with `eq'. |
766 If the property is constant all the way to the end of OBJECT, return the | 757 If the property is constant all the way to the end of OBJECT, return the |
767 last valid position in OBJECT. | 758 last valid position in OBJECT. |
768 If the optional fourth argument LIMIT is non-nil, don't search | 759 If the optional fourth argument LIMIT is non-nil, don't search |
769 past position LIMIT; return LIMIT if nothing is found before LIMIT. */) | 760 past position LIMIT; return LIMIT if nothing is found before LIMIT. */) |
770 (position, prop, object, limit) | 761 (Lisp_Object position, Lisp_Object prop, Lisp_Object object, Lisp_Object limit) |
771 Lisp_Object prop, position, object, limit; | |
772 { | 762 { |
773 if (STRINGP (object)) | 763 if (STRINGP (object)) |
774 { | 764 { |
775 position = Fnext_single_property_change (position, prop, object, limit); | 765 position = Fnext_single_property_change (position, prop, object, limit); |
776 if (NILP (position)) | 766 if (NILP (position)) |
850 The property values are compared with `eq'. | 840 The property values are compared with `eq'. |
851 If the property is constant all the way to the start of OBJECT, return the | 841 If the property is constant all the way to the start of OBJECT, return the |
852 first valid position in OBJECT. | 842 first valid position in OBJECT. |
853 If the optional fourth argument LIMIT is non-nil, don't search | 843 If the optional fourth argument LIMIT is non-nil, don't search |
854 back past position LIMIT; return LIMIT if nothing is found before LIMIT. */) | 844 back past position LIMIT; return LIMIT if nothing is found before LIMIT. */) |
855 (position, prop, object, limit) | 845 (Lisp_Object position, Lisp_Object prop, Lisp_Object object, Lisp_Object limit) |
856 Lisp_Object prop, position, object, limit; | |
857 { | 846 { |
858 if (STRINGP (object)) | 847 if (STRINGP (object)) |
859 { | 848 { |
860 position = Fprevious_single_property_change (position, prop, object, limit); | 849 position = Fprevious_single_property_change (position, prop, object, limit); |
861 if (NILP (position)) | 850 if (NILP (position)) |
939 Return nil if the property is constant all the way to the end of OBJECT. | 928 Return nil if the property is constant all the way to the end of OBJECT. |
940 If the value is non-nil, it is a position greater than POSITION, never equal. | 929 If the value is non-nil, it is a position greater than POSITION, never equal. |
941 | 930 |
942 If the optional third argument LIMIT is non-nil, don't search | 931 If the optional third argument LIMIT is non-nil, don't search |
943 past position LIMIT; return LIMIT if nothing is found before LIMIT. */) | 932 past position LIMIT; return LIMIT if nothing is found before LIMIT. */) |
944 (position, object, limit) | 933 (Lisp_Object position, Lisp_Object object, Lisp_Object limit) |
945 Lisp_Object position, object, limit; | |
946 { | 934 { |
947 register INTERVAL i, next; | 935 register INTERVAL i, next; |
948 | 936 |
949 if (NILP (object)) | 937 if (NILP (object)) |
950 XSETBUFFER (object, current_buffer); | 938 XSETBUFFER (object, current_buffer); |
1036 Return nil if the property is constant all the way to the end of OBJECT. | 1024 Return nil if the property is constant all the way to the end of OBJECT. |
1037 If the value is non-nil, it is a position greater than POSITION, never equal. | 1025 If the value is non-nil, it is a position greater than POSITION, never equal. |
1038 | 1026 |
1039 If the optional fourth argument LIMIT is non-nil, don't search | 1027 If the optional fourth argument LIMIT is non-nil, don't search |
1040 past position LIMIT; return LIMIT if nothing is found before LIMIT. */) | 1028 past position LIMIT; return LIMIT if nothing is found before LIMIT. */) |
1041 (position, prop, object, limit) | 1029 (Lisp_Object position, Lisp_Object prop, Lisp_Object object, Lisp_Object limit) |
1042 Lisp_Object position, prop, object, limit; | |
1043 { | 1030 { |
1044 register INTERVAL i, next; | 1031 register INTERVAL i, next; |
1045 register Lisp_Object here_val; | 1032 register Lisp_Object here_val; |
1046 | 1033 |
1047 if (NILP (object)) | 1034 if (NILP (object)) |
1084 Return nil if the property is constant all the way to the start of OBJECT. | 1071 Return nil if the property is constant all the way to the start of OBJECT. |
1085 If the value is non-nil, it is a position less than POSITION, never equal. | 1072 If the value is non-nil, it is a position less than POSITION, never equal. |
1086 | 1073 |
1087 If the optional third argument LIMIT is non-nil, don't search | 1074 If the optional third argument LIMIT is non-nil, don't search |
1088 back past position LIMIT; return LIMIT if nothing is found until LIMIT. */) | 1075 back past position LIMIT; return LIMIT if nothing is found until LIMIT. */) |
1089 (position, object, limit) | 1076 (Lisp_Object position, Lisp_Object object, Lisp_Object limit) |
1090 Lisp_Object position, object, limit; | |
1091 { | 1077 { |
1092 register INTERVAL i, previous; | 1078 register INTERVAL i, previous; |
1093 | 1079 |
1094 if (NILP (object)) | 1080 if (NILP (object)) |
1095 XSETBUFFER (object, current_buffer); | 1081 XSETBUFFER (object, current_buffer); |
1133 Return nil if the property is constant all the way to the start of OBJECT. | 1119 Return nil if the property is constant all the way to the start of OBJECT. |
1134 If the value is non-nil, it is a position less than POSITION, never equal. | 1120 If the value is non-nil, it is a position less than POSITION, never equal. |
1135 | 1121 |
1136 If the optional fourth argument LIMIT is non-nil, don't search | 1122 If the optional fourth argument LIMIT is non-nil, don't search |
1137 back past position LIMIT; return LIMIT if nothing is found until LIMIT. */) | 1123 back past position LIMIT; return LIMIT if nothing is found until LIMIT. */) |
1138 (position, prop, object, limit) | 1124 (Lisp_Object position, Lisp_Object prop, Lisp_Object object, Lisp_Object limit) |
1139 Lisp_Object position, prop, object, limit; | |
1140 { | 1125 { |
1141 register INTERVAL i, previous; | 1126 register INTERVAL i, previous; |
1142 register Lisp_Object here_val; | 1127 register Lisp_Object here_val; |
1143 | 1128 |
1144 if (NILP (object)) | 1129 if (NILP (object)) |
1183 specifying the property values to add. If the optional fourth argument | 1168 specifying the property values to add. If the optional fourth argument |
1184 OBJECT is a buffer (or nil, which means the current buffer), | 1169 OBJECT is a buffer (or nil, which means the current buffer), |
1185 START and END are buffer positions (integers or markers). | 1170 START and END are buffer positions (integers or markers). |
1186 If OBJECT is a string, START and END are 0-based indices into it. | 1171 If OBJECT is a string, START and END are 0-based indices into it. |
1187 Return t if any property value actually changed, nil otherwise. */) | 1172 Return t if any property value actually changed, nil otherwise. */) |
1188 (start, end, properties, object) | 1173 (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object object) |
1189 Lisp_Object start, end, properties, object; | |
1190 { | 1174 { |
1191 register INTERVAL i, unchanged; | 1175 register INTERVAL i, unchanged; |
1192 register int s, len, modified = 0; | 1176 register int s, len, modified = 0; |
1193 struct gcpro gcpro1; | 1177 struct gcpro gcpro1; |
1194 | 1178 |
1291 The third and fourth arguments PROPERTY and VALUE | 1275 The third and fourth arguments PROPERTY and VALUE |
1292 specify the property to add. | 1276 specify the property to add. |
1293 If the optional fifth argument OBJECT is a buffer (or nil, which means | 1277 If the optional fifth argument OBJECT is a buffer (or nil, which means |
1294 the current buffer), START and END are buffer positions (integers or | 1278 the current buffer), START and END are buffer positions (integers or |
1295 markers). If OBJECT is a string, START and END are 0-based indices into it. */) | 1279 markers). If OBJECT is a string, START and END are 0-based indices into it. */) |
1296 (start, end, property, value, object) | 1280 (Lisp_Object start, Lisp_Object end, Lisp_Object property, Lisp_Object value, Lisp_Object object) |
1297 Lisp_Object start, end, property, value, object; | |
1298 { | 1281 { |
1299 Fadd_text_properties (start, end, | 1282 Fadd_text_properties (start, end, |
1300 Fcons (property, Fcons (value, Qnil)), | 1283 Fcons (property, Fcons (value, Qnil)), |
1301 object); | 1284 object); |
1302 return Qnil; | 1285 return Qnil; |
1309 If the optional fourth argument OBJECT is a buffer (or nil, which means | 1292 If the optional fourth argument OBJECT is a buffer (or nil, which means |
1310 the current buffer), START and END are buffer positions (integers or | 1293 the current buffer), START and END are buffer positions (integers or |
1311 markers). If OBJECT is a string, START and END are 0-based indices into it. | 1294 markers). If OBJECT is a string, START and END are 0-based indices into it. |
1312 If PROPERTIES is nil, the effect is to remove all properties from | 1295 If PROPERTIES is nil, the effect is to remove all properties from |
1313 the designated part of OBJECT. */) | 1296 the designated part of OBJECT. */) |
1314 (start, end, properties, object) | 1297 (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object object) |
1315 Lisp_Object start, end, properties, object; | |
1316 { | 1298 { |
1317 return set_text_properties (start, end, properties, object, Qt); | 1299 return set_text_properties (start, end, properties, object, Qt); |
1318 } | 1300 } |
1319 | 1301 |
1320 | 1302 |
1479 the current buffer), START and END are buffer positions (integers or | 1461 the current buffer), START and END are buffer positions (integers or |
1480 markers). If OBJECT is a string, START and END are 0-based indices into it. | 1462 markers). If OBJECT is a string, START and END are 0-based indices into it. |
1481 Return t if any property was actually removed, nil otherwise. | 1463 Return t if any property was actually removed, nil otherwise. |
1482 | 1464 |
1483 Use `set-text-properties' if you want to remove all text properties. */) | 1465 Use `set-text-properties' if you want to remove all text properties. */) |
1484 (start, end, properties, object) | 1466 (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object object) |
1485 Lisp_Object start, end, properties, object; | |
1486 { | 1467 { |
1487 register INTERVAL i, unchanged; | 1468 register INTERVAL i, unchanged; |
1488 register int s, len, modified = 0; | 1469 register int s, len, modified = 0; |
1489 | 1470 |
1490 if (NILP (object)) | 1471 if (NILP (object)) |
1565 The third argument LIST-OF-PROPERTIES is a list of property names to remove. | 1546 The third argument LIST-OF-PROPERTIES is a list of property names to remove. |
1566 If the optional fourth argument OBJECT is a buffer (or nil, which means | 1547 If the optional fourth argument OBJECT is a buffer (or nil, which means |
1567 the current buffer), START and END are buffer positions (integers or | 1548 the current buffer), START and END are buffer positions (integers or |
1568 markers). If OBJECT is a string, START and END are 0-based indices into it. | 1549 markers). If OBJECT is a string, START and END are 0-based indices into it. |
1569 Return t if any property was actually removed, nil otherwise. */) | 1550 Return t if any property was actually removed, nil otherwise. */) |
1570 (start, end, list_of_properties, object) | 1551 (Lisp_Object start, Lisp_Object end, Lisp_Object list_of_properties, Lisp_Object object) |
1571 Lisp_Object start, end, list_of_properties, object; | |
1572 { | 1552 { |
1573 register INTERVAL i, unchanged; | 1553 register INTERVAL i, unchanged; |
1574 register int s, len, modified = 0; | 1554 register int s, len, modified = 0; |
1575 Lisp_Object properties; | 1555 Lisp_Object properties; |
1576 properties = list_of_properties; | 1556 properties = list_of_properties; |
1673 If so, return the position of the first character whose property PROPERTY | 1653 If so, return the position of the first character whose property PROPERTY |
1674 is `eq' to VALUE. Otherwise return nil. | 1654 is `eq' to VALUE. Otherwise return nil. |
1675 If the optional fifth argument OBJECT is a buffer (or nil, which means | 1655 If the optional fifth argument OBJECT is a buffer (or nil, which means |
1676 the current buffer), START and END are buffer positions (integers or | 1656 the current buffer), START and END are buffer positions (integers or |
1677 markers). If OBJECT is a string, START and END are 0-based indices into it. */) | 1657 markers). If OBJECT is a string, START and END are 0-based indices into it. */) |
1678 (start, end, property, value, object) | 1658 (Lisp_Object start, Lisp_Object end, Lisp_Object property, Lisp_Object value, Lisp_Object object) |
1679 Lisp_Object start, end, property, value, object; | |
1680 { | 1659 { |
1681 register INTERVAL i; | 1660 register INTERVAL i; |
1682 register int e, pos; | 1661 register int e, pos; |
1683 | 1662 |
1684 if (NILP (object)) | 1663 if (NILP (object)) |
1710 If so, return the position of the first character whose property PROPERTY | 1689 If so, return the position of the first character whose property PROPERTY |
1711 is not `eq' to VALUE. Otherwise, return nil. | 1690 is not `eq' to VALUE. Otherwise, return nil. |
1712 If the optional fifth argument OBJECT is a buffer (or nil, which means | 1691 If the optional fifth argument OBJECT is a buffer (or nil, which means |
1713 the current buffer), START and END are buffer positions (integers or | 1692 the current buffer), START and END are buffer positions (integers or |
1714 markers). If OBJECT is a string, START and END are 0-based indices into it. */) | 1693 markers). If OBJECT is a string, START and END are 0-based indices into it. */) |
1715 (start, end, property, value, object) | 1694 (Lisp_Object start, Lisp_Object end, Lisp_Object property, Lisp_Object value, Lisp_Object object) |
1716 Lisp_Object start, end, property, value, object; | |
1717 { | 1695 { |
1718 register INTERVAL i; | 1696 register INTERVAL i; |
1719 register int s, e; | 1697 register int s, e; |
1720 | 1698 |
1721 if (NILP (object)) | 1699 if (NILP (object)) |