diff options
| author | Karoly Lorentey | 2005-06-27 00:56:21 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-06-27 00:56:21 +0000 |
| commit | bedb9c0eda660f7dc516543be25db37b5f95e03b (patch) | |
| tree | 7c47185d6b01dd86453399a966c29ea4dfe70f9b /src/term.c | |
| parent | d66d64bc20de2e172859b2c3f08d05bb2f813c00 (diff) | |
| download | emacs-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.c | 29 |
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 | } |