gets/sets term attributes
the returned value/the parameter is a mapping on the form
"ispeed": baud rate
"ospeed": baud rate
"csize": character size (5,6,7 or 8)
"rows": terminal rows
"columns": terminal columns
flag: 0 or 1
control char:value
...
where 'flag' is the string describing the termios
(input, output, control and local mode) flags
(see the manpage for termios or the tutorial).
Note that tcsetattr always _changes_ the attributes;
correct use to set a flag would be something like:
fd->tcsetattr((["myflag":1]));
the argument 'when' to tcsetattr describes when the
changes are to take effect:
"TCSANOW": the change occurs immediately (default);
"TCSADRAIN": the change occurs after all output has been written;
"TCSAFLUSH": the change occurs after all output has been written,
and empties input buffers.
Example for setting the terminal in raw mode:
Stdio.stdin->tcsetattr((["ECHO":0,"ICANON":0,"VMIN":0,"VTIME":0]));
Note: Unknown flags are ignored by tcsetattr().
Terminal rows and columns settring by tcsetattr() is not
currently supported.