aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrancesco Potortì2003-01-14 23:13:05 +0000
committerFrancesco Potortì2003-01-14 23:13:05 +0000
commit81f6e55f76cfc735cc28f3d85802311007808e89 (patch)
treeb748ce9c34b28ab22c84e3126b5cb6ae602563cc /src
parent91f78c999ebdb8c8d80829616ab57eb82e684fff (diff)
downloademacs-81f6e55f76cfc735cc28f3d85802311007808e89.tar.gz
emacs-81f6e55f76cfc735cc28f3d85802311007808e89.zip
(Ftext_properties_at, Fnext_char_property_change)
(Fprevious_char_property_change) (Fnext_single_char_property_change) (Fprevious_single_char_property_change, Fnext_property_change) (Fnext_single_property_change, Fprevious_property_change) (Fprevious_single_property_change, Fadd_text_properties) (Fput_text_property, Fset_text_properties) (Fremove_text_properties, Fremove_list_of_text_properties) (Ftext_property_any, Ftext_property_not_all): Clarify doc strings.
Diffstat (limited to 'src')
-rw-r--r--src/textprop.c136
1 files changed, 79 insertions, 57 deletions
diff --git a/src/textprop.c b/src/textprop.c
index 745f6b7fb90..176607c5de4 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -177,7 +177,7 @@ validate_interval_range (object, begin, end, force)
177 177
178 if (NULL_INTERVAL_P (i)) 178 if (NULL_INTERVAL_P (i))
179 return (force ? create_root_interval (object) : i); 179 return (force ? create_root_interval (object) : i);
180 180
181 return find_interval (i, searchpos); 181 return find_interval (i, searchpos);
182} 182}
183 183
@@ -526,7 +526,7 @@ erase_properties (i)
526} 526}
527#endif 527#endif
528 528
529/* Returns the interval of POSITION in OBJECT. 529/* Returns the interval of POSITION in OBJECT.
530 POSITION is BEG-based. */ 530 POSITION is BEG-based. */
531 531
532INTERVAL 532INTERVAL
@@ -563,15 +563,16 @@ interval_of (position, object)
563 args_out_of_range (make_number (position), make_number (position)); 563 args_out_of_range (make_number (position), make_number (position));
564 if (beg == end || NULL_INTERVAL_P (i)) 564 if (beg == end || NULL_INTERVAL_P (i))
565 return NULL_INTERVAL; 565 return NULL_INTERVAL;
566 566
567 return find_interval (i, position); 567 return find_interval (i, position);
568} 568}
569 569
570DEFUN ("text-properties-at", Ftext_properties_at, 570DEFUN ("text-properties-at", Ftext_properties_at,
571 Stext_properties_at, 1, 2, 0, 571 Stext_properties_at, 1, 2, 0,
572 doc: /* Return the list of properties of the character at POSITION in OBJECT. 572 doc: /* Return the list of properties of the character at POSITION in OBJECT.
573OBJECT is the string or buffer to look for the properties in; 573If the optional second argument OBJECT is a buffer (or nil, which means
574nil means the current buffer. 574the current buffer), POSITION is a buffer position (integer or marker).
575If OBJECT is a string, POSITION is a 0-based index into it.
575If POSITION is at the end of OBJECT, the value is nil. */) 576If POSITION is at the end of OBJECT, the value is nil. */)
576 (position, object) 577 (position, object)
577 Lisp_Object position, object; 578 Lisp_Object position, object;
@@ -706,9 +707,9 @@ overlays are considered only if they are associated with OBJECT. */)
706DEFUN ("next-char-property-change", Fnext_char_property_change, 707DEFUN ("next-char-property-change", Fnext_char_property_change,
707 Snext_char_property_change, 1, 2, 0, 708 Snext_char_property_change, 1, 2, 0,
708 doc: /* Return the position of next text property or overlay change. 709 doc: /* Return the position of next text property or overlay change.
709This scans characters forward from POSITION till it finds a change in 710This scans characters forward in the current buffer from POSITION till
710some text property, or the beginning or end of an overlay, and returns 711it finds a change in some text property, or the beginning or end of an
711the position of that. 712overlay, and returns the position of that.
712If none is found, the function returns (point-max). 713If none is found, the function returns (point-max).
713 714
714If the optional third argument LIMIT is non-nil, don't search 715If the optional third argument LIMIT is non-nil, don't search
@@ -731,9 +732,9 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
731DEFUN ("previous-char-property-change", Fprevious_char_property_change, 732DEFUN ("previous-char-property-change", Fprevious_char_property_change,
732 Sprevious_char_property_change, 1, 2, 0, 733 Sprevious_char_property_change, 1, 2, 0,
733 doc: /* Return the position of previous text property or overlay change. 734 doc: /* Return the position of previous text property or overlay change.
734Scans characters backward from POSITION till it finds a change in some 735Scans characters backward in the current buffer from POSITION till it
735text property, or the beginning or end of an overlay, and returns the 736finds a change in some text property, or the beginning or end of an
736position of that. 737overlay, and returns the position of that.
737If none is found, the function returns (point-max). 738If none is found, the function returns (point-max).
738 739
739If the optional third argument LIMIT is non-nil, don't search 740If the optional third argument LIMIT is non-nil, don't search
@@ -759,7 +760,10 @@ DEFUN ("next-single-char-property-change", Fnext_single_char_property_change,
759 doc: /* Return the position of next text property or overlay change for a specific property. 760 doc: /* Return the position of next text property or overlay change for a specific property.
760Scans characters forward from POSITION till it finds 761Scans characters forward from POSITION till it finds
761a change in the PROP property, then returns the position of the change. 762a change in the PROP property, then returns the position of the change.
762The optional third argument OBJECT is the string or buffer to scan. 763If the optional third argument OBJECT is a buffer (or nil, which means
764the current buffer), POSITION is a buffer position (integer or marker).
765If OBJECT is a string, POSITION is a 0-based index into it.
766
763The property values are compared with `eq'. 767The property values are compared with `eq'.
764If the property is constant all the way to the end of OBJECT, return the 768If the property is constant all the way to the end of OBJECT, return the
765last valid position in OBJECT. 769last valid position in OBJECT.
@@ -786,7 +790,7 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
786 790
787 if (! NILP (object)) 791 if (! NILP (object))
788 CHECK_BUFFER (object); 792 CHECK_BUFFER (object);
789 793
790 if (BUFFERP (object) && current_buffer != XBUFFER (object)) 794 if (BUFFERP (object) && current_buffer != XBUFFER (object))
791 { 795 {
792 record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); 796 record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
@@ -794,7 +798,7 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
794 } 798 }
795 799
796 initial_value = Fget_char_property (position, prop, object); 800 initial_value = Fget_char_property (position, prop, object);
797 801
798 if (NILP (limit)) 802 if (NILP (limit))
799 XSETFASTINT (limit, BUF_ZV (current_buffer)); 803 XSETFASTINT (limit, BUF_ZV (current_buffer));
800 else 804 else
@@ -825,7 +829,10 @@ DEFUN ("previous-single-char-property-change",
825 doc: /* Return the position of previous text property or overlay change for a specific property. 829 doc: /* Return the position of previous text property or overlay change for a specific property.
826Scans characters backward from POSITION till it finds 830Scans characters backward from POSITION till it finds
827a change in the PROP property, then returns the position of the change. 831a change in the PROP property, then returns the position of the change.
828The optional third argument OBJECT is the string or buffer to scan. 832If the optional third argument OBJECT is a buffer (or nil, which means
833the current buffer), POSITION is a buffer position (integer or marker).
834If OBJECT is a string, POSITION is a 0-based index into it.
835
829The property values are compared with `eq'. 836The property values are compared with `eq'.
830If the property is constant all the way to the start of OBJECT, return the 837If the property is constant all the way to the start of OBJECT, return the
831first valid position in OBJECT. 838first valid position in OBJECT.
@@ -851,13 +858,13 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
851 858
852 if (! NILP (object)) 859 if (! NILP (object))
853 CHECK_BUFFER (object); 860 CHECK_BUFFER (object);
854 861
855 if (BUFFERP (object) && current_buffer != XBUFFER (object)) 862 if (BUFFERP (object) && current_buffer != XBUFFER (object))
856 { 863 {
857 record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); 864 record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
858 Fset_buffer (object); 865 Fset_buffer (object);
859 } 866 }
860 867
861 if (NILP (limit)) 868 if (NILP (limit))
862 XSETFASTINT (limit, BUF_BEGV (current_buffer)); 869 XSETFASTINT (limit, BUF_BEGV (current_buffer));
863 else 870 else
@@ -870,7 +877,7 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
870 Lisp_Object initial_value = 877 Lisp_Object initial_value =
871 Fget_char_property (make_number (XFASTINT (position) - 1), 878 Fget_char_property (make_number (XFASTINT (position) - 1),
872 prop, object); 879 prop, object);
873 880
874 for (;;) 881 for (;;)
875 { 882 {
876 position = Fprevious_char_property_change (position, limit); 883 position = Fprevious_char_property_change (position, limit);
@@ -903,7 +910,9 @@ DEFUN ("next-property-change", Fnext_property_change,
903 doc: /* Return the position of next property change. 910 doc: /* Return the position of next property change.
904Scans characters forward from POSITION in OBJECT till it finds 911Scans characters forward from POSITION in OBJECT till it finds
905a change in some text property, then returns the position of the change. 912a change in some text property, then returns the position of the change.
906The optional second argument OBJECT is the string or buffer to scan. 913If the optional second argument OBJECT is a buffer (or nil, which means
914the current buffer), POSITION is a buffer position (integer or marker).
915If OBJECT is a string, POSITION is a 0-based index into it.
907Return nil if the property is constant all the way to the end of OBJECT. 916Return nil if the property is constant all the way to the end of OBJECT.
908If the value is non-nil, it is a position greater than POSITION, never equal. 917If the value is non-nil, it is a position greater than POSITION, never equal.
909 918
@@ -930,7 +939,7 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
930 next = i; 939 next = i;
931 else 940 else
932 next = next_interval (i); 941 next = next_interval (i);
933 942
934 if (NULL_INTERVAL_P (next)) 943 if (NULL_INTERVAL_P (next))
935 XSETFASTINT (position, (STRINGP (object) 944 XSETFASTINT (position, (STRINGP (object)
936 ? SCHARS (object) 945 ? SCHARS (object)
@@ -999,7 +1008,9 @@ DEFUN ("next-single-property-change", Fnext_single_property_change,
999 doc: /* Return the position of next property change for a specific property. 1008 doc: /* Return the position of next property change for a specific property.
1000Scans characters forward from POSITION till it finds 1009Scans characters forward from POSITION till it finds
1001a change in the PROP property, then returns the position of the change. 1010a change in the PROP property, then returns the position of the change.
1002The optional third argument OBJECT is the string or buffer to scan. 1011If the optional third argument OBJECT is a buffer (or nil, which means
1012the current buffer), POSITION is a buffer position (integer or marker).
1013If OBJECT is a string, POSITION is a 0-based index into it.
1003The property values are compared with `eq'. 1014The property values are compared with `eq'.
1004Return nil if the property is constant all the way to the end of OBJECT. 1015Return nil if the property is constant all the way to the end of OBJECT.
1005If the value is non-nil, it is a position greater than POSITION, never equal. 1016If the value is non-nil, it is a position greater than POSITION, never equal.
@@ -1024,7 +1035,7 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
1024 1035
1025 here_val = textget (i->plist, prop); 1036 here_val = textget (i->plist, prop);
1026 next = next_interval (i); 1037 next = next_interval (i);
1027 while (! NULL_INTERVAL_P (next) 1038 while (! NULL_INTERVAL_P (next)
1028 && EQ (here_val, textget (next->plist, prop)) 1039 && EQ (here_val, textget (next->plist, prop))
1029 && (NILP (limit) || next->position < XFASTINT (limit))) 1040 && (NILP (limit) || next->position < XFASTINT (limit)))
1030 next = next_interval (next); 1041 next = next_interval (next);
@@ -1046,7 +1057,9 @@ DEFUN ("previous-property-change", Fprevious_property_change,
1046 doc: /* Return the position of previous property change. 1057 doc: /* Return the position of previous property change.
1047Scans characters backwards from POSITION in OBJECT till it finds 1058Scans characters backwards from POSITION in OBJECT till it finds
1048a change in some text property, then returns the position of the change. 1059a change in some text property, then returns the position of the change.
1049The optional second argument OBJECT is the string or buffer to scan. 1060If the optional second argument OBJECT is a buffer (or nil, which means
1061the current buffer), POSITION is a buffer position (integer or marker).
1062If OBJECT is a string, POSITION is a 0-based index into it.
1050Return nil if the property is constant all the way to the start of OBJECT. 1063Return nil if the property is constant all the way to the start of OBJECT.
1051If the value is non-nil, it is a position less than POSITION, never equal. 1064If the value is non-nil, it is a position less than POSITION, never equal.
1052 1065
@@ -1091,7 +1104,9 @@ DEFUN ("previous-single-property-change", Fprevious_single_property_change,
1091 doc: /* Return the position of previous property change for a specific property. 1104 doc: /* Return the position of previous property change for a specific property.
1092Scans characters backward from POSITION till it finds 1105Scans characters backward from POSITION till it finds
1093a change in the PROP property, then returns the position of the change. 1106a change in the PROP property, then returns the position of the change.
1094The optional third argument OBJECT is the string or buffer to scan. 1107If the optional third argument OBJECT is a buffer (or nil, which means
1108the current buffer), POSITION is a buffer position (integer or marker).
1109If OBJECT is a string, POSITION is a 0-based index into it.
1095The property values are compared with `eq'. 1110The property values are compared with `eq'.
1096Return nil if the property is constant all the way to the start of OBJECT. 1111Return nil if the property is constant all the way to the start of OBJECT.
1097If the value is non-nil, it is a position less than POSITION, never equal. 1112If the value is non-nil, it is a position less than POSITION, never equal.
@@ -1142,9 +1157,10 @@ DEFUN ("add-text-properties", Fadd_text_properties,
1142 Sadd_text_properties, 3, 4, 0, 1157 Sadd_text_properties, 3, 4, 0,
1143 doc: /* Add properties to the text from START to END. 1158 doc: /* Add properties to the text from START to END.
1144The third argument PROPERTIES is a property list 1159The third argument PROPERTIES is a property list
1145specifying the property values to add. 1160specifying the property values to add. If the optional fourth argument
1146The optional fourth argument, OBJECT, 1161OBJECT is a buffer (or nil, which means the current buffer),
1147is the string or buffer containing the text. 1162START and END are buffer positions (integers or markers).
1163If OBJECT is a string, START and END are 0-based indices into it.
1148Return t if any property value actually changed, nil otherwise. */) 1164Return t if any property value actually changed, nil otherwise. */)
1149 (start, end, properties, object) 1165 (start, end, properties, object)
1150 Lisp_Object start, end, properties, object; 1166 Lisp_Object start, end, properties, object;
@@ -1251,8 +1267,9 @@ DEFUN ("put-text-property", Fput_text_property,
1251 doc: /* Set one property of the text from START to END. 1267 doc: /* Set one property of the text from START to END.
1252The third and fourth arguments PROPERTY and VALUE 1268The third and fourth arguments PROPERTY and VALUE
1253specify the property to add. 1269specify the property to add.
1254The optional fifth argument, OBJECT, 1270If the optional fifth argument OBJECT is a buffer (or nil, which means
1255is the string or buffer containing the text. */) 1271the current buffer), START and END are buffer positions (integers or
1272markers). If OBJECT is a string, START and END are 0-based indices into it. */)
1256 (start, end, property, value, object) 1273 (start, end, property, value, object)
1257 Lisp_Object start, end, property, value, object; 1274 Lisp_Object start, end, property, value, object;
1258{ 1275{
@@ -1266,9 +1283,9 @@ DEFUN ("set-text-properties", Fset_text_properties,
1266 Sset_text_properties, 3, 4, 0, 1283 Sset_text_properties, 3, 4, 0,
1267 doc: /* Completely replace properties of text from START to END. 1284 doc: /* Completely replace properties of text from START to END.
1268The third argument PROPERTIES is the new property list. 1285The third argument PROPERTIES is the new property list.
1269The optional fourth argument, OBJECT, 1286If the optional fourth argument OBJECT is a buffer (or nil, which means
1270is the string or buffer containing the text. 1287the current buffer), START and END are buffer positions (integers or
1271If OBJECT is omitted or nil, it defaults to the current buffer. 1288markers). If OBJECT is a string, START and END are 0-based indices into it.
1272If PROPERTIES is nil, the effect is to remove all properties from 1289If PROPERTIES is nil, the effect is to remove all properties from
1273the designated part of OBJECT. */) 1290the designated part of OBJECT. */)
1274 (start, end, properties, object) 1291 (start, end, properties, object)
@@ -1436,9 +1453,12 @@ DEFUN ("remove-text-properties", Fremove_text_properties,
1436The third argument PROPERTIES is a property list 1453The third argument PROPERTIES is a property list
1437whose property names specify the properties to remove. 1454whose property names specify the properties to remove.
1438\(The values stored in PROPERTIES are ignored.) 1455\(The values stored in PROPERTIES are ignored.)
1439The optional fourth argument, OBJECT, 1456If the optional fourth argument OBJECT is a buffer (or nil, which means
1440is the string or buffer containing the text. 1457the current buffer), START and END are buffer positions (integers or
1441Return t if any property was actually removed, nil otherwise. */) 1458markers). If OBJECT is a string, START and END are 0-based indices into it.
1459Return t if any property was actually removed, nil otherwise.
1460
1461Use set-text-properties if you want to remove all text properties. */)
1442 (start, end, properties, object) 1462 (start, end, properties, object)
1443 Lisp_Object start, end, properties, object; 1463 Lisp_Object start, end, properties, object;
1444{ 1464{
@@ -1521,8 +1541,9 @@ DEFUN ("remove-list-of-text-properties", Fremove_list_of_text_properties,
1521 Sremove_list_of_text_properties, 3, 4, 0, 1541 Sremove_list_of_text_properties, 3, 4, 0,
1522 doc: /* Remove some properties from text from START to END. 1542 doc: /* Remove some properties from text from START to END.
1523The third argument LIST-OF-PROPERTIES is a list of property names to remove. 1543The third argument LIST-OF-PROPERTIES is a list of property names to remove.
1524The optional fourth argument, OBJECT, 1544If the optional fourth argument OBJECT is a buffer (or nil, which means
1525is the string or buffer containing the text, defaulting to the current buffer. 1545the current buffer), START and END are buffer positions (integers or
1546markers). If OBJECT is a string, START and END are 0-based indices into it.
1526Return t if any property was actually removed, nil otherwise. */) 1547Return t if any property was actually removed, nil otherwise. */)
1527 (start, end, list_of_properties, object) 1548 (start, end, list_of_properties, object)
1528 Lisp_Object start, end, list_of_properties, object; 1549 Lisp_Object start, end, list_of_properties, object;
@@ -1609,8 +1630,9 @@ DEFUN ("text-property-any", Ftext_property_any,
1609 doc: /* Check text from START to END for property PROPERTY equalling VALUE. 1630 doc: /* Check text from START to END for property PROPERTY equalling VALUE.
1610If so, return the position of the first character whose property PROPERTY 1631If so, return the position of the first character whose property PROPERTY
1611is `eq' to VALUE. Otherwise return nil. 1632is `eq' to VALUE. Otherwise return nil.
1612The optional fifth argument, OBJECT, is the string or buffer 1633If the optional fifth argument OBJECT is a buffer (or nil, which means
1613containing the text. */) 1634the current buffer), START and END are buffer positions (integers or
1635markers). If OBJECT is a string, START and END are 0-based indices into it. */)
1614 (start, end, property, value, object) 1636 (start, end, property, value, object)
1615 Lisp_Object start, end, property, value, object; 1637 Lisp_Object start, end, property, value, object;
1616{ 1638{
@@ -1645,8 +1667,9 @@ DEFUN ("text-property-not-all", Ftext_property_not_all,
1645 doc: /* Check text from START to END for property PROPERTY not equalling VALUE. 1667 doc: /* Check text from START to END for property PROPERTY not equalling VALUE.
1646If so, return the position of the first character whose property PROPERTY 1668If so, return the position of the first character whose property PROPERTY
1647is not `eq' to VALUE. Otherwise, return nil. 1669is not `eq' to VALUE. Otherwise, return nil.
1648The optional fifth argument, OBJECT, is the string or buffer 1670If the optional fifth argument OBJECT is a buffer (or nil, which means
1649containing the text. */) 1671the current buffer), START and END are buffer positions (integers or
1672markers). If OBJECT is a string, START and END are 0-based indices into it. */)
1650 (start, end, property, value, object) 1673 (start, end, property, value, object)
1651 Lisp_Object start, end, property, value, object; 1674 Lisp_Object start, end, property, value, object;
1652{ 1675{
@@ -1850,23 +1873,23 @@ text_property_list (object, start, end, prop)
1850 Lisp_Object result; 1873 Lisp_Object result;
1851 1874
1852 result = Qnil; 1875 result = Qnil;
1853 1876
1854 i = validate_interval_range (object, &start, &end, soft); 1877 i = validate_interval_range (object, &start, &end, soft);
1855 if (!NULL_INTERVAL_P (i)) 1878 if (!NULL_INTERVAL_P (i))
1856 { 1879 {
1857 int s = XINT (start); 1880 int s = XINT (start);
1858 int e = XINT (end); 1881 int e = XINT (end);
1859 1882
1860 while (s < e) 1883 while (s < e)
1861 { 1884 {
1862 int interval_end, len; 1885 int interval_end, len;
1863 Lisp_Object plist; 1886 Lisp_Object plist;
1864 1887
1865 interval_end = i->position + LENGTH (i); 1888 interval_end = i->position + LENGTH (i);
1866 if (interval_end > e) 1889 if (interval_end > e)
1867 interval_end = e; 1890 interval_end = e;
1868 len = interval_end - s; 1891 len = interval_end - s;
1869 1892
1870 plist = i->plist; 1893 plist = i->plist;
1871 1894
1872 if (!NILP (prop)) 1895 if (!NILP (prop))
@@ -1882,14 +1905,14 @@ text_property_list (object, start, end, prop)
1882 Fcons (make_number (s + len), 1905 Fcons (make_number (s + len),
1883 Fcons (plist, Qnil))), 1906 Fcons (plist, Qnil))),
1884 result); 1907 result);
1885 1908
1886 i = next_interval (i); 1909 i = next_interval (i);
1887 if (NULL_INTERVAL_P (i)) 1910 if (NULL_INTERVAL_P (i))
1888 break; 1911 break;
1889 s = i->position; 1912 s = i->position;
1890 } 1913 }
1891 } 1914 }
1892 1915
1893 return result; 1916 return result;
1894} 1917}
1895 1918
@@ -1906,18 +1929,18 @@ add_text_properties_from_list (object, list, delta)
1906{ 1929{
1907 struct gcpro gcpro1, gcpro2; 1930 struct gcpro gcpro1, gcpro2;
1908 int modified_p = 0; 1931 int modified_p = 0;
1909 1932
1910 GCPRO2 (list, object); 1933 GCPRO2 (list, object);
1911 1934
1912 for (; CONSP (list); list = XCDR (list)) 1935 for (; CONSP (list); list = XCDR (list))
1913 { 1936 {
1914 Lisp_Object item, start, end, plist, tem; 1937 Lisp_Object item, start, end, plist, tem;
1915 1938
1916 item = XCAR (list); 1939 item = XCAR (list);
1917 start = make_number (XINT (XCAR (item)) + XINT (delta)); 1940 start = make_number (XINT (XCAR (item)) + XINT (delta));
1918 end = make_number (XINT (XCAR (XCDR (item))) + XINT (delta)); 1941 end = make_number (XINT (XCAR (XCDR (item))) + XINT (delta));
1919 plist = XCAR (XCDR (XCDR (item))); 1942 plist = XCAR (XCDR (XCDR (item)));
1920 1943
1921 tem = Fadd_text_properties (start, end, plist, object); 1944 tem = Fadd_text_properties (start, end, plist, object);
1922 if (!NILP (tem)) 1945 if (!NILP (tem))
1923 modified_p = 1; 1946 modified_p = 1;
@@ -1940,7 +1963,7 @@ extend_property_ranges (list, old_end, new_end)
1940 for (; CONSP (list); list = XCDR (list)) 1963 for (; CONSP (list); list = XCDR (list))
1941 { 1964 {
1942 Lisp_Object item, end; 1965 Lisp_Object item, end;
1943 1966
1944 item = XCAR (list); 1967 item = XCAR (list);
1945 end = XCAR (XCDR (item)); 1968 end = XCAR (XCDR (item));
1946 1969
@@ -2038,7 +2061,7 @@ verify_interval_modification (buf, start, end)
2038 if (! NULL_INTERVAL_P (i)) 2061 if (! NULL_INTERVAL_P (i))
2039 { 2062 {
2040 after = textget (i->plist, Qread_only); 2063 after = textget (i->plist, Qread_only);
2041 2064
2042 /* If interval I is read-only and read-only is 2065 /* If interval I is read-only and read-only is
2043 front-sticky, inhibit insertion. 2066 front-sticky, inhibit insertion.
2044 Check for read-only as well as category. */ 2067 Check for read-only as well as category. */
@@ -2058,7 +2081,7 @@ verify_interval_modification (buf, start, end)
2058 if (! NULL_INTERVAL_P (prev)) 2081 if (! NULL_INTERVAL_P (prev))
2059 { 2082 {
2060 before = textget (prev->plist, Qread_only); 2083 before = textget (prev->plist, Qread_only);
2061 2084
2062 /* If interval PREV is read-only and read-only isn't 2085 /* If interval PREV is read-only and read-only isn't
2063 rear-nonsticky, inhibit insertion. 2086 rear-nonsticky, inhibit insertion.
2064 Check for read-only as well as category. */ 2087 Check for read-only as well as category. */
@@ -2078,7 +2101,7 @@ verify_interval_modification (buf, start, end)
2078 else if (! NULL_INTERVAL_P (i)) 2101 else if (! NULL_INTERVAL_P (i))
2079 { 2102 {
2080 after = textget (i->plist, Qread_only); 2103 after = textget (i->plist, Qread_only);
2081 2104
2082 /* If interval I is read-only and read-only is 2105 /* If interval I is read-only and read-only is
2083 front-sticky, inhibit insertion. 2106 front-sticky, inhibit insertion.
2084 Check for read-only as well as category. */ 2107 Check for read-only as well as category. */
@@ -2206,7 +2229,7 @@ rear-nonsticky properties of the character overrides NONSTICKINESS. */);
2206 interval_insert_behind_hooks = Qnil; 2229 interval_insert_behind_hooks = Qnil;
2207 interval_insert_in_front_hooks = Qnil; 2230 interval_insert_in_front_hooks = Qnil;
2208 2231
2209 2232
2210 /* Common attributes one might give text */ 2233 /* Common attributes one might give text */
2211 2234
2212 staticpro (&Qforeground); 2235 staticpro (&Qforeground);
@@ -2268,4 +2291,3 @@ rear-nonsticky properties of the character overrides NONSTICKINESS. */);
2268/* defsubr (&Serase_text_properties); */ 2291/* defsubr (&Serase_text_properties); */
2269/* defsubr (&Scopy_text_properties); */ 2292/* defsubr (&Scopy_text_properties); */
2270} 2293}
2271