comparison 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
comparison
equal deleted inserted replaced
1278:1706fd7322af 1279:cd0abfdb9e9d
1 /* Stream device functions. 1 /* Stream device functions.
2 Copyright (C) 1995 Free Software Foundation, Inc. 2 Copyright (C) 1995 Free Software Foundation, Inc.
3 Copyright (C) 1996, 2001, 2002 Ben Wing. 3 Copyright (C) 1996, 2001, 2002, 2003 Ben Wing.
4 4
5 This file is part of XEmacs. 5 This file is part of XEmacs.
6 6
7 XEmacs is free software; you can redistribute it and/or modify it 7 XEmacs is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the 8 under the terms of the GNU General Public License as published by the
214 stream_eol_cursor_width (void) 214 stream_eol_cursor_width (void)
215 { 215 {
216 return 1; 216 return 1;
217 } 217 }
218 218
219 /* We used to try and check for redisplaying on stream devices (e.g. in
220 redisplay_device(), and beg out if so. However, we didn't always manage
221 completely. Now we do manage completely, and to verify this we abort if
222 we try to display a stream device. This might fix some crashes I've
223 been getting in pdump -- the only difference between crash and non-crash
224 is a few changes to the redisplay critical-section handling. */
225
226 static void
227 stream_window_output_begin (struct window *w)
228 {
229 abort ();
230 }
231
232 static void
233 stream_window_output_end (struct window *w)
234 {
235 abort ();
236 }
237
238 static void
239 stream_frame_output_begin (struct frame *f)
240 {
241 abort ();
242 }
243
244 static void
245 stream_frame_output_end (struct frame *f)
246 {
247 abort ();
248 }
249
219 static void 250 static void
220 stream_output_display_block (struct window *w, struct display_line *dl, 251 stream_output_display_block (struct window *w, struct display_line *dl,
221 int block, int start, int end, 252 int block, int start, int end,
222 int start_pixpos, int cursor_start, 253 int start_pixpos, int cursor_start,
223 int cursor_width, int cursor_height) 254 int cursor_width, int cursor_height)
224 { 255 {
256 abort ();
225 } 257 }
226 258
227 static void 259 static void
228 stream_clear_region (Lisp_Object window, struct device* d, struct frame * f, 260 stream_clear_region (Lisp_Object window, struct device* d, struct frame * f,
229 face_index findex, int x, int y, 261 face_index findex, int x, int y,
230 int width, int height, Lisp_Object fcolor, 262 int width, int height, Lisp_Object fcolor,
231 Lisp_Object bcolor, Lisp_Object background_pixmap) 263 Lisp_Object bcolor, Lisp_Object background_pixmap)
232 { 264 {
265 abort ();
233 } 266 }
234 267
235 static int 268 static int
236 stream_flash (struct device *d) 269 stream_flash (struct device *d)
237 { 270 {
276 309
277 /* frame methods */ 310 /* frame methods */
278 CONSOLE_HAS_METHOD (stream, init_frame_1); 311 CONSOLE_HAS_METHOD (stream, init_frame_1);
279 312
280 /* redisplay methods */ 313 /* redisplay methods */
314 CONSOLE_HAS_METHOD (stream, text_width);
281 CONSOLE_HAS_METHOD (stream, left_margin_width); 315 CONSOLE_HAS_METHOD (stream, left_margin_width);
282 CONSOLE_HAS_METHOD (stream, right_margin_width); 316 CONSOLE_HAS_METHOD (stream, right_margin_width);
283 CONSOLE_HAS_METHOD (stream, text_width);
284 CONSOLE_HAS_METHOD (stream, output_display_block);
285 CONSOLE_HAS_METHOD (stream, divider_height); 317 CONSOLE_HAS_METHOD (stream, divider_height);
286 CONSOLE_HAS_METHOD (stream, eol_cursor_width); 318 CONSOLE_HAS_METHOD (stream, eol_cursor_width);
319 CONSOLE_HAS_METHOD (stream, window_output_begin);
320 CONSOLE_HAS_METHOD (stream, window_output_end);
321 CONSOLE_HAS_METHOD (stream, frame_output_begin);
322 CONSOLE_HAS_METHOD (stream, frame_output_end);
323 CONSOLE_HAS_METHOD (stream, output_display_block);
287 CONSOLE_HAS_METHOD (stream, clear_region); 324 CONSOLE_HAS_METHOD (stream, clear_region);
288 CONSOLE_HAS_METHOD (stream, flash); 325 CONSOLE_HAS_METHOD (stream, flash);
289 CONSOLE_HAS_METHOD (stream, ring_bell); 326 CONSOLE_HAS_METHOD (stream, ring_bell);
290 } 327 }
291 328