comparison src/termhooks.h @ 83525:b2e7507b55c6

Fix C-x 5 2 on the controlling tty; fix some possible crash conditions and a memory leak. * src/frame.c (make_terminal_frame): Don't create frames on a terminal that is being deleted. * src/xfns.c (Fx_create_frame, x_create_tip_frame): Ditto. * src/keyboard.c (tty_read_avail_input): Don't read from a terminal that is being deleted. * src/term.c (get_named_tty): Abort if tty name is NULL. Simplify accordingly. * src/term.c (Ftty_type): Return nil if terminal is not on a tty instead of throwing an error. Doc update. * src/term.c (init_tty): Set name before calling `get_named_tty'. * src/term.c (delete_tty): Let delete_terminal delete the frames. Plug memory leak caused by tty->name. Remove reference to `deleting_tty'. * src/term.c (syms_of_term) <Vsuspend_tty_functions, Vresume_tty_functions>: Doc update. * src/termhooks.h (terminal) <name>: Explain why identifying terminals by name is a bad idea. * src/terminal.c (delete_terminal): Doc update. * src/xterm.c (XTread_socket): Disable loop on all X displays. * src/xterm.c (x_delete_display): Doc update to reflect changes in delete_terminal. * src/xterm.c (x_delete_terminal): Don't set terminal->deleted and let delete_terminal delete the frames on the terminal. * src/xterm.h (x_display_info) <terminal>: Move member earlier in the struct. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-565
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 20 May 2006 17:12:43 +0000
parents a5d712e6585a
children c71725faff1a
comparison
equal deleted inserted replaced
83524:673d62ad74b5 83525:b2e7507b55c6
305 int deleted; 305 int deleted;
306 306
307 /* The type of the terminal device. */ 307 /* The type of the terminal device. */
308 enum output_method type; 308 enum output_method type;
309 309
310 /* The name of the terminal device. Do not use this to identify the device. */ 310 /* The name of the terminal device. Do not use this to uniquely
311 identify a terminal; the same device may be opened multiple
312 times. */
311 char *name; 313 char *name;
312 314
313 #ifdef MULTI_KBOARD 315 #ifdef MULTI_KBOARD
314 /* The terminal's keyboard object. */ 316 /* The terminal's keyboard object. */
315 struct kboard *kboard; 317 struct kboard *kboard;