== Quote from Andrej Mitrovic ([email protected])'s article > I believe I've found you a solution: > import std.c.stdio; > import std.c.linux.termios; > extern(C) void cfmakeraw(termios *termios_p); > void main() { > termios ostate; /* saved tty state */ > termios nstate; /* values for editor mode */ > // Open stdin in raw mode > /* Adjust output channel */ > tcgetattr(1, &ostate); /* save old state */ > tcgetattr(1, &nstate); /* get base of new state */ > cfmakeraw(&nstate); > tcsetattr(1, TCSADRAIN, &nstate); /* set mode */ > // Read characters in raw mode > writefln("The key hit is %s", cast(char)fgetc(stdin)); > // Close > tcsetattr(1, TCSADRAIN, &ostate); // return to original mode > } > I've tested this under Ubuntu and DMD 2.052 and it works.
Great, thanks!
