diff options
Diffstat (limited to 'src/print.c')
| -rw-r--r-- | src/print.c | 16 |
1 files changed, 10 insertions, 6 deletions
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 @@ | |||
| 1 | /* Lisp object printing and output streams. | 1 | /* Lisp object printing and output streams. |
| 2 | Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 01, 03, 2004 | 2 | Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, |
| 3 | Free Software Foundation, Inc. | 3 | 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -211,13 +211,17 @@ void print_interval (); | |||
| 211 | } \ | 211 | } \ |
| 212 | if (MARKERP (printcharfun)) \ | 212 | if (MARKERP (printcharfun)) \ |
| 213 | { \ | 213 | { \ |
| 214 | if (!(XMARKER (original)->buffer)) \ | 214 | EMACS_INT marker_pos; \ |
| 215 | if (!(XMARKER (printcharfun)->buffer)) \ | ||
| 215 | error ("Marker does not point anywhere"); \ | 216 | error ("Marker does not point anywhere"); \ |
| 216 | if (XMARKER (original)->buffer != current_buffer) \ | 217 | if (XMARKER (printcharfun)->buffer != current_buffer) \ |
| 217 | set_buffer_internal (XMARKER (original)->buffer); \ | 218 | set_buffer_internal (XMARKER (printcharfun)->buffer); \ |
| 219 | marker_pos = marker_position (printcharfun); \ | ||
| 220 | if (marker_pos < BEGV || marker_pos > ZV) \ | ||
| 221 | error ("Marker is outside the accessible part of the buffer"); \ | ||
| 218 | old_point = PT; \ | 222 | old_point = PT; \ |
| 219 | old_point_byte = PT_BYTE; \ | 223 | old_point_byte = PT_BYTE; \ |
| 220 | SET_PT_BOTH (marker_position (printcharfun), \ | 224 | SET_PT_BOTH (marker_pos, \ |
| 221 | marker_byte_position (printcharfun)); \ | 225 | marker_byte_position (printcharfun)); \ |
| 222 | start_point = PT; \ | 226 | start_point = PT; \ |
| 223 | start_point_byte = PT_BYTE; \ | 227 | start_point_byte = PT_BYTE; \ |