aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-03-19 22:13:08 -0500
committerJesse Luehrs <doy@tozt.net>2013-03-19 22:13:08 -0500
commit65c1594991f029ed30669885a9716c1f282be6b6 (patch)
tree5b61b67bd0997ec0c9af407a8d1052f3c129db9c /src
parent143f5e479230b68fec59eea1a5a0e600856519ac (diff)
downloadrust-term-65c1594991f029ed30669885a9716c1f282be6b6.tar.gz
rust-term-65c1594991f029ed30669885a9716c1f282be6b6.zip
implement echo
Diffstat (limited to 'src')
-rw-r--r--src/termios_wrapper.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/termios_wrapper.c b/src/termios_wrapper.c
index 6e2afe4..6a752e8 100644
--- a/src/termios_wrapper.c
+++ b/src/termios_wrapper.c
@@ -14,6 +14,20 @@ int raw()
int echo(int enabled)
{
+ struct termios t;
+
+ if (tcgetattr(0, &t) == -1) {
+ return 0;
+ }
+
+ if (enabled) {
+ t.c_lflag |= ECHO;
+ }
+ else {
+ t.c_lflag &= ~ECHO;
+ }
+
+ return tcsetattr(0, TCSANOW, &t) == 0;
}
int crlf(int enabled)