Hello,

I played with this simple program, which just sets the raw mode for
the console and writes back written characters:
--------------------------
#include <u.h>
#include <libc.h>

void
main (int argc, char *argv[])
{
        int     cfd;
        char    buf[2];
        int     nr;

        cfd = open("/dev/consctl", OWRITE);
        write(cfd, "rawon", 5);

        while((nr = read(0, buf, 1)) > 0) {
                if(buf[0] == 'q') break;
                buf[1] = 0;
                print("%s", buf);
        }
        close(cfd);
        exits(nil);
}
--------------------------

But I was surprised it doesn't do what I want.
The rio(1) man page says, in the 'Raw text windows' section that
'... no typed keyboard characters are special, ... and all are passed
to a program immediately upon reading'.
However, it seems rio still interprets ^u, ^a, ^e, ^w, BS, arrows,
page up/down,... (although not DEL, e.g.)
Can anybody explain to me what is wrong?
(Also I don't quite understand why pressing ^d results in drawing EOT,
pressing F1 does nothing as well as pressing alt-whatever [e.g.
alt-AE]...; Also, what must I do to see the codes (like ^a=0x01)
instead of the characters?)

Thanks a lot!
Ruda

Reply via email to