diff src/console-stream.c @ 442:abe6d1db359e r21-2-36

Import from CVS: tag r21-2-36
author cvs
date Mon, 13 Aug 2007 11:35:02 +0200
parents 3ecd8885ac67
children 576fb035e263
line wrap: on
line diff
--- a/src/console-stream.c	Mon Aug 13 11:33:40 2007 +0200
+++ b/src/console-stream.c	Mon Aug 13 11:35:02 2007 +0200
@@ -69,7 +69,9 @@
     {
       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 @@
 
 static int
 stream_text_width (struct frame *f, struct face_cachel *cachel,
-		   CONST Emchar *str, Charcount len)
+		   const Emchar *str, Charcount len)
 {
   return len;
 }
@@ -201,16 +203,6 @@
 }
 
 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 @@
 }
 
 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 @@
 {
 }
 
-static void
-stream_clear_frame (struct frame *f)
-{
-}
-
 static int
 stream_flash (struct device *d)
 {
@@ -285,14 +262,9 @@
   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);
 }
@@ -328,7 +300,7 @@
 
 #ifndef PDUMP
 void
-init_console_stream (void)
+init_console_stream (int reinit)
 {
   /* This function can GC */
   if (!initialized)
@@ -350,13 +322,16 @@
 #else
 
 void
-init_console_stream (void)
+init_console_stream (int reinit)
 {
   /* This function can GC */
-  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 (!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);