Como uso o getch de maldições sem limpar a tela?

Estou aprendendo a programar em C e quero poder digitar caracteres no terminal enquanto meu código está sendo executado sem pressionarRetorna. Meu programa funciona, no entanto, quando ligoinitscr(), a tela é limpa - mesmo após a chamadafilter(). A documentação parafilter sugere que ele desative a limpeza - no entanto, esse não é o meu caso.

#include <stdio.h>
#include <curses.h>
#include <term.h>

int main(void) {

    int ch;

    filter();
    initscr();
    cbreak();
    noecho();
    keypad(stdscr, TRUE);

    while((ch = getch()) != EOF);

    endwin();

    return 0;
}

Por que o código acima ainda limpa a tela e o que poderia ser feito para corrigi-lo?

Estou usando o Debian Lenny (stable) e o gnome-terminal, se isso ajudar.

questionAnswers(4)

yourAnswerToTheQuestion