Este projeto consiste em construir um editor de textos em terminal ASCII usando a biblioteca NCurses para gerenciar a interface com o usuário.
O programa deve implementar as seguintes funcionalidades:
.txt
, .c
, .h
, etc)mypad
: abre um texto em branco (sem nome)mypad arq1.txt
: abre o arquivo arq1.txt
-Wall
mypad
(de “my Notepad”)mypad.c
(programa principal)textfile.c
, textfile.h
(lê/escreve arquivos TXT)clipboard.c
, clipboard.h
(funções para manipular o clipboard)all
, clean
e purge
A estrutura geral de programas interativos, como editores, jogos, etc, usa a seguinte estrutura geral:
início inicializações repita desenha tela e posiciona cursor ler entrada do teclado processa entrada (atualiza estado interno) até fim finalizações fim
Mais informações a respeito dessa estrutura podem ser obtidas em:
Ncurses:
/usr/lib/ncurses/examples/
(pacote ncurses-examples
)ncurses-examples
disponível no Debian e derivados (Ubuntu, Mint, etc).Instalação da biblioteca NCurses no Linux (Ubuntu, Debian, Mint):
sudo apt-get install libncurses-dev
O código de inicialização da biblioteca NCurses, com as configurações necessárias para este projeto, é o seguinte:
initscr () ; // inicializa a biblioteca ncurses raw () ; // permite tratar teclas de controle (^C, ^Z, etc) keypad (stdscr, TRUE) ; // habilita leitura de teclas de setas, Fn, etc noecho () ; // não escreve as teclas lidas na tela curs_set (0) ; // esconde o cursor do terminal