From 733b37c90c20a76ec81c04431e8bc5224f053e28 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Tue, 6 Aug 2013 09:55:26 +0800 Subject: [PATCH] Usermode/IRC - Added basic PTY support --- Usermode/Applications/irc_src/main.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Usermode/Applications/irc_src/main.c b/Usermode/Applications/irc_src/main.c index b96fcc9e..a348277a 100644 --- a/Usermode/Applications/irc_src/main.c +++ b/Usermode/Applications/irc_src/main.c @@ -7,6 +7,7 @@ #include #include #include +#include // === TYPES === typedef struct sServer { @@ -102,8 +103,17 @@ int main(int argc, const char *argv[], const char *envp[]) atexit(ExitHandler); - giTerminal_Width = _SysIOCtl(1, 5, NULL); // getset_width - giTerminal_Height = _SysIOCtl(1, 6, NULL); // getset_height + if( _SysIOCtl(1, DRV_IOCTL_TYPE, NULL) != DRV_TYPE_TERMINAL ) { + printf(stderr, "note: assuming 80x25, can't get terminal dimensions\n"); + giTerminal_Width = 80; + giTerminal_Height = 25; + } + else { + struct ptydims dims; + _SysIOCtl(1, PTY_IOCTL_GETDIMS, &dims); + giTerminal_Width = dims.W; + giTerminal_Height = dims.H; + } printf("\x1B[?1047h"); printf("\x1B[%i;%ir", 0, giTerminal_Height-1); -- 2.20.1