Mercurial > emacs
comparison src/buffer.c @ 2791:4f234fbfb02c
* buffer.c (Fmove_overlay): If the overlay is in no buffer and the
BUFFER argument has been omitted, put it in the current buffer,
for symmetry with move-marker.
* buffer.c (Fdelete_overlay): Make the overlay's markers point
nowhere, not at 1. Do this after calling redisplay_region, so
that code knows what section has changed.
| author | Jim Blandy <jimb@redhat.com> |
|---|---|
| date | Fri, 14 May 1993 22:57:10 +0000 |
| parents | 995c6e665599 |
| children | 8c43cc245dd2 |
comparison
equal
deleted
inserted
replaced
| 2790:cf431814ce6a | 2791:4f234fbfb02c |
|---|---|
| 1504 return overlay; | 1504 return overlay; |
| 1505 } | 1505 } |
| 1506 | 1506 |
| 1507 DEFUN ("move-overlay", Fmove_overlay, Smove_overlay, 3, 4, 0, | 1507 DEFUN ("move-overlay", Fmove_overlay, Smove_overlay, 3, 4, 0, |
| 1508 "Set the endpoints of OVERLAY to BEG and END in BUFFER.\n\ | 1508 "Set the endpoints of OVERLAY to BEG and END in BUFFER.\n\ |
| 1509 If BUFFER is omitted, leave OVERLAY in the same buffer it inhabits now.") | 1509 If BUFFER is omitted, leave OVERLAY in the same buffer it inhabits now.\n\ |
| 1510 If BUFFER is omitted, and OVERLAY is in no buffer, put it in the current\n\ | |
| 1511 buffer.") | |
| 1510 (overlay, beg, end, buffer) | 1512 (overlay, beg, end, buffer) |
| 1511 Lisp_Object overlay, beg, end, buffer; | 1513 Lisp_Object overlay, beg, end, buffer; |
| 1512 { | 1514 { |
| 1513 struct buffer *b; | 1515 struct buffer *b; |
| 1514 | 1516 |
| 1515 CHECK_OVERLAY (overlay, 0); | 1517 CHECK_OVERLAY (overlay, 0); |
| 1516 if (NILP (buffer)) | 1518 if (NILP (buffer)) |
| 1517 buffer = Fmarker_buffer (OVERLAY_START (overlay)); | 1519 buffer = Fmarker_buffer (OVERLAY_START (overlay)); |
| 1520 if (NILP (buffer)) | |
| 1521 XSET (buffer, Lisp_Buffer, current_buffer); | |
| 1518 CHECK_BUFFER (buffer, 3); | 1522 CHECK_BUFFER (buffer, 3); |
| 1519 CHECK_NUMBER_COERCE_MARKER (beg, 1); | 1523 CHECK_NUMBER_COERCE_MARKER (beg, 1); |
| 1520 CHECK_NUMBER_COERCE_MARKER (end, 1); | 1524 CHECK_NUMBER_COERCE_MARKER (end, 1); |
| 1521 | 1525 |
| 1522 if (XINT (beg) > XINT (end)) | 1526 if (XINT (beg) > XINT (end)) |
| 1579 b = XBUFFER (Fmarker_buffer (OVERLAY_START (overlay))); | 1583 b = XBUFFER (Fmarker_buffer (OVERLAY_START (overlay))); |
| 1580 | 1584 |
| 1581 b->overlays_before = Fdelq (overlay, b->overlays_before); | 1585 b->overlays_before = Fdelq (overlay, b->overlays_before); |
| 1582 b->overlays_after = Fdelq (overlay, b->overlays_after); | 1586 b->overlays_after = Fdelq (overlay, b->overlays_after); |
| 1583 | 1587 |
| 1584 Fset_marker (OVERLAY_START (overlay), 1, Qnil); | |
| 1585 Fset_marker (OVERLAY_END (overlay), 1, Qnil); | |
| 1586 | |
| 1587 redisplay_region (b, | 1588 redisplay_region (b, |
| 1588 OVERLAY_POSITION (OVERLAY_START (overlay)), | 1589 OVERLAY_POSITION (OVERLAY_START (overlay)), |
| 1589 OVERLAY_POSITION (OVERLAY_END (overlay))); | 1590 OVERLAY_POSITION (OVERLAY_END (overlay))); |
| 1591 | |
| 1592 Fset_marker (OVERLAY_START (overlay), Qnil, Qnil); | |
| 1593 Fset_marker (OVERLAY_END (overlay), Qnil, Qnil); | |
| 1590 | 1594 |
| 1591 return Qnil; | 1595 return Qnil; |
| 1592 } | 1596 } |
| 1593 | 1597 |
| 1594 /* Overlay dissection functions. */ | 1598 /* Overlay dissection functions. */ |
