aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDan Nicolaescu2008-07-31 02:47:32 +0000
committerDan Nicolaescu2008-07-31 02:47:32 +0000
commit69ab3201ca6f6ef1414d678fd9cb13dd4d6f6b95 (patch)
tree00ab60bc1db392c982034d7ae88f619ac340c48c /src
parenta36abf0ef31eb9d684cb18b475d40be9122dc0f5 (diff)
downloademacs-69ab3201ca6f6ef1414d678fd9cb13dd4d6f6b95.tar.gz
emacs-69ab3201ca6f6ef1414d678fd9cb13dd4d6f6b95.zip
* s/ms-w32.h (MULTI_KBOARD): Remove.
* xterm.c: * xselect.c: * xfns.c: * window.c: * w32term.c: * w32fns.c: * terminal.c: * termhooks.h: * term.c: * sysdep.c: * keyboard.h: * keyboard.c: * frame.h: * frame.c: * frame.c: Remove references to MULTI_KBOARD, it is now the default. * config.in: Regenerate. * config.nt (MULTI_KBOARD): Remove. * configure.in (MULTI_KBOARD): Remove.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog21
-rw-r--r--src/config.in7
-rw-r--r--src/frame.c4
-rw-r--r--src/frame.h4
-rw-r--r--src/keyboard.c52
-rw-r--r--src/keyboard.h7
-rw-r--r--src/s/ms-w32.h2
-rw-r--r--src/sysdep.c7
-rw-r--r--src/term.c4
-rw-r--r--src/termhooks.h2
-rw-r--r--src/terminal.c4
-rw-r--r--src/w32fns.c10
-rw-r--r--src/w32term.c2
-rw-r--r--src/window.c4
-rw-r--r--src/xfns.c4
-rw-r--r--src/xselect.c2
-rw-r--r--src/xterm.c4
17 files changed, 23 insertions, 117 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f4062fa765d..89b730f299d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,24 @@
12008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * s/ms-w32.h (MULTI_KBOARD): Remove.
4 * xterm.c:
5 * xselect.c:
6 * xfns.c:
7 * window.c:
8 * w32term.c:
9 * w32fns.c:
10 * terminal.c:
11 * termhooks.h:
12 * term.c:
13 * sysdep.c:
14 * keyboard.h:
15 * keyboard.c:
16 * frame.h:
17 * frame.c:
18 * frame.c: Remove references to MULTI_KBOARD, it is now the
19 default.
20 * config.in: Regenerate.
21
12008-07-30 Jason Rumney <jasonr@gnu.org> 222008-07-30 Jason Rumney <jasonr@gnu.org>
2 23
3 * w32font.h (struct w32font_info): Use unicode version of textmetrics. 24 * w32font.h (struct w32font_info): Use unicode version of textmetrics.
diff --git a/src/config.in b/src/config.in
index 5b78d3be642..420fd185eac 100644
--- a/src/config.in
+++ b/src/config.in
@@ -979,16 +979,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
979/* If we're using X11/Carbon/GNUstep, define some consequences. */ 979/* If we're using X11/Carbon/GNUstep, define some consequences. */
980#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS) 980#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
981#define HAVE_WINDOW_SYSTEM 981#define HAVE_WINDOW_SYSTEM
982#define MULTI_KBOARD
983#define HAVE_MOUSE 982#define HAVE_MOUSE
984#endif 983#endif
985 984
986/* Multi-tty support relies on MULTI_KBOARD. It seems safe to turn it
987 on unconditionally. */
988#ifndef MULTI_KBOARD
989#define MULTI_KBOARD
990#endif
991
992/* Sadly for now, GNUstep dump does not work. */ 985/* Sadly for now, GNUstep dump does not work. */
993#ifdef NS_IMPL_GNUSTEP 986#ifdef NS_IMPL_GNUSTEP
994#define CANNOT_DUMP 987#define CANNOT_DUMP
diff --git a/src/frame.c b/src/frame.c
index edcf3a54bc8..448f6bab918 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -433,11 +433,9 @@ make_frame_without_minibuffer (mini_window, kb, display)
433 if (!NILP (mini_window)) 433 if (!NILP (mini_window))
434 CHECK_LIVE_WINDOW (mini_window); 434 CHECK_LIVE_WINDOW (mini_window);
435 435
436#ifdef MULTI_KBOARD
437 if (!NILP (mini_window) 436 if (!NILP (mini_window)
438 && FRAME_KBOARD (XFRAME (XWINDOW (mini_window)->frame)) != kb) 437 && FRAME_KBOARD (XFRAME (XWINDOW (mini_window)->frame)) != kb)
439 error ("Frame and minibuffer must be on the same terminal"); 438 error ("Frame and minibuffer must be on the same terminal");
440#endif
441 439
442 /* Make a frame containing just a root window. */ 440 /* Make a frame containing just a root window. */
443 f = make_frame (0); 441 f = make_frame (0);
@@ -1513,10 +1511,8 @@ But FORCE inhibits this too. */)
1513 kb = NULL; 1511 kb = NULL;
1514 Fdelete_terminal (tmp, NILP (force) ? Qt : force); 1512 Fdelete_terminal (tmp, NILP (force) ? Qt : force);
1515 } 1513 }
1516#ifdef MULTI_KBOARD
1517 else 1514 else
1518 kb = terminal->kboard; 1515 kb = terminal->kboard;
1519#endif
1520 } 1516 }
1521 1517
1522 /* If we've deleted the last_nonminibuf_frame, then try to find 1518 /* If we've deleted the last_nonminibuf_frame, then try to find
diff --git a/src/frame.h b/src/frame.h
index cae3de11641..e28a47ec11b 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -498,11 +498,7 @@ struct frame
498 unsigned long foreground_pixel; 498 unsigned long foreground_pixel;
499}; 499};
500 500
501#ifdef MULTI_KBOARD
502#define FRAME_KBOARD(f) ((f)->terminal->kboard) 501#define FRAME_KBOARD(f) ((f)->terminal->kboard)
503#else
504#define FRAME_KBOARD(f) (&the_only_kboard)
505#endif
506 502
507/* Return a pointer to the image cache of frame F. */ 503/* Return a pointer to the image cache of frame F. */
508#define FRAME_IMAGE_CACHE(F) ((F)->terminal->image_cache) 504#define FRAME_IMAGE_CACHE(F) ((F)->terminal->image_cache)
diff --git a/src/keyboard.c b/src/keyboard.c
index 92ae3db087f..a61eb836f26 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -95,14 +95,10 @@ int interrupt_input_pending;
95 95
96#define KBD_BUFFER_SIZE 4096 96#define KBD_BUFFER_SIZE 4096
97 97
98#ifdef MULTI_KBOARD
99KBOARD *initial_kboard; 98KBOARD *initial_kboard;
100KBOARD *current_kboard; 99KBOARD *current_kboard;
101KBOARD *all_kboards; 100KBOARD *all_kboards;
102int single_kboard; 101int single_kboard;
103#else
104KBOARD the_only_kboard;
105#endif
106 102
107/* Non-nil disable property on a command means 103/* Non-nil disable property on a command means
108 do not execute it; call disabled-command-function's value instead. */ 104 do not execute it; call disabled-command-function's value instead. */
@@ -635,9 +631,7 @@ static void save_getcjmp ();
635static void restore_getcjmp P_ ((jmp_buf)); 631static void restore_getcjmp P_ ((jmp_buf));
636static Lisp_Object apply_modifiers P_ ((int, Lisp_Object)); 632static Lisp_Object apply_modifiers P_ ((int, Lisp_Object));
637static void clear_event P_ ((struct input_event *)); 633static void clear_event P_ ((struct input_event *));
638#ifdef MULTI_KBOARD
639static Lisp_Object restore_kboard_configuration P_ ((Lisp_Object)); 634static Lisp_Object restore_kboard_configuration P_ ((Lisp_Object));
640#endif
641static SIGTYPE interrupt_signal P_ ((int signalnum)); 635static SIGTYPE interrupt_signal P_ ((int signalnum));
642static void handle_interrupt P_ ((void)); 636static void handle_interrupt P_ ((void));
643static void timer_start_idle P_ ((void)); 637static void timer_start_idle P_ ((void));
@@ -1031,7 +1025,6 @@ recursive_edit_unwind (buffer)
1031static void 1025static void
1032any_kboard_state () 1026any_kboard_state ()
1033{ 1027{
1034#ifdef MULTI_KBOARD
1035#if 0 /* Theory: if there's anything in Vunread_command_events, 1028#if 0 /* Theory: if there's anything in Vunread_command_events,
1036 it will right away be read by read_key_sequence, 1029 it will right away be read by read_key_sequence,
1037 and then if we do switch KBOARDS, it will go into the side 1030 and then if we do switch KBOARDS, it will go into the side
@@ -1045,7 +1038,6 @@ any_kboard_state ()
1045 Vunread_command_events = Qnil; 1038 Vunread_command_events = Qnil;
1046#endif 1039#endif
1047 single_kboard = 0; 1040 single_kboard = 0;
1048#endif
1049} 1041}
1050 1042
1051/* Switch to the single-kboard state, making current_kboard 1043/* Switch to the single-kboard state, making current_kboard
@@ -1054,9 +1046,7 @@ any_kboard_state ()
1054void 1046void
1055single_kboard_state () 1047single_kboard_state ()
1056{ 1048{
1057#ifdef MULTI_KBOARD
1058 single_kboard = 1; 1049 single_kboard = 1;
1059#endif
1060} 1050}
1061#endif 1051#endif
1062 1052
@@ -1067,10 +1057,8 @@ void
1067not_single_kboard_state (kboard) 1057not_single_kboard_state (kboard)
1068 KBOARD *kboard; 1058 KBOARD *kboard;
1069{ 1059{
1070#ifdef MULTI_KBOARD
1071 if (kboard == current_kboard) 1060 if (kboard == current_kboard)
1072 single_kboard = 0; 1061 single_kboard = 0;
1073#endif
1074} 1062}
1075 1063
1076/* Maintain a stack of kboards, so other parts of Emacs 1064/* Maintain a stack of kboards, so other parts of Emacs
@@ -1089,7 +1077,6 @@ void
1089push_kboard (k) 1077push_kboard (k)
1090 struct kboard *k; 1078 struct kboard *k;
1091{ 1079{
1092#ifdef MULTI_KBOARD
1093 struct kboard_stack *p 1080 struct kboard_stack *p
1094 = (struct kboard_stack *) xmalloc (sizeof (struct kboard_stack)); 1081 = (struct kboard_stack *) xmalloc (sizeof (struct kboard_stack));
1095 1082
@@ -1098,13 +1085,11 @@ push_kboard (k)
1098 kboard_stack = p; 1085 kboard_stack = p;
1099 1086
1100 current_kboard = k; 1087 current_kboard = k;
1101#endif
1102} 1088}
1103 1089
1104void 1090void
1105pop_kboard () 1091pop_kboard ()
1106{ 1092{
1107#ifdef MULTI_KBOARD
1108 struct terminal *t; 1093 struct terminal *t;
1109 struct kboard_stack *p = kboard_stack; 1094 struct kboard_stack *p = kboard_stack;
1110 int found = 0; 1095 int found = 0;
@@ -1125,7 +1110,6 @@ pop_kboard ()
1125 } 1110 }
1126 kboard_stack = p->next; 1111 kboard_stack = p->next;
1127 xfree (p); 1112 xfree (p);
1128#endif
1129} 1113}
1130 1114
1131/* Switch to single_kboard mode, making current_kboard the only KBOARD 1115/* Switch to single_kboard mode, making current_kboard the only KBOARD
@@ -1142,7 +1126,6 @@ void
1142temporarily_switch_to_single_kboard (f) 1126temporarily_switch_to_single_kboard (f)
1143 struct frame *f; 1127 struct frame *f;
1144{ 1128{
1145#ifdef MULTI_KBOARD
1146 int was_locked = single_kboard; 1129 int was_locked = single_kboard;
1147 if (was_locked) 1130 if (was_locked)
1148 { 1131 {
@@ -1167,7 +1150,6 @@ temporarily_switch_to_single_kboard (f)
1167 single_kboard = 1; 1150 single_kboard = 1;
1168 record_unwind_protect (restore_kboard_configuration, 1151 record_unwind_protect (restore_kboard_configuration,
1169 (was_locked ? Qt : Qnil)); 1152 (was_locked ? Qt : Qnil));
1170#endif
1171} 1153}
1172 1154
1173#if 0 /* This function is not needed anymore. */ 1155#if 0 /* This function is not needed anymore. */
@@ -1181,7 +1163,6 @@ record_single_kboard_state ()
1181} 1163}
1182#endif 1164#endif
1183 1165
1184#ifdef MULTI_KBOARD
1185static Lisp_Object 1166static Lisp_Object
1186restore_kboard_configuration (was_locked) 1167restore_kboard_configuration (was_locked)
1187 Lisp_Object was_locked; 1168 Lisp_Object was_locked;
@@ -1199,7 +1180,6 @@ restore_kboard_configuration (was_locked)
1199 } 1180 }
1200 return Qnil; 1181 return Qnil;
1201} 1182}
1202#endif
1203 1183
1204 1184
1205/* Handle errors that are not handled at inner levels 1185/* Handle errors that are not handled at inner levels
@@ -1249,11 +1229,9 @@ cmd_error (data)
1249 1229
1250 Vinhibit_quit = Qnil; 1230 Vinhibit_quit = Qnil;
1251#if 0 /* This shouldn't be necessary anymore. --lorentey */ 1231#if 0 /* This shouldn't be necessary anymore. --lorentey */
1252#ifdef MULTI_KBOARD
1253 if (command_loop_level == 0 && minibuf_level == 0) 1232 if (command_loop_level == 0 && minibuf_level == 0)
1254 any_kboard_state (); 1233 any_kboard_state ();
1255#endif 1234#endif
1256#endif
1257 1235
1258 return make_number (0); 1236 return make_number (0);
1259} 1237}
@@ -1532,10 +1510,8 @@ command_loop_1 ()
1532 int prev_modiff = 0; 1510 int prev_modiff = 0;
1533 struct buffer *prev_buffer = NULL; 1511 struct buffer *prev_buffer = NULL;
1534#if 0 /* This shouldn't be necessary anymore. --lorentey */ 1512#if 0 /* This shouldn't be necessary anymore. --lorentey */
1535#ifdef MULTI_KBOARD
1536 int was_locked = single_kboard; 1513 int was_locked = single_kboard;
1537#endif 1514#endif
1538#endif
1539 int already_adjusted = 0; 1515 int already_adjusted = 0;
1540 1516
1541 current_kboard->Vprefix_arg = Qnil; 1517 current_kboard->Vprefix_arg = Qnil;
@@ -1987,11 +1963,9 @@ command_loop_1 ()
1987 && NILP (current_kboard->Vprefix_arg)) 1963 && NILP (current_kboard->Vprefix_arg))
1988 finalize_kbd_macro_chars (); 1964 finalize_kbd_macro_chars ();
1989#if 0 /* This shouldn't be necessary anymore. --lorentey */ 1965#if 0 /* This shouldn't be necessary anymore. --lorentey */
1990#ifdef MULTI_KBOARD
1991 if (!was_locked) 1966 if (!was_locked)
1992 any_kboard_state (); 1967 any_kboard_state ();
1993#endif 1968#endif
1994#endif
1995 } 1969 }
1996} 1970}
1997 1971
@@ -2780,7 +2754,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
2780 if (!NILP (Vinhibit_quit)) 2754 if (!NILP (Vinhibit_quit))
2781 Vquit_flag = Qnil; 2755 Vquit_flag = Qnil;
2782 2756
2783#ifdef MULTI_KBOARD
2784 { 2757 {
2785 KBOARD *kb = FRAME_KBOARD (XFRAME (selected_frame)); 2758 KBOARD *kb = FRAME_KBOARD (XFRAME (selected_frame));
2786 if (kb != current_kboard) 2759 if (kb != current_kboard)
@@ -2808,7 +2781,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
2808 return make_number (-2); /* wrong_kboard_jmpbuf */ 2781 return make_number (-2); /* wrong_kboard_jmpbuf */
2809 } 2782 }
2810 } 2783 }
2811#endif
2812 goto non_reread; 2784 goto non_reread;
2813 } 2785 }
2814 2786
@@ -2984,7 +2956,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
2984 } 2956 }
2985 } 2957 }
2986 2958
2987#ifdef MULTI_KBOARD
2988 /* If current_kboard's side queue is empty check the other kboards. 2959 /* If current_kboard's side queue is empty check the other kboards.
2989 If one of them has data that we have not yet seen here, 2960 If one of them has data that we have not yet seen here,
2990 switch to it and process the data waiting for it. 2961 switch to it and process the data waiting for it.
@@ -3006,7 +2977,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
3006 return make_number (-2); /* wrong_kboard_jmpbuf */ 2977 return make_number (-2); /* wrong_kboard_jmpbuf */
3007 } 2978 }
3008 } 2979 }
3009#endif
3010 2980
3011 wrong_kboard: 2981 wrong_kboard:
3012 2982
@@ -3036,7 +3006,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
3036 c = kbd_buffer_get_event (&kb, used_mouse_menu, end_time); 3006 c = kbd_buffer_get_event (&kb, used_mouse_menu, end_time);
3037 restore_getcjmp (save_jump); 3007 restore_getcjmp (save_jump);
3038 3008
3039#ifdef MULTI_KBOARD
3040 if (! NILP (c) && (kb != current_kboard)) 3009 if (! NILP (c) && (kb != current_kboard))
3041 { 3010 {
3042 Lisp_Object link = kb->kbd_queue; 3011 Lisp_Object link = kb->kbd_queue;
@@ -3061,7 +3030,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
3061 UNGCPRO; 3030 UNGCPRO;
3062 return make_number (-2); 3031 return make_number (-2);
3063 } 3032 }
3064#endif
3065 } 3033 }
3066 3034
3067 /* Terminate Emacs in batch mode if at eof. */ 3035 /* Terminate Emacs in batch mode if at eof. */
@@ -3704,7 +3672,6 @@ readable_events (flags)
3704/* Set this for debugging, to have a way to get out */ 3672/* Set this for debugging, to have a way to get out */
3705int stop_character; 3673int stop_character;
3706 3674
3707#ifdef MULTI_KBOARD
3708static KBOARD * 3675static KBOARD *
3709event_to_kboard (event) 3676event_to_kboard (event)
3710 struct input_event *event; 3677 struct input_event *event;
@@ -3724,7 +3691,6 @@ event_to_kboard (event)
3724 else 3691 else
3725 return FRAME_KBOARD (XFRAME (frame)); 3692 return FRAME_KBOARD (XFRAME (frame));
3726} 3693}
3727#endif
3728 3694
3729 3695
3730Lisp_Object Vthrow_on_input; 3696Lisp_Object Vthrow_on_input;
@@ -3774,7 +3740,6 @@ kbd_buffer_store_event_hold (event, hold_quit)
3774 3740
3775 if (c == quit_char) 3741 if (c == quit_char)
3776 { 3742 {
3777#ifdef MULTI_KBOARD
3778 KBOARD *kb = FRAME_KBOARD (XFRAME (event->frame_or_window)); 3743 KBOARD *kb = FRAME_KBOARD (XFRAME (event->frame_or_window));
3779 struct input_event *sp; 3744 struct input_event *sp;
3780 3745
@@ -3798,7 +3763,6 @@ kbd_buffer_store_event_hold (event, hold_quit)
3798 } 3763 }
3799 return; 3764 return;
3800 } 3765 }
3801#endif
3802 3766
3803 if (hold_quit) 3767 if (hold_quit)
3804 { 3768 {
@@ -4109,13 +4073,9 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
4109 4073
4110 last_event_timestamp = event->timestamp; 4074 last_event_timestamp = event->timestamp;
4111 4075
4112#ifdef MULTI_KBOARD
4113 *kbp = event_to_kboard (event); 4076 *kbp = event_to_kboard (event);
4114 if (*kbp == 0) 4077 if (*kbp == 0)
4115 *kbp = current_kboard; /* Better than returning null ptr? */ 4078 *kbp = current_kboard; /* Better than returning null ptr? */
4116#else
4117 *kbp = &the_only_kboard;
4118#endif
4119 4079
4120 obj = Qnil; 4080 obj = Qnil;
4121 4081
@@ -9399,14 +9359,11 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
9399 else 9359 else
9400 { 9360 {
9401 { 9361 {
9402#ifdef MULTI_KBOARD
9403 KBOARD *interrupted_kboard = current_kboard; 9362 KBOARD *interrupted_kboard = current_kboard;
9404 struct frame *interrupted_frame = SELECTED_FRAME (); 9363 struct frame *interrupted_frame = SELECTED_FRAME ();
9405#endif
9406 key = read_char (NILP (prompt), nmaps, 9364 key = read_char (NILP (prompt), nmaps,
9407 (Lisp_Object *) submaps, last_nonmenu_event, 9365 (Lisp_Object *) submaps, last_nonmenu_event,
9408 &used_mouse_menu, NULL); 9366 &used_mouse_menu, NULL);
9409#ifdef MULTI_KBOARD
9410 if (INTEGERP (key) && XINT (key) == -2) /* wrong_kboard_jmpbuf */ 9367 if (INTEGERP (key) && XINT (key) == -2) /* wrong_kboard_jmpbuf */
9411 { 9368 {
9412 int found = 0; 9369 int found = 0;
@@ -9455,7 +9412,6 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
9455 orig_keymap = get_local_map (PT, current_buffer, Qkeymap); 9412 orig_keymap = get_local_map (PT, current_buffer, Qkeymap);
9456 goto replay_sequence; 9413 goto replay_sequence;
9457 } 9414 }
9458#endif
9459 } 9415 }
9460 9416
9461 /* read_char returns t when it shows a menu and the user rejects it. 9417 /* read_char returns t when it shows a menu and the user rejects it.
@@ -11541,8 +11497,6 @@ wipe_kboard (kb)
11541 xfree (kb->kbd_macro_buffer); 11497 xfree (kb->kbd_macro_buffer);
11542} 11498}
11543 11499
11544#ifdef MULTI_KBOARD
11545
11546/* Free KB and memory referenced from it. */ 11500/* Free KB and memory referenced from it. */
11547 11501
11548void 11502void
@@ -11571,8 +11525,6 @@ delete_kboard (kb)
11571 xfree (kb); 11525 xfree (kb);
11572} 11526}
11573 11527
11574#endif /* MULTI_KBOARD */
11575
11576void 11528void
11577init_keyboard () 11529init_keyboard ()
11578{ 11530{
@@ -11599,9 +11551,7 @@ init_keyboard ()
11599 internal_last_event_frame = Qnil; 11551 internal_last_event_frame = Qnil;
11600 Vlast_event_frame = internal_last_event_frame; 11552 Vlast_event_frame = internal_last_event_frame;
11601 11553
11602#ifdef MULTI_KBOARD
11603 current_kboard = initial_kboard; 11554 current_kboard = initial_kboard;
11604#endif
11605 /* Re-initialize the keyboard again. */ 11555 /* Re-initialize the keyboard again. */
11606 wipe_kboard (current_kboard); 11556 wipe_kboard (current_kboard);
11607 init_kboard (current_kboard); 11557 init_kboard (current_kboard);
@@ -12444,14 +12394,12 @@ Help functions bind this to allow help on disabled menu items
12444and tool-bar buttons. */); 12394and tool-bar buttons. */);
12445 Venable_disabled_menus_and_buttons = Qnil; 12395 Venable_disabled_menus_and_buttons = Qnil;
12446 12396
12447#ifdef MULTI_KBOARD
12448 /* Create the initial keyboard. */ 12397 /* Create the initial keyboard. */
12449 initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); 12398 initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
12450 init_kboard (initial_kboard); 12399 init_kboard (initial_kboard);
12451 /* Vwindow_system is left at t for now. */ 12400 /* Vwindow_system is left at t for now. */
12452 initial_kboard->next_kboard = all_kboards; 12401 initial_kboard->next_kboard = all_kboards;
12453 all_kboards = initial_kboard; 12402 all_kboards = initial_kboard;
12454#endif
12455} 12403}
12456 12404
12457void 12405void
diff --git a/src/keyboard.h b/src/keyboard.h
index afdcd9d13de..d0c3c860072 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -171,7 +171,6 @@ struct kboard
171 char echo_after_prompt; 171 char echo_after_prompt;
172 }; 172 };
173 173
174#ifdef MULTI_KBOARD
175/* Temporarily used before a frame has been opened. */ 174/* Temporarily used before a frame has been opened. */
176extern KBOARD *initial_kboard; 175extern KBOARD *initial_kboard;
177 176
@@ -188,12 +187,6 @@ extern KBOARD *all_kboards;
188 187
189/* Nonzero in the single-kboard state, 0 in the any-kboard state. */ 188/* Nonzero in the single-kboard state, 0 in the any-kboard state. */
190extern int single_kboard; 189extern int single_kboard;
191#else
192extern KBOARD the_only_kboard;
193#define current_kboard (&the_only_kboard)
194#define all_kboards (&the_only_kboard)
195#define single_kboard 1
196#endif
197 190
198/* Total number of times read_char has returned. */ 191/* Total number of times read_char has returned. */
199extern int num_input_events; 192extern int num_input_events;
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index 5a4bcb9d131..166d0960706 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -206,8 +206,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
206#define HAVE_MOUSE 1 206#define HAVE_MOUSE 1
207#define HAVE_H_ERRNO 1 207#define HAVE_H_ERRNO 1
208 208
209#define MULTI_KBOARD 1
210
211#ifdef HAVE_NTGUI 209#ifdef HAVE_NTGUI
212#define HAVE_WINDOW_SYSTEM 1 210#define HAVE_WINDOW_SYSTEM 1
213#define HAVE_MENUS 1 211#define HAVE_MENUS 1
diff --git a/src/sysdep.c b/src/sysdep.c
index 6e0107dfe3f..908375d344d 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -3176,8 +3176,7 @@ rename (from, to)
3176#endif 3176#endif
3177 3177
3178 3178
3179#ifdef HPUX 3179#if defined(HPUX) && !defined(HAVE_PERROR)
3180#ifndef HAVE_PERROR
3181 3180
3182/* HPUX curses library references perror, but as far as we know 3181/* HPUX curses library references perror, but as far as we know
3183 it won't be called. Anyway this definition will do for now. */ 3182 it won't be called. Anyway this definition will do for now. */
@@ -3185,9 +3184,7 @@ rename (from, to)
3185perror () 3184perror ()
3186{ 3185{
3187} 3186}
3188 3187#endif /* HPUX and not HAVE_PERROR */
3189#endif /* not HAVE_PERROR */
3190#endif /* HPUX */
3191 3188
3192#ifndef HAVE_DUP2 3189#ifndef HAVE_DUP2
3193 3190
diff --git a/src/term.c b/src/term.c
index c9e3a0e35cf..0132443833d 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3571,7 +3571,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
3571 tty->TF_teleray = tgetflag ("xt"); 3571 tty->TF_teleray = tgetflag ("xt");
3572 3572
3573#endif /* !WINDOWSNT */ 3573#endif /* !WINDOWSNT */
3574#ifdef MULTI_KBOARD
3575 terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); 3574 terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
3576 init_kboard (terminal->kboard); 3575 init_kboard (terminal->kboard);
3577 terminal->kboard->Vwindow_system = Qnil; 3576 terminal->kboard->Vwindow_system = Qnil;
@@ -3585,10 +3584,7 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
3585 current_kboard = terminal->kboard; 3584 current_kboard = terminal->kboard;
3586#ifndef WINDOWSNT 3585#ifndef WINDOWSNT
3587 term_get_fkeys (address, terminal->kboard); 3586 term_get_fkeys (address, terminal->kboard);
3588#endif
3589#endif
3590 3587
3591#ifndef WINDOWSNT
3592 /* Get frame size from system, or else from termcap. */ 3588 /* Get frame size from system, or else from termcap. */
3593 { 3589 {
3594 int height, width; 3590 int height, width;
diff --git a/src/termhooks.h b/src/termhooks.h
index df8d48944db..f81d5b6a2b6 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -342,10 +342,8 @@ struct terminal
342 times. */ 342 times. */
343 char *name; 343 char *name;
344 344
345#ifdef MULTI_KBOARD
346 /* The terminal's keyboard object. */ 345 /* The terminal's keyboard object. */
347 struct kboard *kboard; 346 struct kboard *kboard;
348#endif
349 347
350#ifdef HAVE_WINDOW_SYSTEM 348#ifdef HAVE_WINDOW_SYSTEM
351 /* Cache of images. */ 349 /* Cache of images. */
diff --git a/src/terminal.c b/src/terminal.c
index 9ec14ca3c1f..6b6edf14316 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -284,13 +284,11 @@ delete_terminal (struct terminal *terminal)
284 xfree (terminal->terminal_coding); 284 xfree (terminal->terminal_coding);
285 terminal->terminal_coding = NULL; 285 terminal->terminal_coding = NULL;
286 286
287#ifdef MULTI_KBOARD
288 if (terminal->kboard && --terminal->kboard->reference_count == 0) 287 if (terminal->kboard && --terminal->kboard->reference_count == 0)
289 { 288 {
290 delete_kboard (terminal->kboard); 289 delete_kboard (terminal->kboard);
291 terminal->kboard = NULL; 290 terminal->kboard = NULL;
292 } 291 }
293#endif
294} 292}
295 293
296Lisp_Object Qrun_hook_with_args; 294Lisp_Object Qrun_hook_with_args;
@@ -535,9 +533,7 @@ init_initial_terminal (void)
535 initial_terminal = create_terminal (); 533 initial_terminal = create_terminal ();
536 initial_terminal->type = output_initial; 534 initial_terminal->type = output_initial;
537 initial_terminal->name = xstrdup ("initial_terminal"); 535 initial_terminal->name = xstrdup ("initial_terminal");
538#ifdef MULTI_KBOARD
539 initial_terminal->kboard = initial_kboard; 536 initial_terminal->kboard = initial_kboard;
540#endif
541 initial_terminal->delete_terminal_hook = &delete_initial_terminal; 537 initial_terminal->delete_terminal_hook = &delete_initial_terminal;
542 /* All other hooks are NULL. */ 538 /* All other hooks are NULL. */
543 539
diff --git a/src/w32fns.c b/src/w32fns.c
index a12c349e4ca..2fb03114007 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -4290,11 +4290,7 @@ This function is an internal primitive--use `make-frame' instead. */)
4290 if (EQ (display, Qunbound)) 4290 if (EQ (display, Qunbound))
4291 display = Qnil; 4291 display = Qnil;
4292 dpyinfo = check_x_display_info (display); 4292 dpyinfo = check_x_display_info (display);
4293#ifdef MULTI_KBOARD
4294 kb = dpyinfo->terminal->kboard; 4293 kb = dpyinfo->terminal->kboard;
4295#else
4296 kb = &the_only_kboard;
4297#endif
4298 4294
4299 if (!dpyinfo->terminal->name) 4295 if (!dpyinfo->terminal->name)
4300 error ("Terminal is not live, can't create new frames on it"); 4296 error ("Terminal is not live, can't create new frames on it");
@@ -5411,11 +5407,7 @@ x_create_tip_frame (dpyinfo, parms, text)
5411 this frame has a specified name. */ 5407 this frame has a specified name. */
5412 Vx_resource_name = Vinvocation_name; 5408 Vx_resource_name = Vinvocation_name;
5413 5409
5414#ifdef MULTI_KBOARD
5415 kb = dpyinfo->terminal->kboard; 5410 kb = dpyinfo->terminal->kboard;
5416#else
5417 kb = &the_only_kboard;
5418#endif
5419 5411
5420 /* Get the name of the frame to use for resource lookup. */ 5412 /* Get the name of the frame to use for resource lookup. */
5421 name = x_get_arg (dpyinfo, parms, Qname, "name", "Name", RES_TYPE_STRING); 5413 name = x_get_arg (dpyinfo, parms, Qname, "name", "Name", RES_TYPE_STRING);
@@ -5464,9 +5456,7 @@ x_create_tip_frame (dpyinfo, parms, text)
5464 image_cache_refcount = FRAME_IMAGE_CACHE (f)->refcount; 5456 image_cache_refcount = FRAME_IMAGE_CACHE (f)->refcount;
5465 dpyinfo_refcount = dpyinfo->reference_count; 5457 dpyinfo_refcount = dpyinfo->reference_count;
5466#endif /* GLYPH_DEBUG */ 5458#endif /* GLYPH_DEBUG */
5467#ifdef MULTI_KBOARD
5468 FRAME_KBOARD (f) = kb; 5459 FRAME_KBOARD (f) = kb;
5469#endif
5470 f->output_data.w32->parent_desc = FRAME_W32_DISPLAY_INFO (f)->root_window; 5460 f->output_data.w32->parent_desc = FRAME_W32_DISPLAY_INFO (f)->root_window;
5471 f->output_data.w32->explicit_parent = 0; 5461 f->output_data.w32->explicit_parent = 0;
5472 5462
diff --git a/src/w32term.c b/src/w32term.c
index 26473cfdd4a..85ac8d948cd 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -6108,7 +6108,6 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
6108 terminal->memory_below_frame = 0; /* We don't remember what scrolls 6108 terminal->memory_below_frame = 0; /* We don't remember what scrolls
6109 off the bottom. */ 6109 off the bottom. */
6110 6110
6111#ifdef MULTI_KBOARD
6112 /* We don't yet support separate terminals on W32, so don't try to share 6111 /* We don't yet support separate terminals on W32, so don't try to share
6113 keyboards between virtual terminals that are on the same physical 6112 keyboards between virtual terminals that are on the same physical
6114 terminal like X does. */ 6113 terminal like X does. */
@@ -6123,7 +6122,6 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
6123 if (current_kboard == initial_kboard) 6122 if (current_kboard == initial_kboard)
6124 current_kboard = terminal->kboard; 6123 current_kboard = terminal->kboard;
6125 terminal->kboard->reference_count++; 6124 terminal->kboard->reference_count++;
6126#endif
6127 6125
6128 return terminal; 6126 return terminal;
6129} 6127}
diff --git a/src/window.c b/src/window.c
index aa3077aa55a..de0d0d01589 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2533,7 +2533,6 @@ void
2533replace_buffer_in_all_windows (buffer) 2533replace_buffer_in_all_windows (buffer)
2534 Lisp_Object buffer; 2534 Lisp_Object buffer;
2535{ 2535{
2536#ifdef MULTI_KBOARD
2537 Lisp_Object tail, frame; 2536 Lisp_Object tail, frame;
2538 2537
2539 /* A single call to window_loop won't do the job 2538 /* A single call to window_loop won't do the job
@@ -2541,9 +2540,6 @@ replace_buffer_in_all_windows (buffer)
2541 So loop manually over frames, and handle each one. */ 2540 So loop manually over frames, and handle each one. */
2542 FOR_EACH_FRAME (tail, frame) 2541 FOR_EACH_FRAME (tail, frame)
2543 window_loop (UNSHOW_BUFFER, buffer, 1, frame); 2542 window_loop (UNSHOW_BUFFER, buffer, 1, frame);
2544#else
2545 window_loop (UNSHOW_BUFFER, buffer, 1, Qt);
2546#endif
2547} 2543}
2548 2544
2549/* Set the height of WINDOW and all its inferiors. */ 2545/* Set the height of WINDOW and all its inferiors. */
diff --git a/src/xfns.c b/src/xfns.c
index 6aeb04ba1f8..1af0e76caa1 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3143,11 +3143,7 @@ This function is an internal primitive--use `make-frame' instead. */)
3143 if (EQ (display, Qunbound)) 3143 if (EQ (display, Qunbound))
3144 display = Qnil; 3144 display = Qnil;
3145 dpyinfo = check_x_display_info (display); 3145 dpyinfo = check_x_display_info (display);
3146#ifdef MULTI_KBOARD
3147 kb = dpyinfo->terminal->kboard; 3146 kb = dpyinfo->terminal->kboard;
3148#else
3149 kb = &the_only_kboard;
3150#endif
3151 3147
3152 if (!dpyinfo->terminal->name) 3148 if (!dpyinfo->terminal->name)
3153 error ("Terminal is not live, can't create new frames on it"); 3149 error ("Terminal is not live, can't create new frames on it");
diff --git a/src/xselect.c b/src/xselect.c
index f2c4ae79b6a..50a42e38b86 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1015,7 +1015,6 @@ x_handle_selection_clear (event)
1015 1015
1016 TRACE0 ("x_handle_selection_clear"); 1016 TRACE0 ("x_handle_selection_clear");
1017 1017
1018#ifdef MULTI_KBOARD
1019 /* If the new selection owner is also Emacs, 1018 /* If the new selection owner is also Emacs,
1020 don't clear the new selection. */ 1019 don't clear the new selection. */
1021 BLOCK_INPUT; 1020 BLOCK_INPUT;
@@ -1034,7 +1033,6 @@ x_handle_selection_clear (event)
1034 } 1033 }
1035 } 1034 }
1036 UNBLOCK_INPUT; 1035 UNBLOCK_INPUT;
1037#endif
1038 1036
1039 selection_symbol = x_atom_to_symbol (display, selection); 1037 selection_symbol = x_atom_to_symbol (display, selection);
1040 1038
diff --git a/src/xterm.c b/src/xterm.c
index 57092c25859..a32f4e1a397 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -9859,7 +9859,6 @@ static int x_initialized;
9859static int x_session_initialized; 9859static int x_session_initialized;
9860#endif 9860#endif
9861 9861
9862#ifdef MULTI_KBOARD
9863/* Test whether two display-name strings agree up to the dot that separates 9862/* Test whether two display-name strings agree up to the dot that separates
9864 the screen number from the server number. */ 9863 the screen number from the server number. */
9865static int 9864static int
@@ -9906,7 +9905,6 @@ same_x_server (name1, name2)
9906 && (*name1 == '.' || *name1 == '\0') 9905 && (*name1 == '.' || *name1 == '\0')
9907 && (*name2 == '.' || *name2 == '\0')); 9906 && (*name2 == '.' || *name2 == '\0'));
9908} 9907}
9909#endif
9910 9908
9911/* Count number of set bits in mask and number of bits to shift to 9909/* Count number of set bits in mask and number of bits to shift to
9912 get to the first bit. With MASK 0x7e0, *BITS is set to 6, and *OFFSET 9910 get to the first bit. With MASK 0x7e0, *BITS is set to 6, and *OFFSET
@@ -10105,7 +10103,6 @@ x_term_init (display_name, xrm_option, resource_name)
10105 10103
10106 terminal = x_create_terminal (dpyinfo); 10104 terminal = x_create_terminal (dpyinfo);
10107 10105
10108#ifdef MULTI_KBOARD
10109 { 10106 {
10110 struct x_display_info *share; 10107 struct x_display_info *share;
10111 Lisp_Object tail; 10108 Lisp_Object tail;
@@ -10142,7 +10139,6 @@ x_term_init (display_name, xrm_option, resource_name)
10142 } 10139 }
10143 terminal->kboard->reference_count++; 10140 terminal->kboard->reference_count++;
10144 } 10141 }
10145#endif
10146 10142
10147 /* Put this display on the chain. */ 10143 /* Put this display on the chain. */
10148 dpyinfo->next = x_display_list; 10144 dpyinfo->next = x_display_list;