Import cube_2005_08_29_src_zlib.zip
FossilOrigin-Name: ea7418102a3ee6b415e50bea95694727a4f62ae112b570a07310817614ea3063
This commit is contained in:
parent
88989814f6
commit
79db1ed9fa
144 changed files with 45421 additions and 0 deletions
81
include/wincompat.h
Normal file
81
include/wincompat.h
Normal file
|
@ -0,0 +1,81 @@
|
|||
#if !defined(WINCOMPAT_INCLUDED) && !defined(PLATFORM_WINDOWS) && !defined(WIN32) && !defined(WINDOWS) && !defined(__WIN32__)
|
||||
#define WINCOMPAT_INCLUDED
|
||||
|
||||
/**
|
||||
*
|
||||
* Author: Magnus Naeslund (mag@fbab.net, mag@bahnhof.se)
|
||||
* (c) 2000 Magnus Naeslund, all rights reserved
|
||||
*
|
||||
*/
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <termios.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#define _kbhit kbhit
|
||||
#define stricmp strcasecmp
|
||||
#define strnicmp strncasecmp
|
||||
|
||||
#define Sleep(x) usleep((x)*1000)
|
||||
|
||||
static int inited=0;
|
||||
static struct termios ori;
|
||||
|
||||
static void tcatexit(){
|
||||
tcsetattr(0,0,&ori);
|
||||
}
|
||||
|
||||
static void init_terminal(){
|
||||
struct termios t;
|
||||
tcgetattr(0,&t);
|
||||
tcgetattr(0,&ori);
|
||||
t.c_lflag &= ~(ICANON);
|
||||
tcsetattr(0,0,&t);
|
||||
atexit(tcatexit);
|
||||
}
|
||||
|
||||
static inline int kbhit(){
|
||||
fd_set rfds;
|
||||
struct timeval tv;
|
||||
|
||||
if (!inited){
|
||||
inited=1;
|
||||
init_terminal();
|
||||
}
|
||||
|
||||
FD_ZERO(&rfds);
|
||||
FD_SET(0, &rfds);
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 10*1000;
|
||||
return select(1, &rfds, NULL, NULL, &tv)>0;
|
||||
}
|
||||
|
||||
static inline int getch(){
|
||||
fd_set rfds;
|
||||
|
||||
if (!inited){
|
||||
inited=1;
|
||||
init_terminal();
|
||||
}
|
||||
|
||||
FD_ZERO(&rfds);
|
||||
FD_SET(0, &rfds);
|
||||
if (select(1, &rfds, NULL, NULL, NULL)>0)
|
||||
return getchar();
|
||||
else{
|
||||
printf("wincompat.h: select() on fd 0 failed\n");
|
||||
return 0xDeadBeef;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue