Merge r21-4-11-chise-0_20-=ucs.
[chise/xemacs-chise.git.1] / src / console-stream.c
index 3953850..5e099b2 100644 (file)
@@ -69,7 +69,9 @@ stream_init_console (struct console *con, Lisp_Object params)
     {
       CHECK_STRING (tty);
       stream_con->in = stream_con->out = stream_con->err =
-       fopen ((char *) XSTRING_DATA (tty), "r+");
+       /* #### We don't currently do coding-system translation on
+          this descriptor. */
+       fopen ((char *) XSTRING_DATA (tty), READ_PLUS_TEXT);
       if (!stream_con->in)
        error ("Unable to open tty %s", XSTRING_DATA (tty));
     }
@@ -171,7 +173,7 @@ stream_init_frame_1 (struct frame *f, Lisp_Object props)
 \f
 static int
 stream_text_width (struct frame *f, struct face_cachel *cachel,
-                  CONST Emchar *str, Charcount len)
+                  const Charc *str, Charcount len)
 {
   return len;
 }
@@ -201,16 +203,6 @@ stream_eol_cursor_width (void)
 }
 
 static void
-stream_output_begin (struct device *d)
-{
-}
-
-static void
-stream_output_end (struct device *d)
-{
-}
-
-static void
 stream_output_display_block (struct window *w, struct display_line *dl,
                             int block, int start, int end,
                             int start_pixpos, int cursor_start,
@@ -219,16 +211,6 @@ stream_output_display_block (struct window *w, struct display_line *dl,
 }
 
 static void
-stream_output_vertical_divider (struct window *w, int clear)
-{
-}
-
-static void
-stream_clear_to_window_end (struct window *w, int ypos1, int ypos2)
-{
-}
-
-static void
 stream_clear_region (Lisp_Object window, struct device* d, struct frame * f,
                  face_index findex, int x, int y,
                  int width, int height, Lisp_Object fcolor, Lisp_Object bcolor,
@@ -236,11 +218,6 @@ stream_clear_region (Lisp_Object window, struct device* d, struct frame * f,
 {
 }
 
-static void
-stream_clear_frame (struct frame *f)
-{
-}
-
 static int
 stream_flash (struct device *d)
 {
@@ -285,33 +262,34 @@ console_type_create_stream (void)
   CONSOLE_HAS_METHOD (stream, right_margin_width);
   CONSOLE_HAS_METHOD (stream, text_width);
   CONSOLE_HAS_METHOD (stream, output_display_block);
-  CONSOLE_HAS_METHOD (stream, output_vertical_divider);
   CONSOLE_HAS_METHOD (stream, divider_height);
   CONSOLE_HAS_METHOD (stream, eol_cursor_width);
-  CONSOLE_HAS_METHOD (stream, clear_to_window_end);
   CONSOLE_HAS_METHOD (stream, clear_region);
-  CONSOLE_HAS_METHOD (stream, clear_frame);
-  CONSOLE_HAS_METHOD (stream, output_begin);
-  CONSOLE_HAS_METHOD (stream, output_end);
   CONSOLE_HAS_METHOD (stream, flash);
   CONSOLE_HAS_METHOD (stream, ring_bell);
 }
 
 void
+reinit_console_type_create_stream (void)
+{
+  REINITIALIZE_CONSOLE_TYPE (stream);
+}
+
+void
 vars_of_console_stream (void)
 {
   DEFVAR_LISP ("terminal-console", &Vterminal_console /*
-The initial console-object, which represents XEmacs' stdout.
+The initial console object, which represents XEmacs' stdout.
 */ );
   Vterminal_console = Qnil;
 
   DEFVAR_LISP ("terminal-device", &Vterminal_device /*
-The initial device-object, which represents XEmacs' stdout.
+The initial device object, which represents XEmacs' stdout.
 */ );
   Vterminal_device = Qnil;
 
   DEFVAR_LISP ("terminal-frame", &Vterminal_frame /*
-The initial frame-object, which represents XEmacs' stdout.
+The initial frame object, which represents XEmacs' stdout.
 */ );
   Vterminal_frame = Qnil;
 
@@ -320,8 +298,9 @@ The initial frame-object, which represents XEmacs' stdout.
   staticpro (&Vstdio_str);
 }
 
+#ifndef PDUMP
 void
-init_console_stream (void)
+init_console_stream (int reinit)
 {
   /* This function can GC */
   if (!initialized)
@@ -339,3 +318,25 @@ init_console_stream (void)
         event_stream_select_console (XCONSOLE (Vterminal_console));
     }
 }
+
+#else
+
+void
+init_console_stream (int reinit)
+{
+  /* This function can GC */
+  if (!reinit)
+    {
+      Vterminal_device = Fmake_device (Qstream, Qnil, Qnil);
+      Vterminal_console = Fdevice_console (Vterminal_device);
+      Vterminal_frame = Fmake_frame (Qnil, Vterminal_device);
+      minibuf_window = XFRAME (Vterminal_frame)->minibuffer_window;
+    }
+  if (initialized)
+    {
+      stream_init_console (XCONSOLE (Vterminal_console), Qnil);
+      if (noninteractive)
+       event_stream_select_console (XCONSOLE (Vterminal_console));
+    }
+}
+#endif