summaryrefslogtreecommitdiff
path: root/sshtty.c
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2010-03-31 00:48:57 +0100
committerColin Watson <cjwatson@debian.org>2010-03-31 00:48:57 +0100
commitd1a87e462e1db89f19cd960588d0c6b287cb5ccc (patch)
treef0d13e1687800f36a3c4322b94ac5230ad17bdbf /sshtty.c
parent964476f91b66c475d5b8fa1e8b28d39a97a1b56e (diff)
parent004a7fb9c6a00b13dc98f56599918a54a3506d10 (diff)
merge 5.4p1
Diffstat (limited to 'sshtty.c')
-rw-r--r--sshtty.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/sshtty.c b/sshtty.c
index 21ade4e51..d214ce3bb 100644
--- a/sshtty.c
+++ b/sshtty.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshtty.c,v 1.13 2008/05/19 15:45:07 djm Exp $ */ 1/* $OpenBSD: sshtty.c,v 1.14 2010/01/09 05:04:24 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -54,23 +54,25 @@ get_saved_tio(void)
54} 54}
55 55
56void 56void
57leave_raw_mode(void) 57leave_raw_mode(int quiet)
58{ 58{
59 if (!_in_raw_mode) 59 if (!_in_raw_mode)
60 return; 60 return;
61 if (tcsetattr(fileno(stdin), TCSADRAIN, &_saved_tio) == -1) 61 if (tcsetattr(fileno(stdin), TCSADRAIN, &_saved_tio) == -1) {
62 perror("tcsetattr"); 62 if (!quiet)
63 else 63 perror("tcsetattr");
64 } else
64 _in_raw_mode = 0; 65 _in_raw_mode = 0;
65} 66}
66 67
67void 68void
68enter_raw_mode(void) 69enter_raw_mode(int quiet)
69{ 70{
70 struct termios tio; 71 struct termios tio;
71 72
72 if (tcgetattr(fileno(stdin), &tio) == -1) { 73 if (tcgetattr(fileno(stdin), &tio) == -1) {
73 perror("tcgetattr"); 74 if (!quiet)
75 perror("tcgetattr");
74 return; 76 return;
75 } 77 }
76 _saved_tio = tio; 78 _saved_tio = tio;
@@ -86,8 +88,9 @@ enter_raw_mode(void)
86 tio.c_oflag &= ~OPOST; 88 tio.c_oflag &= ~OPOST;
87 tio.c_cc[VMIN] = 1; 89 tio.c_cc[VMIN] = 1;
88 tio.c_cc[VTIME] = 0; 90 tio.c_cc[VTIME] = 0;
89 if (tcsetattr(fileno(stdin), TCSADRAIN, &tio) == -1) 91 if (tcsetattr(fileno(stdin), TCSADRAIN, &tio) == -1) {
90 perror("tcsetattr"); 92 if (!quiet)
91 else 93 perror("tcsetattr");
94 } else
92 _in_raw_mode = 1; 95 _in_raw_mode = 1;
93} 96}