changeset 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 6852207d73f3
children d227ffcaa3fe
files src/ChangeLog src/frame.c src/keyboard.c
diffstat 3 files changed, 22 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Oct 31 16:16:12 2007 +0000
+++ b/src/ChangeLog	Wed Oct 31 19:25:32 2007 +0000
@@ -1,3 +1,10 @@
+2007-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* 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.
+
 2007-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* s/usg5-4.h:
--- a/src/frame.c	Wed Oct 31 16:16:12 2007 +0000
+++ b/src/frame.c	Wed Oct 31 19:25:32 2007 +0000
@@ -513,17 +513,7 @@
   struct terminal *terminal;
   Lisp_Object frame;
 
-#ifdef MULTI_KBOARD
-  /* Create the initial keyboard. */
-  if (!initial_kboard)
-    {
-      initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
-      init_kboard (initial_kboard);
-      /* Leave Vwindow_system at its `t' default for now.  */
-      initial_kboard->next_kboard = all_kboards;
-      all_kboards = initial_kboard;
-    }
-#endif
+  eassert (initial_kboard);
 
   /* The first call must initialize Vframe_list.  */
   if (! (NILP (Vframe_list) || CONSP (Vframe_list)))
--- 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