Mercurial > emacs
comparison src/alloc.c @ 2782:683f4472f1c8
* lisp.h (Lisp_Overlay): New tag.
(OVERLAYP): New predicate.
(CHECK_OVERLAY): New type-checker.
(Qoverlayp): New extern declaration.
* buffer.c (Foverlayp): New function.
(Qoverlayp): New atom.
(overlays_at, recenter_overlay_lists): Abort if we encounter an
invalid overlay.
(syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp.
(Fdelete_overlay): Set the overlay's markers to point nowhere.
Use CHECK_OVERLAY instead of signalling a special error.
(Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of
signalling a special error.
(Foverlay_get): Use CHECK_OVERLAY.
* fns.c (internal_equal): Define this for overlays.
* buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP.
* print.c (print): Give overlays their own print syntax.
* alloc.c (mark_object): Treat overlays like conses.
| author | Jim Blandy <jimb@redhat.com> |
|---|---|
| date | Fri, 14 May 1993 14:43:00 +0000 |
| parents | 7ba4316ae840 |
| children | e94a593c3952 |
comparison
equal
deleted
inserted
replaced
| 2781:fde05936aebb | 2782:683f4472f1c8 |
|---|---|
| 1607 break; | 1607 break; |
| 1608 | 1608 |
| 1609 case Lisp_Cons: | 1609 case Lisp_Cons: |
| 1610 case Lisp_Buffer_Local_Value: | 1610 case Lisp_Buffer_Local_Value: |
| 1611 case Lisp_Some_Buffer_Local_Value: | 1611 case Lisp_Some_Buffer_Local_Value: |
| 1612 case Lisp_Overlay: | |
| 1612 { | 1613 { |
| 1613 register struct Lisp_Cons *ptr = XCONS (obj); | 1614 register struct Lisp_Cons *ptr = XCONS (obj); |
| 1614 if (XMARKBIT (ptr->car)) break; | 1615 if (XMARKBIT (ptr->car)) break; |
| 1615 XMARK (ptr->car); | 1616 XMARK (ptr->car); |
| 1616 /* If the cdr is nil, avoid recursion for the car. */ | 1617 /* If the cdr is nil, avoid recursion for the car. */ |
