aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorJim Blandy1993-05-24 20:57:32 +0000
committerJim Blandy1993-05-24 20:57:32 +0000
commit883047b99c85012855f53abeb2733f742ff10cf8 (patch)
tree8d20cbe0e04ddd128bfa69558f0ce517af9a7067 /src/buffer.c
parentaf395ec10ec6fa01978817062bac69a45c51ba41 (diff)
downloademacs-883047b99c85012855f53abeb2733f742ff10cf8.tar.gz
emacs-883047b99c85012855f53abeb2733f742ff10cf8.zip
* buffer.c (Fmake_overlay): Put beg and end in the
right order. (Fmove_overlay): If beg and end are markers, make sure they're in the right buffer.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c44
1 files changed, 26 insertions, 18 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 3a90154992d..b50e7d0f1b0 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1489,28 +1489,28 @@ BEG and END may be integers or markers.")
1489 1489
1490 if (NILP (buffer)) 1490 if (NILP (buffer))
1491 XSET (buffer, Lisp_Buffer, current_buffer); 1491 XSET (buffer, Lisp_Buffer, current_buffer);
1492 CHECK_BUFFER (buffer, 2); 1492 else
1493 CHECK_BUFFER (buffer, 2);
1494 if (MARKERP (beg)
1495 && ! EQ (Fmarker_buffer (beg), buffer))
1496 error ("Marker points into wrong buffer");
1497 if (MARKERP (end)
1498 && ! EQ (Fmarker_buffer (end), buffer))
1499 error ("Marker points into wrong buffer");
1493 1500
1494 b = XBUFFER (buffer); 1501 CHECK_NUMBER_COERCE_MARKER (beg, 1);
1502 CHECK_NUMBER_COERCE_MARKER (end, 1);
1495 1503
1496 if (MARKERP (beg)) 1504 if (XINT (beg) > XINT (end))
1497 {
1498 if (! EQ (Fmarker_buffer (beg), buffer))
1499 error ("Marker points into wrong buffer");
1500 else
1501 beg = Fcopy_marker (beg);
1502 }
1503 else
1504 beg = Fset_marker (Fmake_marker (), beg, buffer);
1505 if (MARKERP (end))
1506 { 1505 {
1507 if (! EQ (Fmarker_buffer (end), buffer)) 1506 Lisp_Object temp = beg;
1508 error ("Marker points into wrong buffer"); 1507 beg = end; end = temp;
1509 else
1510 end = Fcopy_marker (end);
1511 } 1508 }
1512 else 1509
1513 end = Fset_marker (Fmake_marker (), end, buffer); 1510 b = XBUFFER (buffer);
1511
1512 beg = Fset_marker (Fmake_marker (), beg, buffer);
1513 end = Fset_marker (Fmake_marker (), end, buffer);
1514 1514
1515 overlay = Fcons (Fcons (beg, end), Qnil); 1515 overlay = Fcons (Fcons (beg, end), Qnil);
1516 XSETTYPE (overlay, Lisp_Overlay); 1516 XSETTYPE (overlay, Lisp_Overlay);
@@ -1547,6 +1547,14 @@ buffer.")
1547 if (NILP (buffer)) 1547 if (NILP (buffer))
1548 XSET (buffer, Lisp_Buffer, current_buffer); 1548 XSET (buffer, Lisp_Buffer, current_buffer);
1549 CHECK_BUFFER (buffer, 3); 1549 CHECK_BUFFER (buffer, 3);
1550
1551 if (MARKERP (beg)
1552 && ! EQ (Fmarker_buffer (beg), buffer))
1553 error ("Marker points into wrong buffer");
1554 if (MARKERP (end)
1555 && ! EQ (Fmarker_buffer (end), buffer))
1556 error ("Marker points into wrong buffer");
1557
1550 CHECK_NUMBER_COERCE_MARKER (beg, 1); 1558 CHECK_NUMBER_COERCE_MARKER (beg, 1);
1551 CHECK_NUMBER_COERCE_MARKER (end, 1); 1559 CHECK_NUMBER_COERCE_MARKER (end, 1);
1552 1560