aboutsummaryrefslogtreecommitdiffstats
path: root/src/textprop.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/textprop.c')
-rw-r--r--src/textprop.c42
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
1308markers). If OBJECT is a string, START and END are 0-based indices into it. */) 1306markers). 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);