]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sys_linux.c
don't need it twice...
[xonotic/darkplaces.git] / sys_linux.c
index e2bc4e32683365634d40ba77bea36fbd1371ed7f..b37576eeb156ddc3e99b35b09a26156374d441cc 100644 (file)
@@ -1,6 +1,8 @@
 #include "quakedef.h"
 
 #ifdef WIN32
+#include <windows.h>
+#include <mmsystem.h>
 #include <io.h>
 #include "conio.h"
 #else
@@ -68,7 +70,7 @@ void Sys_PrintToTerminal(const char *text)
 #endif
        while(*text)
        {
-               int written = (int)write(1, text, (int)strlen(text));
+               ssize_t written = write(1, text, strlen(text));
                if(written <= 0)
                        break; // sorry, I cannot do anything about this error - without an output
                text += written;
@@ -87,10 +89,9 @@ double Sys_DoubleTime (void)
        if(sys_usenoclockbutbenchmark.integer)
        {
                benchmark_time += 1;
-               return benchmark_time / 1e6;
+               return ((double) benchmark_time) / 1e6;
        }
 #ifdef WIN32
-#include <mmsystem.h>
        // LordHavoc: note to people modifying this code, DWORD is specifically defined as an unsigned 32bit number, therefore the 65536.0 * 65536.0 is fine.
        if (sys_usetimegettime.integer)
        {
@@ -234,11 +235,14 @@ char *Sys_ConsoleInput(void)
                timeout.tv_usec = 0;
                if (select (1, &fdset, NULL, NULL, &timeout) != -1 && FD_ISSET(0, &fdset))
                {
-                       len = read (0, text, sizeof(text));
+                       len = read (0, text, sizeof(text) - 1);
                        if (len >= 1)
                        {
                                // rip off the \n and terminate
-                               text[len-1] = 0;
+                               // div0: WHY? console code can deal with \n just fine
+                               // this caused problems with pasting stuff into a terminal window
+                               // so, not ripping off the \n, but STILL keeping a NUL terminator
+                               text[len] = 0;
                                return text;
                        }
                }