comparison src/xterm.c @ 83008:040dd41ed7d0

Hookified termcap devices, added bootstrap display device, plus many bugfixes. lisp/frame.el (display-color-cells): Pass display parameter to tty-display-color-cells. lisp/term/xterm.el (xterm-register-default-colors): Pass the selected-frame to display-color-cells. src/dispextern.h (set_terminal_modes, reset_terminal_modes): Removed declarations. (get_named_tty_display): New prototype. (tty_clear_end_of_line, term_init): Updated to new prototype. (initial_term_init): Renamed to init_initial_display. src/dispnew.c (Fredraw_frame): ifdef-out DOS-specific code. Add display parameter to set_terminal_modes call. (update_frame): Don't flush the tty of there is no tty. (init_display): Set up a termcap display on the controlling tty and change the initial frame to use that. Delete the initial display. src/frame.c (Fframep): Return t for the initial frame. (make_initial_frame): New function for creating the initial frame during bootstrap. Use init_initial_display, not initial_term_init. (make_terminal_frame): Removed special cases for creating the initial frame. src/frame.h (enum output_method): New entry: output_initial for the bootstrap display. (FRAME_INITIAL_P): New macro. (make_initial_frame): New prototype. src/keyboard.c (interrupt_signal): Exit Emacs on SIGINT from the (frameless) controlling tty, if possible. Explain this in a comment. (init_keyboard): Added comment about exiting on SIGINT. (Fset_input_mode): A termcap frame is never the initial frame anymore. src/sysdep.c (init_sys_modes): Update tty_set_terminal_modes call to the new prototype. (reset_sys_modes): Comment out tty_clear_end_of_line call; it doesn't work anymore. Update tty_reset_terminal_modes call. src/termchar.h (struct tty_display_info): Added pointer to the display structure, for reset_sys_modes. src/termhooks.h (struct display): Added display parameter to set_terminal_modes_hook and reset_terminal_modes_hook. src/term.c (initial_display): New variable. (tty_ring_bell, tty_update_end, tty_set_terminal_window, tty_cursor_to) (tty_raw_cursor_to, tty_clear_to_end, tty_clear_frame, tty_clear_end_of_line) (tty_write_glyphs, tty_insert_glyphs, tty_delete_glyphs, tty_ins_del_lines): New functions. (ring_bell, update_end, set_terminal_window, cursor_to, raw_cursor_to) (clear_to_end, clear_frame, clear_end_of_line, write_glyphs, insert_glyphs) (delete_glyphs, ins_del_lines): Removed special casing of termcap displays. (get_tty_display): New function. (Ftty_display_color_p, Ftty_display_color_cells): Use it. (get_named_tty_display): Removed static. (tty_set_terminal_modes, tty_reset_terminal_modes): Changed to use a display parameter instead of tty_display_info for hook compatibility. (set_terminal_modes, reset_terminal_modes): Removed. (initial_term_init): Renamed to init_initial_display. Set up an output_initial device, not a termcap display. (delete_initial_display): New function. (maybe_fatal): New function, for private use of term_init. (term_init): New parameter for choosing between fatal and simple errors. Removed incomprehensible special casing for the second initialization of the controlling tty. Use maybe_fatal for error handling. Initialize termcap display hooks in the new device. Initialize the display pointer in the tty_display_info structure. (delete_tty): Replace order of reset_sys_modes and delete_display. src/window.c (init_window_once): Call make_initial_frame instead of make_terminal_frame. src/xfaces.c (realize_default_face, realize_face): Don't abort on the bootstrap display device. src/xterm.c (XTset_terminal_modes, XTreset_terminal_modes): Added display parameter. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-48
author Karoly Lorentey <lorentey@elte.hu>
date Fri, 09 Jan 2004 18:57:53 +0000
parents 7900111db01c
children c4d4cbf86260
comparison
equal deleted inserted replaced
83007:c0cb35d94ea7 83008:040dd41ed7d0
329 void x_initialize P_ ((void)); 329 void x_initialize P_ ((void));
330 static void x_font_min_bounds P_ ((XFontStruct *, int *, int *)); 330 static void x_font_min_bounds P_ ((XFontStruct *, int *, int *));
331 static int x_compute_min_glyph_bounds P_ ((struct frame *)); 331 static int x_compute_min_glyph_bounds P_ ((struct frame *));
332 static void x_update_end P_ ((struct frame *)); 332 static void x_update_end P_ ((struct frame *));
333 static void XTframe_up_to_date P_ ((struct frame *)); 333 static void XTframe_up_to_date P_ ((struct frame *));
334 static void XTset_terminal_modes P_ ((void)); 334 static void XTset_terminal_modes P_ ((struct display *));
335 static void XTreset_terminal_modes P_ ((void)); 335 static void XTreset_terminal_modes P_ ((struct display *));
336 static void x_clear_frame P_ ((void)); 336 static void x_clear_frame P_ ((void));
337 static void frame_highlight P_ ((struct frame *)); 337 static void frame_highlight P_ ((struct frame *));
338 static void frame_unhighlight P_ ((struct frame *)); 338 static void frame_unhighlight P_ ((struct frame *));
339 static void x_new_focus_frame P_ ((struct x_display_info *, struct frame *)); 339 static void x_new_focus_frame P_ ((struct x_display_info *, struct frame *));
340 static int x_focus_changed P_ ((int, 340 static int x_focus_changed P_ ((int,
745 suspend. When starting Emacs, no X window is mapped. And nothing 745 suspend. When starting Emacs, no X window is mapped. And nothing
746 must be done to Emacs's own window if it is suspended (though that 746 must be done to Emacs's own window if it is suspended (though that
747 rarely happens). */ 747 rarely happens). */
748 748
749 static void 749 static void
750 XTset_terminal_modes () 750 XTset_terminal_modes (struct display *display)
751 { 751 {
752 } 752 }
753 753
754 /* This is called when exiting or suspending Emacs. Exiting will make 754 /* This is called when exiting or suspending Emacs. Exiting will make
755 the X-windows go away, and suspending requires no action. */ 755 the X-windows go away, and suspending requires no action. */
756 756
757 static void 757 static void
758 XTreset_terminal_modes () 758 XTreset_terminal_modes (struct display *display)
759 { 759 {
760 } 760 }
761 761
762 762
763 763