aboutsummaryrefslogtreecommitdiffstats
path: root/src/term.c
diff options
context:
space:
mode:
authorKaroly Lorentey2005-06-27 00:56:21 +0000
committerKaroly Lorentey2005-06-27 00:56:21 +0000
commitbedb9c0eda660f7dc516543be25db37b5f95e03b (patch)
tree7c47185d6b01dd86453399a966c29ea4dfe70f9b /src/term.c
parentd66d64bc20de2e172859b2c3f08d05bb2f813c00 (diff)
downloademacs-bedb9c0eda660f7dc516543be25db37b5f95e03b.tar.gz
emacs-bedb9c0eda660f7dc516543be25db37b5f95e03b.zip
Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
* src/termhooks.h (display): New field: kboard. * src/xterm.h (x_display_info): Remove kboard field. * src/termchar.h (tty_display_info): Ditto. * src/frame.h (frame): Ditto. (FRAME_KBOARD): Update. * src/dispnew.c (init_display): Don't initialize kboard. * src/frame.c (make_frame, make_initial_frame, make_terminal_frame): Ditto. * src/frame.c (make_frame_without_minibuffer, Fdelete_frame): Update kboard access. * src/keyboard.c (delete_kboard): Ditto. * src/term.c (term_init): Ditto. * src/xfns.c (Fx_create_frame, x_create_tip_frame): Ditto. * src/xselect.c (x_handle_selection_clear): Ditto. * src/xterm.c (x_term_init): Ditto. * src/term.c (init_initial_display): Initialize kboard. * src/xterm.c (x_term_init): Ditto. * src/term.c (delete_tty): Remove kboard deletion. (delete_display): Delete kboard as well. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-363
Diffstat (limited to 'src/term.c')
-rw-r--r--src/term.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/term.c b/src/term.c
index 55d1741873c..8f541816798 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2285,10 +2285,11 @@ init_initial_display (void)
2285 initial_display = create_display (); 2285 initial_display = create_display ();
2286 initial_display->type = output_initial; 2286 initial_display->type = output_initial;
2287 initial_display->name = xstrdup ("initial_display"); 2287 initial_display->name = xstrdup ("initial_display");
2288 initial_display->kboard = initial_kboard;
2288 2289
2289 initial_display->delete_display_hook = &delete_initial_display; 2290 initial_display->delete_display_hook = &delete_initial_display;
2290 /* All other hooks are NULL. */ 2291 /* All other hooks are NULL. */
2291 2292
2292 return initial_display; 2293 return initial_display;
2293} 2294}
2294 2295
@@ -2682,19 +2683,19 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
2682 tty->TF_teleray = tgetflag ("xt"); 2683 tty->TF_teleray = tgetflag ("xt");
2683 2684
2684#ifdef MULTI_KBOARD 2685#ifdef MULTI_KBOARD
2685 tty->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); 2686 display->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
2686 init_kboard (tty->kboard); 2687 init_kboard (display->kboard);
2687 tty->kboard->next_kboard = all_kboards; 2688 display->kboard->next_kboard = all_kboards;
2688 all_kboards = tty->kboard; 2689 all_kboards = display->kboard;
2690 display->kboard->reference_count++;
2689 /* Don't let the initial kboard remain current longer than necessary. 2691 /* Don't let the initial kboard remain current longer than necessary.
2690 That would cause problems if a file loaded on startup tries to 2692 That would cause problems if a file loaded on startup tries to
2691 prompt in the mini-buffer. */ 2693 prompt in the mini-buffer. */
2692 if (current_kboard == initial_kboard) 2694 if (current_kboard == initial_kboard)
2693 current_kboard = tty->kboard; 2695 current_kboard = display->kboard;
2694 tty->kboard->reference_count++;
2695#endif 2696#endif
2696 2697
2697 term_get_fkeys (address, tty->kboard); 2698 term_get_fkeys (address, display->kboard);
2698 2699
2699 /* Get frame size from system, or else from termcap. */ 2700 /* Get frame size from system, or else from termcap. */
2700 { 2701 {
@@ -3051,13 +3052,6 @@ delete_tty (struct display *display)
3051 if (tty->Wcm) 3052 if (tty->Wcm)
3052 xfree (tty->Wcm); 3053 xfree (tty->Wcm);
3053 3054
3054#ifdef MULTI_KBOARD
3055 if (tty->kboard && --tty->kboard->reference_count > 0)
3056 abort ();
3057 if (tty->kboard)
3058 delete_kboard (tty->kboard);
3059#endif
3060
3061 bzero (tty, sizeof (struct tty_display_info)); 3055 bzero (tty, sizeof (struct tty_display_info));
3062 xfree (tty); 3056 xfree (tty);
3063 deleting_tty = 0; 3057 deleting_tty = 0;
@@ -3170,6 +3164,11 @@ delete_display (struct display *display)
3170 if (display->name) 3164 if (display->name)
3171 xfree (display->name); 3165 xfree (display->name);
3172 3166
3167#ifdef MULTI_KBOARD
3168 if (display->kboard && --display->kboard->reference_count == 0)
3169 delete_kboard (display->kboard);
3170#endif
3171
3173 bzero (display, sizeof (struct display)); 3172 bzero (display, sizeof (struct display));
3174 xfree (display); 3173 xfree (display);
3175} 3174}