]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/console.cpp
- Fix: Added missing xml-writer pop-calls
[xonotic/netradiant.git] / radiant / console.cpp
index 5c462405074cb35905d73cbf2e86232f0d831cda..37a034284212d1fdc3d53a4f12cf27628a4d59ea 100644 (file)
@@ -107,6 +107,7 @@ gboolean destroy_set_null(GtkWindow* widget, GtkWidget** p)
   return FALSE;
 }
 
+WidgetFocusPrinter g_consoleWidgetFocusPrinter("console");
 
 GtkWidget* Console_constructWindow(GtkWindow* toplevel)
 {
@@ -128,6 +129,8 @@ GtkWidget* Console_constructWindow(GtkWindow* toplevel)
 
     widget_connect_escape_clear_focus_widget(g_console);
 
+    //g_consoleWidgetFocusPrinter.connect(g_console);
+
     g_signal_connect(G_OBJECT(g_console), "populate-popup", G_CALLBACK(console_populate_popup), 0);
     g_signal_connect(G_OBJECT(g_console), "destroy", G_CALLBACK(destroy_set_null), &g_console);
   }
@@ -155,7 +158,7 @@ public:
 
 std::size_t Sys_Print(int level, const char* buf, std::size_t length)
 {
-  bool contains_newline = strchr(buf, '\n') != 0;
+  bool contains_newline = std::find(buf, buf+length, '\n') != buf+length;
 
   if(level == SYS_ERR)
   {
@@ -206,14 +209,17 @@ std::size_t Sys_Print(int level, const char* buf, std::size_t length)
       }
 
 
-      GtkTextBufferOutputStream textBuffer(buffer, &iter, tag);
-      if(!globalCharacterSet().isUTF8())
-      {
-        textBuffer << ConvertLocaleToUTF8(StringRange(buf, buf + length));
-      }
-      else
       {
-        textBuffer << StringRange(buf, buf + length);
+        GtkTextBufferOutputStream textBuffer(buffer, &iter, tag);
+        if(!globalCharacterSet().isUTF8())
+        {
+          BufferedTextOutputStream<GtkTextBufferOutputStream> buffered(textBuffer);
+          buffered << ConvertLocaleToUTF8(StringRange(buf, buf + length));
+        }
+        else
+        {
+          textBuffer << StringRange(buf, buf + length);
+        }
       }
 
       // update console widget immediatly if we're doing something time-consuming