X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FApplications%2Firc_src%2Fmain.c;h=6169519c6e5ce92df6b833897032b0cc9a3a5c17;hb=13078002b01ee4f63eb2001d2ef479a2a006ea32;hp=e3e2af489d05ad983af78cc348ddd18111753d0f;hpb=4e407e69bd660e9a32644281733192193ee6e8c8;p=tpg%2Facess2.git diff --git a/Usermode/Applications/irc_src/main.c b/Usermode/Applications/irc_src/main.c index e3e2af48..6169519c 100755 --- a/Usermode/Applications/irc_src/main.c +++ b/Usermode/Applications/irc_src/main.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "common.h" #include "input.h" @@ -35,6 +36,11 @@ void ExitHandler(void) { printf("\x1B[?1047l"); printf("Quit: %s\n", gsExitReason); + + // stty +echo,canon + struct ptymode mode = {.InputMode = 0, .OutputMode = 0}; + mode.InputMode = PTYIMODE_CANON|PTYIMODE_ECHO; + _SysIOCtl(0, PTY_IOCTL_SETMODE, &mode); } void Exit(const char *Reason) @@ -55,24 +61,21 @@ int main(int argc, const char *argv[], const char *envp[]) ACurses_Init(); printf("\x1B[?1047h"); - printf("\x1B[%i;%ir", 1, giTerminal_Height-1); - - SetCursorPos(giTerminal_Height-1, 1); - printf("[(status)] "); + printf("\x1B[%i;%ir", 2, giTerminal_Height-2); // HACK: Static server entry // UCC (University [of Western Australia] Computer Club) IRC Server - tServer *starting_server = Server_Connect( "UCC", "130.95.13.18", 6667 ); +// tServer *starting_server = Server_Connect( "UCC", "130.95.13.18", 6667 ); // Freenode (#osdev) -// gWindow_Status.Server = Server_Connect( "Freenode", "89.16.176.16", 6667 ); + tServer *starting_server = Server_Connect( "Freenode", "84.240.3.129", 6667 ); // Local servers // gWindow_Status.Server = Server_Connect( "VMHost", "10.0.2.2", 6667 ); // gWindow_Status.Server = Server_Connect( "BitlBee", "192.168.1.39", 6667 ); - if( !starting_server ) - return -1; - Windows_SetStatusServer(starting_server); + Windows_RepaintCurrent(); + SetCursorPos(giTerminal_Height-1, 1); + printf("[(status)] "); MainLoop(); @@ -83,10 +86,14 @@ int main(int argc, const char *argv[], const char *envp[]) int MainLoop(void) { - SetCursorPos(giTerminal_Height-1, 1); + SetCursorPos(giTerminal_Height, 1); printf("[(status)] "); fflush(stdout); + // stty -echo,canon + struct ptymode mode = {.InputMode = 0, .OutputMode = 0}; + _SysIOCtl(0, PTY_IOCTL_SETMODE, &mode); + for( ;; ) { fd_set readfds, errorfds; @@ -121,7 +128,7 @@ int ParseArguments(int argc, const char *argv[]) void Redraw_Screen(void) { printf("\x1B[2J"); // Clear screen - printf("\x1B[0;0H"); // Reset cursor + printf("\x1B[H"); // Reset cursor Windows_RepaintCurrent(); }