#include <unistd.h>
#include <fcntl.h>
#include <sys/time.h>
-#include <dlfcn.h>
#endif
#include <signal.h>
cvar_t sys_usetimegettime = {CVAR_SAVE, "sys_usetimegettime", "1"};
#endif
-/*
-===============================================================================
-
-DLL MANAGEMENT
-
-===============================================================================
-*/
-
-dllhandle_t Sys_LoadLibrary (const char* name)
-{
-#ifdef WIN32
- return LoadLibrary (name);
-#else
- return dlopen (name, RTLD_LAZY);
-#endif
-}
-
-void Sys_UnloadLibrary (dllhandle_t handle)
-{
-#ifdef WIN32
- FreeLibrary (handle);
-#else
- dlclose (handle);
-#endif
-}
-
-void* Sys_GetProcAddress (dllhandle_t handle, const char* name)
-{
-#ifdef WIN32
- return (void *)GetProcAddress (handle, name);
-#else
- return (void *)dlsym (handle, name);
-#endif
-}
// =======================================================================
// General routines
// =======================================================================
-
-void Sys_Quit (void)
+void Sys_Shutdown (void)
{
- Host_Shutdown();
#ifndef WIN32
fcntl (0, F_SETFL, fcntl (0, F_GETFL, 0) & ~FNDELAY);
#endif
fflush(stdout);
- exit(0);
}
void Sys_Error (const char *error, ...)
#endif
va_start (argptr,error);
- vsprintf (string,error,argptr);
+ vsnprintf (string, sizeof (string), error, argptr);
va_end (argptr);
fprintf(stderr, "Error: %s\n", string);
Host_Shutdown ();
exit (1);
+}
+void Sys_PrintToTerminal(const char *text)
+{
+ printf("%s", text);
}
double Sys_DoubleTime (void)
if (cls.state == ca_dedicated)
{
static char text[256];
- int len;
+ static int len = 0;
#ifdef WIN32
int c;
while (_kbhit ())
{
c = _getch ();
- putch (c);
if (c == '\r')
{
- text[len] = 0;
+ text[len] = '\0';
putch ('\n');
len = 0;
return text;
}
- if (c == 8)
+ if (c == '\b')
{
if (len)
{
+ putch (c);
putch (' ');
putch (c);
len--;
- text[len] = 0;
}
continue;
}
- text[len] = c;
- len++;
- text[len] = 0;
- if (len == sizeof (text))
- len = 0;
+ if (len < sizeof (text) - 1)
+ {
+ putch (c);
+ text[len] = c;
+ len++;
+ }
}
#else
fd_set fdset;
return NULL;
}
-void Sys_Sleep(void)
+void Sys_Sleep(int milliseconds)
{
+ if (milliseconds < 1)
+ milliseconds = 1;
#ifdef WIN32
- Sleep (1);
+ Sleep(milliseconds);
#else
- usleep(1);
+ usleep(milliseconds * 1000);
#endif
}