Updare French translation for binutils and German translation for opcodes.
[deliverable/binutils-gdb.git] / gdb / tui / tui-file.c
index 9efba954980fcd17a70bbd12c656c2ca4d06b776..cf853b8be488e55a585148ed5833419d4efdc32d 100644 (file)
@@ -1,5 +1,5 @@
 /* UI_FILE - a generic STDIO like output stream.
-   Copyright (C) 1999-2001, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2015 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #include "ui-file.h"
 #include "tui/tui-file.h"
 #include "tui/tui-io.h"
-
+#include "tui/tui-command.h"
 #include "tui.h"
 
-#include "gdb_string.h"
-
 /* A ``struct ui_file'' that is compatible with all the legacy
    code.  */
 
@@ -57,7 +55,7 @@ static int tui_file_magic;
 static struct ui_file *
 tui_file_new (void)
 {
-  struct tui_stream *tui = XMALLOC (struct tui_stream);
+  struct tui_stream *tui = XNEW (struct tui_stream);
   struct ui_file *file = ui_file_new ();
 
   set_ui_file_data (file, tui, tui_file_delete);
@@ -73,7 +71,7 @@ tui_file_new (void)
 static void
 tui_file_delete (struct ui_file *file)
 {
-  struct tui_stream *tmpstream = ui_file_data (file);
+  struct tui_stream *tmpstream = (struct tui_stream *) ui_file_data (file);
 
   if (tmpstream->ts_magic != &tui_file_magic)
     internal_error (__FILE__, __LINE__,
@@ -90,7 +88,7 @@ struct ui_file *
 tui_fileopen (FILE *stream)
 {
   struct ui_file *file = tui_file_new ();
-  struct tui_stream *tmpstream = ui_file_data (file);
+  struct tui_stream *tmpstream = (struct tui_stream *) ui_file_data (file);
 
   tmpstream->ts_streamtype = afile;
   tmpstream->ts_filestream = stream;
@@ -103,13 +101,13 @@ struct ui_file *
 tui_sfileopen (int n)
 {
   struct ui_file *file = tui_file_new ();
-  struct tui_stream *tmpstream = ui_file_data (file);
+  struct tui_stream *tmpstream = (struct tui_stream *) ui_file_data (file);
 
   tmpstream->ts_streamtype = astring;
   tmpstream->ts_filestream = NULL;
   if (n > 0)
     {
-      tmpstream->ts_strbuf = xmalloc ((n + 1) * sizeof (char));
+      tmpstream->ts_strbuf = XNEWVEC (char, n + 1);
       tmpstream->ts_strbuf[0] = '\0';
     }
   else
@@ -123,7 +121,7 @@ tui_sfileopen (int n)
 static int
 tui_file_isatty (struct ui_file *file)
 {
-  struct tui_stream *stream = ui_file_data (file);
+  struct tui_stream *stream = (struct tui_stream *) ui_file_data (file);
 
   if (stream->ts_magic != &tui_file_magic)
     internal_error (__FILE__, __LINE__,
@@ -137,7 +135,7 @@ tui_file_isatty (struct ui_file *file)
 static void
 tui_file_rewind (struct ui_file *file)
 {
-  struct tui_stream *stream = ui_file_data (file);
+  struct tui_stream *stream = (struct tui_stream *) ui_file_data (file);
 
   if (stream->ts_magic != &tui_file_magic)
     internal_error (__FILE__, __LINE__,
@@ -150,7 +148,7 @@ tui_file_put (struct ui_file *file,
              ui_file_put_method_ftype *write,
              void *dest)
 {
-  struct tui_stream *stream = ui_file_data (file);
+  struct tui_stream *stream = (struct tui_stream *) ui_file_data (file);
 
   if (stream->ts_magic != &tui_file_magic)
     internal_error (__FILE__, __LINE__,
@@ -171,7 +169,7 @@ tui_file_put (struct ui_file *file,
 void
 tui_file_fputs (const char *linebuffer, struct ui_file *file)
 {
-  struct tui_stream *stream = ui_file_data (file);
+  struct tui_stream *stream = (struct tui_stream *) ui_file_data (file);
 
   if (stream->ts_streamtype == astring)
     {
@@ -181,13 +179,17 @@ tui_file_fputs (const char *linebuffer, struct ui_file *file)
   else
     {
       tui_puts (linebuffer);
+      /* gdb_stdout is buffered, and the caller must gdb_flush it at
+        appropriate times.  Other streams are not so buffered.  */
+      if (file != gdb_stdout)
+       tui_refresh_cmd_win ();
     }
 }
 
 char *
 tui_file_get_strbuf (struct ui_file *file)
 {
-  struct tui_stream *stream = ui_file_data (file);
+  struct tui_stream *stream = (struct tui_stream *) ui_file_data (file);
 
   if (stream->ts_magic != &tui_file_magic)
     internal_error (__FILE__, __LINE__,
@@ -201,7 +203,7 @@ tui_file_get_strbuf (struct ui_file *file)
 void
 tui_file_adjust_strbuf (int n, struct ui_file *file)
 {
-  struct tui_stream *stream = ui_file_data (file);
+  struct tui_stream *stream = (struct tui_stream *) ui_file_data (file);
   int non_null_chars;
 
   if (stream->ts_magic != &tui_file_magic)
@@ -219,18 +221,19 @@ tui_file_adjust_strbuf (int n, struct ui_file *file)
       if (n > (stream->ts_buflen - non_null_chars - 1))
        {
          stream->ts_buflen = n + non_null_chars + 1;
-         stream->ts_strbuf = xrealloc (stream->ts_strbuf, stream->ts_buflen);
+         stream->ts_strbuf
+           = XRESIZEVEC (char, stream->ts_strbuf, stream->ts_buflen);
        }
     }
   else
     /* No buffer yet, so allocate one of the desired size.  */
-    stream->ts_strbuf = xmalloc ((n + 1) * sizeof (char));
+    stream->ts_strbuf = XNEWVEC (char, n + 1);
 }
 
 static void
 tui_file_flush (struct ui_file *file)
 {
-  struct tui_stream *stream = ui_file_data (file);
+  struct tui_stream *stream = (struct tui_stream *) ui_file_data (file);
 
   if (stream->ts_magic != &tui_file_magic)
     internal_error (__FILE__, __LINE__,
@@ -241,6 +244,10 @@ tui_file_flush (struct ui_file *file)
     case astring:
       break;
     case afile:
+      /* gdb_stdout is buffered.  Other files are always flushed on
+        every write.  */
+      if (file == gdb_stdout)
+       tui_refresh_cmd_win ();
       fflush (stream->ts_filestream);
       break;
     }
This page took 0.025881 seconds and 4 git commands to generate.