diff options
| author | Colin Walters | 2002-06-08 20:25:17 +0000 |
|---|---|---|
| committer | Colin Walters | 2002-06-08 20:25:17 +0000 |
| commit | 948fe32d3941da4258aa6b2edce62d4ef43c9b78 (patch) | |
| tree | 8bd095c0bca69bbe89014422080dc41fe7f87e6e /src/intervals.c | |
| parent | 14112a3fb00a990a495ac9418519000e0d33223b (diff) | |
| download | emacs-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.c | 29 |
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 | |||
| 1819 | Lisp_Object | ||
| 1820 | lookup_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 | ||