]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sys_linux.c
added r_glsl_restart command, and modified shaderstring loading back to the old way...
[xonotic/darkplaces.git] / sys_linux.c
index 0515c93445844ad7861580cde94c798a304b07f3..1edb74ddcf42ed8421f6eb18dfda882372626fab 100644 (file)
@@ -1,5 +1,6 @@
 
 #ifdef WIN32
+#include <io.h>
 #include "conio.h"
 #else
 #include <unistd.h>
@@ -51,7 +52,22 @@ void Sys_Error (const char *error, ...)
 
 void Sys_PrintToTerminal(const char *text)
 {
-       fprintf(stdout, "%s", text);
+#ifndef WIN32
+       // BUG: for some reason, NDELAY also affects stdout (1) when used on stdin (0).
+       int origflags = fcntl (1, F_GETFL, 0);
+       fcntl (1, F_SETFL, origflags & ~FNDELAY);
+#endif
+       while(*text)
+       {
+               int written = (int)write(1, text, (int)strlen(text));
+               if(written <= 0)
+                       break; // sorry, I cannot do anything about this error - without an output
+               text += written;
+       }
+#ifndef WIN32
+       fcntl (1, F_SETFL, origflags);
+#endif
+       //fprintf(stdout, "%s", text);
 }
 
 double Sys_DoubleTime (void)