From: Lute Kamstra Date: Sat, 9 Apr 2005 08:43:23 +0000 (+0000) Subject: (PRINTPREPARE): Check if the marker PRINTCHARFUN is within the X-Git-Tag: ttn-vms-21-2-B4~1123 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1cf21850176ab21c115d148d0f8e95209898e4b7;p=emacs.git (PRINTPREPARE): Check if the marker PRINTCHARFUN is within the accessible part of the buffer. --- diff --git a/src/ChangeLog b/src/ChangeLog index 2a7e88e4adf..feb43512869 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2005-04-09 Lute Kamstra + + * print.c (PRINTPREPARE): Check if the marker PRINTCHARFUN is + within the accessible part of the buffer. + 2005-04-09 Kim F. Storm * lread.c (readevalloop): Add args START and END as region in @@ -41,8 +46,8 @@ 2005-04-01 Kenichi Handa - * lisp.h (Vascii_upcase_table, Vascii_canon_table, - Vascii_eqv_table): Extern them. + * lisp.h (Vascii_upcase_table, Vascii_canon_table) + (Vascii_eqv_table): Extern them. * casetab.c (set_case_table): If standard is nonzero, setup Vascii_upcase_table, Vascii_canon_table, and Vascii_eqv_table. diff --git a/src/print.c b/src/print.c index 8bb55f21248..47e338e8492 100644 --- a/src/print.c +++ b/src/print.c @@ -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 @@ void print_interval (); } \ 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; \