From e948abcb64adf60faa0c9ae095fdd85d0dfab7ce Mon Sep 17 00:00:00 2001 From: Kevin Lange Date: Thu, 13 Dec 2012 19:58:37 -0800 Subject: =?UTF-8?q?Support=20building=20and=20running=20on=20=E3=81=A8?= =?UTF-8?q?=E3=81=82=E3=82=8BOS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/nyancat.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/nyancat.c b/src/nyancat.c index d6eb4e4..6ab0403 100644 --- a/src/nyancat.c +++ b/src/nyancat.c @@ -58,9 +58,22 @@ #include #include #include -#include #include +#ifdef __toaru__ + +#include + +DEFN_SYSCALL2(nanosleep, 46, unsigned long, unsigned long); + +int usleep(useconds_t time) { + syscall_nanosleep(0, time / 10000); +} + +#else +#include +#endif + #ifndef TIOCGWINSZ #include #ifdef ECHO @@ -517,9 +530,20 @@ int main(int argc, char ** argv) { } /* 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; ioctl(0, TIOCGWINSZ, &w); terminal_width = w.ws_col; +#endif } /* Convert the entire terminal string to lower case */ @@ -535,6 +559,8 @@ int main(int argc, char ** argv) { /* Do our terminal detection */ if (strstr(term, "xterm")) { ttype = 1; /* 256-color, spaces */ + } else if (strstr(term, "toaru")) { + ttype = 1; /* emulates xterm */ } else if (strstr(term, "linux")) { ttype = 3; /* Spaces and blink attribute */ } else if (strstr(term, "vtnt")) { -- cgit v1.2.3