aboutsummaryrefslogtreecommitdiffstats
path: root/src/intervals.c
diff options
context:
space:
mode:
authorColin Walters2002-06-08 20:25:17 +0000
committerColin Walters2002-06-08 20:25:17 +0000
commit948fe32d3941da4258aa6b2edce62d4ef43c9b78 (patch)
tree8bd095c0bca69bbe89014422080dc41fe7f87e6e /src/intervals.c
parent14112a3fb00a990a495ac9418519000e0d33223b (diff)
downloademacs-948fe32d3941da4258aa6b2edce62d4ef43c9b78.tar.gz
emacs-948fe32d3941da4258aa6b2edce62d4ef43c9b78.zip
(lookup_char_property): New function for looking up overlay and text
properties, created from textget. (textget): Use it.
Diffstat (limited to 'src/intervals.c')
-rw-r--r--src/intervals.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/intervals.c b/src/intervals.c
index 2aaaad14e70..11a8eccfdfe 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1813,8 +1813,16 @@ textget (plist, prop)
1813 Lisp_Object plist; 1813 Lisp_Object plist;
1814 register Lisp_Object prop; 1814 register Lisp_Object prop;
1815{ 1815{
1816 register Lisp_Object tail, fallback; 1816 lookup_char_property (plist, prop, 1);
1817 fallback = Qnil; 1817}
1818
1819Lisp_Object
1820lookup_char_property (plist, prop, textprop)
1821 Lisp_Object plist;
1822 register Lisp_Object prop;
1823 int textprop;
1824{
1825 register Lisp_Object tail, fallback = Qnil;
1818 1826
1819 for (tail = plist; !NILP (tail); tail = Fcdr (Fcdr (tail))) 1827 for (tail = plist; !NILP (tail); tail = Fcdr (Fcdr (tail)))
1820 { 1828 {
@@ -1832,9 +1840,20 @@ textget (plist, prop)
1832 1840
1833 if (! NILP (fallback)) 1841 if (! NILP (fallback))
1834 return fallback; 1842 return fallback;
1835 if (CONSP (Vdefault_text_properties)) 1843 /* Check for alternative properties */
1836 return Fplist_get (Vdefault_text_properties, prop); 1844 tail = Fassq (prop, Vchar_property_alias_alist);
1837 return Qnil; 1845 if (NILP (tail))
1846 return tail;
1847 tail = XCDR (tail);
1848 for (; NILP (fallback) && !NILP (tail); tail = XCDR (tail))
1849 {
1850 if (!CONSP (tail))
1851 wrong_type_argument (Qlistp, tail);
1852 fallback = Fplist_get (plist, XCAR (tail));
1853 }
1854 if (textprop && NILP (fallback) && CONSP (Vdefault_text_properties))
1855 fallback = Fplist_get (Vdefault_text_properties, prop);
1856 return fallback;
1838} 1857}
1839 1858
1840 1859