diff options
| author | Karoly Lorentey | 2004-01-23 21:48:58 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-01-23 21:48:58 +0000 |
| commit | d448e98221f74c780d5163ed819b782ee32f7d74 (patch) | |
| tree | e4957b71e9a3aa7732f23b5c2bd1b2f1f884809a /src/term.c | |
| parent | 6c3d443b13f9db58f54057b1061b1853c47cc6b8 (diff) | |
| download | emacs-d448e98221f74c780d5163ed819b782ee32f7d74.tar.gz emacs-d448e98221f74c780d5163ed819b782ee32f7d74.zip | |
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
lisp/startup.el (command-line): Always call tty-register-default-colors.
src/dispextern.h (delete_tty): Added missing prototype.
src/keyboard.c (read_avail_input): Close display gracefully if needed.
Kill Emacs if the last display is to be closed.
(tty_read_avail_input): Don't call delete_tty and don't signal hangup here;
return -2 instead to indicate the non-transient failure to read_avail_input.
src/term.c (delete_tty): Removed superflous wiping of the deleted
frames' output_data field.
(delete_display): Check for and close live frames that are still on the display.
src/termhooks.h (read_socket_hook, delete_display_hook): Added detailed comment.
src/xfaces.c (realize_face): Create a dummy face for the initial frame.
(Reported by Robert J. Chassell (bob at rattlenake dot com).)
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-61
Diffstat (limited to 'src/term.c')
| -rw-r--r-- | src/term.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/term.c b/src/term.c index c6782efa606..f63c6c68774 100644 --- a/src/term.c +++ b/src/term.c | |||
| @@ -2843,7 +2843,6 @@ delete_tty (struct display *display) | |||
| 2843 | if (FRAME_TERMCAP_P (f) && FRAME_LIVE_P (f) && FRAME_TTY (f) == tty) | 2843 | if (FRAME_TERMCAP_P (f) && FRAME_LIVE_P (f) && FRAME_TTY (f) == tty) |
| 2844 | { | 2844 | { |
| 2845 | Fdelete_frame (frame, Qt); | 2845 | Fdelete_frame (frame, Qt); |
| 2846 | f->output_data.tty = 0; | ||
| 2847 | } | 2846 | } |
| 2848 | } | 2847 | } |
| 2849 | 2848 | ||
| @@ -2968,6 +2967,19 @@ void | |||
| 2968 | delete_display (struct display *dev) | 2967 | delete_display (struct display *dev) |
| 2969 | { | 2968 | { |
| 2970 | struct display **dp; | 2969 | struct display **dp; |
| 2970 | Lisp_Object tail, frame; | ||
| 2971 | |||
| 2972 | /* Check for and close live frames that are still on this | ||
| 2973 | display. */ | ||
| 2974 | FOR_EACH_FRAME (tail, frame) | ||
| 2975 | { | ||
| 2976 | struct frame *f = XFRAME (frame); | ||
| 2977 | if (FRAME_LIVE_P (f) && f->display == dev) | ||
| 2978 | { | ||
| 2979 | Fdelete_frame (frame, Qt); | ||
| 2980 | } | ||
| 2981 | } | ||
| 2982 | |||
| 2971 | for (dp = &display_list; *dp != dev; dp = &(*dp)->next_display) | 2983 | for (dp = &display_list; *dp != dev; dp = &(*dp)->next_display) |
| 2972 | if (! *dp) | 2984 | if (! *dp) |
| 2973 | abort (); | 2985 | abort (); |