comparison src/buffer.c @ 3031:5c96dfc52433

* 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.
author Jim Blandy <jimb@redhat.com>
date Mon, 24 May 1993 20:57:32 +0000
parents e94a593c3952
children a3007f83650c
comparison
equal deleted inserted replaced
3030:2c5ea1c98256 3031:5c96dfc52433
1487 Lisp_Object overlay; 1487 Lisp_Object overlay;
1488 struct buffer *b; 1488 struct buffer *b;
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");
1500
1501 CHECK_NUMBER_COERCE_MARKER (beg, 1);
1502 CHECK_NUMBER_COERCE_MARKER (end, 1);
1503
1504 if (XINT (beg) > XINT (end))
1505 {
1506 Lisp_Object temp = beg;
1507 beg = end; end = temp;
1508 }
1493 1509
1494 b = XBUFFER (buffer); 1510 b = XBUFFER (buffer);
1495 1511
1496 if (MARKERP (beg)) 1512 beg = Fset_marker (Fmake_marker (), beg, buffer);
1497 { 1513 end = Fset_marker (Fmake_marker (), end, buffer);
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 {
1507 if (! EQ (Fmarker_buffer (end), buffer))
1508 error ("Marker points into wrong buffer");
1509 else
1510 end = Fcopy_marker (end);
1511 }
1512 else
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);
1517 1517
1518 /* Put the new overlay on the wrong list. */ 1518 /* Put the new overlay on the wrong list. */
1545 if (NILP (buffer)) 1545 if (NILP (buffer))
1546 buffer = Fmarker_buffer (OVERLAY_START (overlay)); 1546 buffer = Fmarker_buffer (OVERLAY_START (overlay));
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
1553 if (XINT (beg) > XINT (end)) 1561 if (XINT (beg) > XINT (end))
1554 { 1562 {