Mercurial > hg > xemacs-beta
diff src/console-stream.c @ 1279:cd0abfdb9e9d
[xemacs-hg @ 2003-02-09 09:33:42 by ben]
walk-windows, redisplay fixes
console-stream.c: Abort when any attempts to output a stream console are made.
Should be caught sooner.
event-msw.c: Don't redisplay() during sizing when the frame has not yet been
initialized completely.
event-stream.c, menubar-msw.c, menubar-x.c, menubar.c, menubar.h: Restore in_menu_callback. Bind it in menubar-{msw,x}.c when
calling filter functions and the like. Conditionalize on it, not
in_modal_loop, when issuing error in `next-event', otherwise we
bite the dust immediately -- event-msw.c purposely calls
Fnext_event() in a modal loop, and knows what it's doing.
redisplay-output.c: Formatting fixes.
redisplay.c, window.c, winslots.h: Delete lots of carcasses of attempts to add redisplay support for
font-lock -- `pre/post-redisplay-hook', unimplemented junk from
FSF (redisplay-end-trigger, `window-scroll-functions',
`window-size-change-functions'). If we want to port some
redisplay support from FSF, port the `fontified' property.
redisplay.c: Put in a check here (as well as redisplay_device()) for a stream
frame. We can get here directly through Lisp fun
`redisplay-frame'. Abort if frame not initialized.
redisplay.c: Check for stream frames/devices.
window.el: walk-windows was broken when a frame was given to WHICH-FRAMES.
it would loop forever. The FSF version fixes this but i didn't
sync to them because (a) it conses (bad for lazy-lock), (b) it
calls select-window.
author | ben |
---|---|
date | Sun, 09 Feb 2003 09:33:48 +0000 |
parents | e22b0213b713 |
children | a8d8f419b459 |
line wrap: on
line diff
--- a/src/console-stream.c Sun Feb 09 07:03:07 2003 +0000 +++ b/src/console-stream.c Sun Feb 09 09:33:48 2003 +0000 @@ -1,6 +1,6 @@ /* Stream device functions. Copyright (C) 1995 Free Software Foundation, Inc. - Copyright (C) 1996, 2001, 2002 Ben Wing. + Copyright (C) 1996, 2001, 2002, 2003 Ben Wing. This file is part of XEmacs. @@ -216,12 +216,44 @@ return 1; } +/* We used to try and check for redisplaying on stream devices (e.g. in + redisplay_device(), and beg out if so. However, we didn't always manage + completely. Now we do manage completely, and to verify this we abort if + we try to display a stream device. This might fix some crashes I've + been getting in pdump -- the only difference between crash and non-crash + is a few changes to the redisplay critical-section handling. */ + +static void +stream_window_output_begin (struct window *w) +{ + abort (); +} + +static void +stream_window_output_end (struct window *w) +{ + abort (); +} + +static void +stream_frame_output_begin (struct frame *f) +{ + abort (); +} + +static void +stream_frame_output_end (struct frame *f) +{ + abort (); +} + static void stream_output_display_block (struct window *w, struct display_line *dl, int block, int start, int end, int start_pixpos, int cursor_start, int cursor_width, int cursor_height) { + abort (); } static void @@ -230,6 +262,7 @@ int width, int height, Lisp_Object fcolor, Lisp_Object bcolor, Lisp_Object background_pixmap) { + abort (); } static int @@ -278,12 +311,16 @@ CONSOLE_HAS_METHOD (stream, init_frame_1); /* redisplay methods */ + CONSOLE_HAS_METHOD (stream, text_width); CONSOLE_HAS_METHOD (stream, left_margin_width); CONSOLE_HAS_METHOD (stream, right_margin_width); - CONSOLE_HAS_METHOD (stream, text_width); - CONSOLE_HAS_METHOD (stream, output_display_block); CONSOLE_HAS_METHOD (stream, divider_height); CONSOLE_HAS_METHOD (stream, eol_cursor_width); + CONSOLE_HAS_METHOD (stream, window_output_begin); + CONSOLE_HAS_METHOD (stream, window_output_end); + CONSOLE_HAS_METHOD (stream, frame_output_begin); + CONSOLE_HAS_METHOD (stream, frame_output_end); + CONSOLE_HAS_METHOD (stream, output_display_block); CONSOLE_HAS_METHOD (stream, clear_region); CONSOLE_HAS_METHOD (stream, flash); CONSOLE_HAS_METHOD (stream, ring_bell);