projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bug fix: line discipline selection is not enabled until after ssh
[u/mdw/putty]
/
plink.c
diff --git
a/plink.c
b/plink.c
index
fd9d36d
..
db48d54
100644
(file)
--- a/
plink.c
+++ b/
plink.c
@@
-32,12
+32,19
@@
void connection_fatal (char *p, ...) {
}
HANDLE outhandle;
}
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;
void term_out(void)
{
int reap;
DWORD ret;
-
reap = 0;
while (reap < inbuf_head) {
if (!WriteFile(outhandle, inbuf+reap, inbuf_head-reap, &ret, NULL))
reap = 0;
while (reap < inbuf_head) {
if (!WriteFile(outhandle, inbuf+reap, inbuf_head-reap, &ret, NULL))
@@
-277,8
+284,8
@@
int main(int argc, char **argv) {
netevent = CreateEvent(NULL, FALSE, FALSE, NULL);
stdinevent = CreateEvent(NULL, FALSE, FALSE, NULL);
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);
/*
outhandle = GetStdHandle(STD_OUTPUT_HANDLE);
/*