Mercurial > emacs
diff src/print.c @ 61407:88c04d73f43d
(PRINTPREPARE): Check if the marker PRINTCHARFUN is within the
accessible part of the buffer.
| author | Lute Kamstra <lute@gnu.org> |
|---|---|
| date | Sat, 09 Apr 2005 08:42:30 +0000 |
| parents | 1f8360dd535b |
| children | a8fa7c632ee4 9deb6323655c 146c086df160 |
line wrap: on
line diff
--- a/src/print.c Fri Apr 08 23:46:58 2005 +0000 +++ b/src/print.c Sat Apr 09 08:42:30 2005 +0000 @@ -1,6 +1,6 @@ /* Lisp object printing and output streams. - Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 01, 03, 2004 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, + 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -211,13 +211,17 @@ } \ if (MARKERP (printcharfun)) \ { \ - if (!(XMARKER (original)->buffer)) \ + EMACS_INT marker_pos; \ + if (!(XMARKER (printcharfun)->buffer)) \ error ("Marker does not point anywhere"); \ - if (XMARKER (original)->buffer != current_buffer) \ - set_buffer_internal (XMARKER (original)->buffer); \ + if (XMARKER (printcharfun)->buffer != current_buffer) \ + set_buffer_internal (XMARKER (printcharfun)->buffer); \ + marker_pos = marker_position (printcharfun); \ + if (marker_pos < BEGV || marker_pos > ZV) \ + error ("Marker is outside the accessible part of the buffer"); \ old_point = PT; \ old_point_byte = PT_BYTE; \ - SET_PT_BOTH (marker_position (printcharfun), \ + SET_PT_BOTH (marker_pos, \ marker_byte_position (printcharfun)); \ start_point = PT; \ start_point_byte = PT_BYTE; \
