diff options
Diffstat (limited to 'src/textprop.c')
| -rw-r--r-- | src/textprop.c | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/src/textprop.c b/src/textprop.c index e5d4fe06c60..282ae11d4ac 100644 --- a/src/textprop.c +++ b/src/textprop.c | |||
| @@ -226,7 +226,7 @@ validate_plist (Lisp_Object list) | |||
| 226 | return list; | 226 | return list; |
| 227 | } | 227 | } |
| 228 | 228 | ||
| 229 | return Fcons (list, Fcons (Qnil, Qnil)); | 229 | return list2 (list, Qnil); |
| 230 | } | 230 | } |
| 231 | 231 | ||
| 232 | /* Return true if interval I has all the properties, | 232 | /* Return true if interval I has all the properties, |
| @@ -436,16 +436,14 @@ add_properties (Lisp_Object plist, INTERVAL i, Lisp_Object object, | |||
| 436 | if (set_type == TEXT_PROPERTY_PREPEND) | 436 | if (set_type == TEXT_PROPERTY_PREPEND) |
| 437 | Fsetcar (this_cdr, Fcons (val1, Fcar (this_cdr))); | 437 | Fsetcar (this_cdr, Fcons (val1, Fcar (this_cdr))); |
| 438 | else | 438 | else |
| 439 | nconc2 (Fcar (this_cdr), Fcons (val1, Qnil)); | 439 | nconc2 (Fcar (this_cdr), list1 (val1)); |
| 440 | else { | 440 | else { |
| 441 | /* The previous value is a single value, so make it | 441 | /* The previous value is a single value, so make it |
| 442 | into a list. */ | 442 | into a list. */ |
| 443 | if (set_type == TEXT_PROPERTY_PREPEND) | 443 | if (set_type == TEXT_PROPERTY_PREPEND) |
| 444 | Fsetcar (this_cdr, | 444 | Fsetcar (this_cdr, list2 (val1, Fcar (this_cdr))); |
| 445 | Fcons (val1, Fcons (Fcar (this_cdr), Qnil))); | ||
| 446 | else | 445 | else |
| 447 | Fsetcar (this_cdr, | 446 | Fsetcar (this_cdr, list2 (Fcar (this_cdr), val1)); |
| 448 | Fcons (Fcar (this_cdr), Fcons (val1, Qnil))); | ||
| 449 | } | 447 | } |
| 450 | } | 448 | } |
| 451 | changed = 1; | 449 | changed = 1; |
| @@ -1308,9 +1306,7 @@ the current buffer), START and END are buffer positions (integers or | |||
| 1308 | markers). If OBJECT is a string, START and END are 0-based indices into it. */) | 1306 | markers). If OBJECT is a string, START and END are 0-based indices into it. */) |
| 1309 | (Lisp_Object start, Lisp_Object end, Lisp_Object property, Lisp_Object value, Lisp_Object object) | 1307 | (Lisp_Object start, Lisp_Object end, Lisp_Object property, Lisp_Object value, Lisp_Object object) |
| 1310 | { | 1308 | { |
| 1311 | Fadd_text_properties (start, end, | 1309 | Fadd_text_properties (start, end, list2 (property, value), object); |
| 1312 | Fcons (property, Fcons (value, Qnil)), | ||
| 1313 | object); | ||
| 1314 | return Qnil; | 1310 | return Qnil; |
| 1315 | } | 1311 | } |
| 1316 | 1312 | ||
| @@ -1344,11 +1340,10 @@ into it. */) | |||
| 1344 | (Lisp_Object start, Lisp_Object end, Lisp_Object face, | 1340 | (Lisp_Object start, Lisp_Object end, Lisp_Object face, |
| 1345 | Lisp_Object appendp, Lisp_Object object) | 1341 | Lisp_Object appendp, Lisp_Object object) |
| 1346 | { | 1342 | { |
| 1347 | add_text_properties_1 (start, end, | 1343 | add_text_properties_1 (start, end, list2 (Qface, face), object, |
| 1348 | Fcons (Qface, Fcons (face, Qnil)), | 1344 | (NILP (appendp) |
| 1349 | object, | 1345 | ? TEXT_PROPERTY_PREPEND |
| 1350 | NILP (appendp)? TEXT_PROPERTY_PREPEND: | 1346 | : TEXT_PROPERTY_APPEND)); |
| 1351 | TEXT_PROPERTY_APPEND); | ||
| 1352 | return Qnil; | 1347 | return Qnil; |
| 1353 | } | 1348 | } |
| 1354 | 1349 | ||
| @@ -1929,7 +1924,7 @@ copy_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object src, Lisp_ | |||
| 1929 | { | 1924 | { |
| 1930 | if (EQ (Fcar (plist), prop)) | 1925 | if (EQ (Fcar (plist), prop)) |
| 1931 | { | 1926 | { |
| 1932 | plist = Fcons (prop, Fcons (Fcar (Fcdr (plist)), Qnil)); | 1927 | plist = list2 (prop, Fcar (Fcdr (plist))); |
| 1933 | break; | 1928 | break; |
| 1934 | } | 1929 | } |
| 1935 | plist = Fcdr (Fcdr (plist)); | 1930 | plist = Fcdr (Fcdr (plist)); |
| @@ -1938,10 +1933,8 @@ copy_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object src, Lisp_ | |||
| 1938 | { | 1933 | { |
| 1939 | /* Must defer modifications to the interval tree in case src | 1934 | /* Must defer modifications to the interval tree in case src |
| 1940 | and dest refer to the same string or buffer. */ | 1935 | and dest refer to the same string or buffer. */ |
| 1941 | stuff = Fcons (Fcons (make_number (p), | 1936 | stuff = Fcons (list3 (make_number (p), make_number (p + len), plist), |
| 1942 | Fcons (make_number (p + len), | 1937 | stuff); |
| 1943 | Fcons (plist, Qnil))), | ||
| 1944 | stuff); | ||
| 1945 | } | 1938 | } |
| 1946 | 1939 | ||
| 1947 | i = next_interval (i); | 1940 | i = next_interval (i); |
| @@ -2007,14 +2000,13 @@ text_property_list (Lisp_Object object, Lisp_Object start, Lisp_Object end, Lisp | |||
| 2007 | for (; CONSP (plist); plist = Fcdr (XCDR (plist))) | 2000 | for (; CONSP (plist); plist = Fcdr (XCDR (plist))) |
| 2008 | if (EQ (XCAR (plist), prop)) | 2001 | if (EQ (XCAR (plist), prop)) |
| 2009 | { | 2002 | { |
| 2010 | plist = Fcons (prop, Fcons (Fcar (XCDR (plist)), Qnil)); | 2003 | plist = list2 (prop, Fcar (XCDR (plist))); |
| 2011 | break; | 2004 | break; |
| 2012 | } | 2005 | } |
| 2013 | 2006 | ||
| 2014 | if (!NILP (plist)) | 2007 | if (!NILP (plist)) |
| 2015 | result = Fcons (Fcons (make_number (s), | 2008 | result = Fcons (list3 (make_number (s), make_number (s + len), |
| 2016 | Fcons (make_number (s + len), | 2009 | plist), |
| 2017 | Fcons (plist, Qnil))), | ||
| 2018 | result); | 2010 | result); |
| 2019 | 2011 | ||
| 2020 | i = next_interval (i); | 2012 | i = next_interval (i); |
| @@ -2343,8 +2335,8 @@ inherits it if NONSTICKINESS is nil. The `front-sticky' and | |||
| 2343 | /* Text properties `syntax-table'and `display' should be nonsticky | 2335 | /* Text properties `syntax-table'and `display' should be nonsticky |
| 2344 | by default. */ | 2336 | by default. */ |
| 2345 | Vtext_property_default_nonsticky | 2337 | Vtext_property_default_nonsticky |
| 2346 | = Fcons (Fcons (intern_c_string ("syntax-table"), Qt), | 2338 | = list2 (Fcons (intern_c_string ("syntax-table"), Qt), |
| 2347 | Fcons (Fcons (intern_c_string ("display"), Qt), Qnil)); | 2339 | Fcons (intern_c_string ("display"), Qt)); |
| 2348 | 2340 | ||
| 2349 | staticpro (&interval_insert_behind_hooks); | 2341 | staticpro (&interval_insert_behind_hooks); |
| 2350 | staticpro (&interval_insert_in_front_hooks); | 2342 | staticpro (&interval_insert_in_front_hooks); |