Dúvida: Ncurses e a janela do terminal.

Iniciado por jth., 21 de Novembro de 2008, 23:28

tópico anterior - próximo tópico

jth.

Olá, sou um iniciante em C e no mundo Linux/GNU e estou tendo alguns problemas com a "ncurses".

O que está acontecendo parece bobagem, mas não sei resolver, já andei lendo por aí, mas até agora nada.

Quando uso ncurses e a função initscr(), para inicializar a biblioteca, ele cria uma nova "window" no terminal e é nessa window que o resto do programa roda usando funções de saída e entrada diferentes das habituais (printw() em vez de printf, por exemplo). Até aí tudo bem, o meu problema é que essa nova "window" não habilita a "barra de rolagem" quando necessário. Quando a janelinha "enche" a barra de rolagem não é ativada para continuar lendo as saídas que aparecem abaixo... Deu para entender?

Eis um exemplo de programa:
Citar
#include <stdio.h>
#include <curses.h>

int main(void) {
   char r;
   initscr();
   do {
   printw("\n\n\tTestando...\n\n\n\n\n\n\n\n\tDeseja repetir? (s/n)");
   noecho();
   r = getch();
      while(r!='s' && r!='n') {
        printw("\n\tResponda usando 's' para 'sim' e 'n' para 'não'.\n\tE então? Deseja repetir?");
        r = getch();
      }
   } while('s' == r);
   endwin();
}
Nesse caso, se eu continuo apertando "s" a mensagem inicial se repete até que fica "cortada" pela tela, que não me deixa ver o "resto" da mensagem...

A imagem de como fica o terminal:


Bom... é isso aí... O problema é com o terminal ou com o code? Se é o código o que tenho que fazer para habilitar essa "barra de rolagem"?


Até mais ;D