diff src/keyboard.c @ 85839:f32c70475c8e

* keyboard.c (syms_of_keyboard): Initialize the initial_kboard. (init_keyboard): Set current_kboard's window-system to nil. (tty_read_avail_input): Typo. * frame.c (make_initial_frame): Don't initialize the initial_kboard.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 31 Oct 2007 19:25:32 +0000
parents b210bba3f477
children 70564a109512
line wrap: on
line diff
--- a/src/keyboard.c	Wed Oct 31 16:16:12 2007 +0000
+++ b/src/keyboard.c	Wed Oct 31 19:25:32 2007 +0000
@@ -7097,7 +7097,7 @@
   int nread = 0;
 
   if (!terminal->name)		/* Don't read from a dead terminal. */
-    return;
+    return 0;
 
   if (terminal->type != output_termcap)
     abort ();
@@ -11572,9 +11572,12 @@
 #ifdef MULTI_KBOARD
   current_kboard = initial_kboard;
 #endif
+  /* Re-initialize the keyboard again.  */
   wipe_kboard (current_kboard);
   init_kboard (current_kboard);
-  /* Leave Vwindow_system at its `t' default for now.  */
+  /* A value of nil for Vwindow_system normally means a tty, but we also use
+     it for the initial terminal since there is no window system there.  */
+  current_kboard->Vwindow_system = Qnil;
 
   if (!noninteractive)
     {
@@ -12400,6 +12403,15 @@
 Help functions bind this to allow help on disabled menu items
 and tool-bar buttons.  */);
   Venable_disabled_menus_and_buttons = Qnil;
+
+#ifdef MULTI_KBOARD
+  /* Create the initial keyboard. */
+  initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
+  init_kboard (initial_kboard);
+  /* Vwindow_system is left at t for now.  */
+  initial_kboard->next_kboard = all_kboards;
+  all_kboards = initial_kboard;
+#endif  
 }
 
 void