aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorRichard M. Stallman1994-10-01 21:02:59 +0000
committerRichard M. Stallman1994-10-01 21:02:59 +0000
commitcab4777e7833fe08c8834743bf0d05406bd1547a (patch)
treeb6516041dea6cc636addf0e8276c51f52f97bf4a /src/buffer.c
parent6024daef5f52a3f7f53688453c2fd99f13bf13e2 (diff)
downloademacs-cab4777e7833fe08c8834743bf0d05406bd1547a.tar.gz
emacs-cab4777e7833fe08c8834743bf0d05406bd1547a.zip
(Foverlay_get): Handle `category' property on overlay.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 929d7ce47c4..0e0ca213907 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2159,19 +2159,28 @@ DEFUN ("overlay-get", Foverlay_get, Soverlay_get, 2, 2, 0,
2159 (overlay, prop) 2159 (overlay, prop)
2160 Lisp_Object overlay, prop; 2160 Lisp_Object overlay, prop;
2161{ 2161{
2162 Lisp_Object plist; 2162 Lisp_Object plist, fallback;
2163 2163
2164 CHECK_OVERLAY (overlay, 0); 2164 CHECK_OVERLAY (overlay, 0);
2165 2165
2166 fallback = Qnil;
2167
2166 for (plist = Fcdr_safe (XCONS (overlay)->cdr); 2168 for (plist = Fcdr_safe (XCONS (overlay)->cdr);
2167 CONSP (plist) && CONSP (XCONS (plist)->cdr); 2169 CONSP (plist) && CONSP (XCONS (plist)->cdr);
2168 plist = XCONS (XCONS (plist)->cdr)->cdr) 2170 plist = XCONS (XCONS (plist)->cdr)->cdr)
2169 { 2171 {
2170 if (EQ (XCONS (plist)->car, prop)) 2172 if (EQ (XCONS (plist)->car, prop))
2171 return XCONS (XCONS (plist)->cdr)->car; 2173 return XCONS (XCONS (plist)->cdr)->car;
2174 else if (EQ (XCONS (plist)->car, Qcategory))
2175 {
2176 Lisp_Object tem;
2177 tem = Fcar (Fcdr (plist));
2178 if (SYMBOLP (tem))
2179 fallback = Fget (tem, prop);
2180 }
2172 } 2181 }
2173 2182
2174 return Qnil; 2183 return fallback;
2175} 2184}
2176 2185
2177DEFUN ("overlay-put", Foverlay_put, Soverlay_put, 3, 3, 0, 2186DEFUN ("overlay-put", Foverlay_put, Soverlay_put, 3, 3, 0,