Mercurial > emacs
changeset 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 | a2d3e29d8373 |
children | 8cfd32d71cf4 |
files | src/print.c |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
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; \