-static int outfd = 1;
-void Sys_PrintToTerminal(const char *text)
-{
-#ifdef __ANDROID__
- if (developer.integer > 0)
- {
- __android_log_write(ANDROID_LOG_DEBUG, com_argv[0], text);
- }
-#else
- if(outfd < 0)
- return;
-#ifdef FNDELAY
- // BUG: for some reason, NDELAY also affects stdout (1) when used on stdin (0).
- // this is because both go to /dev/tty by default!
- {
- int origflags = fcntl (outfd, F_GETFL, 0);
- fcntl (outfd, F_SETFL, origflags & ~FNDELAY);
-#endif
-#ifdef WIN32
-#define write _write
-#endif
- while(*text)
- {
- fs_offset_t written = (fs_offset_t)write(outfd, text, (int)strlen(text));
- if(written <= 0)
- break; // sorry, I cannot do anything about this error - without an output
- text += written;
- }
-#ifdef FNDELAY
- fcntl (outfd, F_SETFL, origflags);
- }
-#endif
- //fprintf(stdout, "%s", text);
-#endif
-}
-
-char *Sys_ConsoleInput(void)
-{
-// if (cls.state == ca_dedicated)
- {
- static char text[MAX_INPUTLINE];
- int len = 0;
-#ifdef WIN32
- int c;
-
- // read a line out
- while (_kbhit ())
- {
- c = _getch ();
- _putch (c);
- if (c == '\r')
- {
- text[len] = 0;
- _putch ('\n');
- len = 0;
- return text;
- }
- if (c == 8)
- {
- if (len)
- {
- _putch (' ');
- _putch (c);
- len--;
- text[len] = 0;
- }
- continue;
- }
- text[len] = c;
- len++;
- text[len] = 0;
- if (len == sizeof (text))
- len = 0;
- }
-#else
- fd_set fdset;
- struct timeval timeout;
- FD_ZERO(&fdset);
- FD_SET(0, &fdset); // stdin
- timeout.tv_sec = 0;
- timeout.tv_usec = 0;
- if (select (1, &fdset, NULL, NULL, &timeout) != -1 && FD_ISSET(0, &fdset))
- {
- len = read (0, text, sizeof(text));
- if (len >= 1)
- {
- // rip off the \n and terminate
- text[len-1] = 0;
- return text;
- }
- }
-#endif
- }
- return NULL;
-}
-
-char *Sys_GetClipboardData (void)