version 1.26, 2006/08/03 03:34:42 |
version 1.27, 2008/05/19 15:45:07 |
|
|
} |
} |
|
|
if (tiop == NULL) { |
if (tiop == NULL) { |
|
if (fd == -1) { |
|
debug("tty_make_modes: no fd or tio"); |
|
goto end; |
|
} |
if (tcgetattr(fd, &tio) == -1) { |
if (tcgetattr(fd, &tio) == -1) { |
logit("tcgetattr: %.100s", strerror(errno)); |
logit("tcgetattr: %.100s", strerror(errno)); |
goto end; |
goto end; |
|
|
|
|
/* Store values of mode flags. */ |
/* Store values of mode flags. */ |
#define TTYCHAR(NAME, OP) \ |
#define TTYCHAR(NAME, OP) \ |
debug3("tty_make_modes: %d %d", OP, tio.c_cc[NAME]); \ |
|
buffer_put_char(&buf, OP); \ |
buffer_put_char(&buf, OP); \ |
put_arg(&buf, tio.c_cc[NAME]); |
put_arg(&buf, tio.c_cc[NAME]); |
|
|
#define TTYMODE(NAME, FIELD, OP) \ |
#define TTYMODE(NAME, FIELD, OP) \ |
debug3("tty_make_modes: %d %d", OP, ((tio.FIELD & NAME) != 0)); \ |
|
buffer_put_char(&buf, OP); \ |
buffer_put_char(&buf, OP); \ |
put_arg(&buf, ((tio.FIELD & NAME) != 0)); |
put_arg(&buf, ((tio.FIELD & NAME) != 0)); |
|
|
|
|
case OP: \ |
case OP: \ |
n_bytes += arg_size; \ |
n_bytes += arg_size; \ |
tio.c_cc[NAME] = get_arg(); \ |
tio.c_cc[NAME] = get_arg(); \ |
debug3("tty_parse_modes: %d %d", OP, tio.c_cc[NAME]); \ |
|
break; |
break; |
#define TTYMODE(NAME, FIELD, OP) \ |
#define TTYMODE(NAME, FIELD, OP) \ |
case OP: \ |
case OP: \ |
|
|
tio.FIELD |= NAME; \ |
tio.FIELD |= NAME; \ |
else \ |
else \ |
tio.FIELD &= ~NAME; \ |
tio.FIELD &= ~NAME; \ |
debug3("tty_parse_modes: %d %d", OP, arg); \ |
|
break; |
break; |
|
|
#include "ttymodes.h" |
#include "ttymodes.h" |