comparison src/buffer.c @ 9211:c7bfa0da167b

(Foverlay_get): Handle `category' property on overlay.
author Richard M. Stallman <rms@gnu.org>
date Sat, 01 Oct 1994 21:02:59 +0000
parents 8f966cc4652b
children 582534b6e763
comparison
equal deleted inserted replaced
9210:8d35fd88194d 9211:c7bfa0da167b
2157 DEFUN ("overlay-get", Foverlay_get, Soverlay_get, 2, 2, 0, 2157 DEFUN ("overlay-get", Foverlay_get, Soverlay_get, 2, 2, 0,
2158 "Get the property of overlay OVERLAY with property name NAME.") 2158 "Get the property of overlay OVERLAY with property name NAME.")
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
2166 fallback = Qnil;
2165 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;
2172 } 2174 else if (EQ (XCONS (plist)->car, Qcategory))
2173 2175 {
2174 return Qnil; 2176 Lisp_Object tem;
2177 tem = Fcar (Fcdr (plist));
2178 if (SYMBOLP (tem))
2179 fallback = Fget (tem, prop);
2180 }
2181 }
2182
2183 return fallback;
2175 } 2184 }
2176 2185
2177 DEFUN ("overlay-put", Foverlay_put, Soverlay_put, 3, 3, 0, 2186 DEFUN ("overlay-put", Foverlay_put, Soverlay_put, 3, 3, 0,
2178 "Set one property of overlay OVERLAY: give property PROP value VALUE.") 2187 "Set one property of overlay OVERLAY: give property PROP value VALUE.")
2179 (overlay, prop, value) 2188 (overlay, prop, value)