This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

tty raw mode


Hi,

A while ago I posted a question about getting the console in raw mode.
In the meantime I found a partially working solution using
GetConsoleMode and
SetConsoleMode.

Here's a piece of code:

#include <stdio.h>
#include <fcntl.h>
#include <windows.h>

main()
{
        DWORD dwMode;
        HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE);
        
        if (GetConsoleMode(hStdIn, &dwMode) == TRUE)
                SetConsoleMode(hStdIn, 
                    dwMode & ~(ENABLE_LINE_INPUT |		/* No buffering */
                               ENABLE_PROCESSED_INPUT |
                               ENABLE_ECHO_INPUT |		/* No echo
*/            			               ENABLE_WINDOW_INPUT));
        for (;;)
        {
                int c = getchar();
                printf("%d <%c>\n", c, c);
        }
}

Now all works fine except for two things:

1) getchar() does not distinguish between <CR> and <LF>
2) <LF) produces <CR><LF>

I've also tried a version using ReadConsole(), I've tried _setmode(0,
O_BINARY), but
without any success.

Does any of you have any idea ?

Thanks in advance for your time.

Kees
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]