X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/67779be7464c9134ef08048f7d9a15d7677442e7..4d331a77f20f321f867f5907e2ffc06249378881:/plink.c diff --git a/plink.c b/plink.c index 70aab6de..0a740622 100644 --- a/plink.c +++ b/plink.c @@ -2,7 +2,9 @@ * PLink - a command-line (stdin/stdout) variant of PuTTY. */ +#ifndef AUTO_WINSOCK #include +#endif #include #include #include @@ -20,14 +22,31 @@ void fatalbox (char *p, ...) { WSACleanup(); exit(1); } +void connection_fatal (char *p, ...) { + va_list ap; + fprintf(stderr, "FATAL ERROR: ", p); + va_start(ap, p); + vfprintf(stderr, p, ap); + va_end(ap); + fputc('\n', stderr); + WSACleanup(); + exit(1); +} HANDLE outhandle; +DWORD orig_console_mode; + +void begin_session(void) { + if (!cfg.ldisc_term) + SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_PROCESSED_INPUT); + else + SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), orig_console_mode); +} void term_out(void) { int reap; DWORD ret; - reap = 0; while (reap < inbuf_head) { if (!WriteFile(outhandle, inbuf+reap, inbuf_head-reap, &ret, NULL)) @@ -267,8 +286,8 @@ int main(int argc, char **argv) { netevent = CreateEvent(NULL, FALSE, FALSE, NULL); stdinevent = CreateEvent(NULL, FALSE, FALSE, NULL); - if (!cfg.ldisc_term) - SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_PROCESSED_INPUT); + GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &orig_console_mode); + SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_PROCESSED_INPUT); outhandle = GetStdHandle(STD_OUTPUT_HANDLE); /*