Support building and running on とあるOS
This commit is contained in:
parent
be9c6c6303
commit
e948abcb64
@ -58,9 +58,22 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
|
||||||
|
#ifdef __toaru__
|
||||||
|
|
||||||
|
#include <syscall.h>
|
||||||
|
|
||||||
|
DEFN_SYSCALL2(nanosleep, 46, unsigned long, unsigned long);
|
||||||
|
|
||||||
|
int usleep(useconds_t time) {
|
||||||
|
syscall_nanosleep(0, time / 10000);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef TIOCGWINSZ
|
#ifndef TIOCGWINSZ
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#ifdef ECHO
|
#ifdef ECHO
|
||||||
@ -517,9 +530,20 @@ int main(int argc, char ** argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Also get the number of columns */
|
/* Also get the number of columns */
|
||||||
|
#ifdef __toaru__
|
||||||
|
if (strstr(term, "toaru")) {
|
||||||
|
printf("\033[1003z");
|
||||||
|
fflush(stdout);
|
||||||
|
int height;
|
||||||
|
scanf("%d,%d", &terminal_width, &height);
|
||||||
|
} else {
|
||||||
|
terminal_width = 80; /* better safe than sorry */
|
||||||
|
}
|
||||||
|
#else
|
||||||
struct winsize w;
|
struct winsize w;
|
||||||
ioctl(0, TIOCGWINSZ, &w);
|
ioctl(0, TIOCGWINSZ, &w);
|
||||||
terminal_width = w.ws_col;
|
terminal_width = w.ws_col;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert the entire terminal string to lower case */
|
/* Convert the entire terminal string to lower case */
|
||||||
@ -535,6 +559,8 @@ int main(int argc, char ** argv) {
|
|||||||
/* Do our terminal detection */
|
/* Do our terminal detection */
|
||||||
if (strstr(term, "xterm")) {
|
if (strstr(term, "xterm")) {
|
||||||
ttype = 1; /* 256-color, spaces */
|
ttype = 1; /* 256-color, spaces */
|
||||||
|
} else if (strstr(term, "toaru")) {
|
||||||
|
ttype = 1; /* emulates xterm */
|
||||||
} else if (strstr(term, "linux")) {
|
} else if (strstr(term, "linux")) {
|
||||||
ttype = 3; /* Spaces and blink attribute */
|
ttype = 3; /* Spaces and blink attribute */
|
||||||
} else if (strstr(term, "vtnt")) {
|
} else if (strstr(term, "vtnt")) {
|
||||||
|
Loading…
Reference in New Issue
Block a user