getch()

Cejka Rudolf cejkar at dcse.fee.vutbr.cz
Thu Aug 17 11:59:20 CEST 2000


David Pasek wrote (2000/08/16):
> Mel jsem funkcni aplikaci v Cecku (ncurses) pro FreeBSD 2.2.6, ted jsem
> ji zkompiloval pod FreeBSD 4.0 a ejhle ... ncurses poradne nezobrazovali
> vystup na terminal. Prisel jsem na to, ze funkce getch() si s ncurses ve
> FreeBSD 4.0. vylozene nerozumi.

> Metodou pokus-omyl jsem zjistil, ze to funguje s wgetch(). To by bylo
> O.K., ale tadle funkce zase nevraci standardni kody pro funkcni klavesy,
> napr. KEY_DOWN,KEY_UP,... Vraci ESCejp sekvence a jeste nejak divne. V
> podstate prijdou tri byty za sebou KEY_DOWN (27+79+65)

Tomu moc nerozumim, protoze "#define getch() wgetch(stdscr)". 
Neni mi tedy jasne, jak se muze getch() a wgetch() svym chovanim
lisit. Nemate nejaky kratky ukazkovy priklad?

Ve FreeBSD 2.2.6 byly dve odlisne knihovny: curses (curses.h / -lcurses)
a ncurses (ncurses.h / -lncurses). Ve FreeBSD 4.0 je curses uz jen odkaz
na ncurses. Skutecne ta aplikace pouzivala ncurses i na FreeBSD 2.2.6?

> Nesetkal jste se s tim nekdo? Nevite jak rozchodit getch() pod ncurses?
> Dalsi moznost by byla, aby mi funkce wgetch() vracela standardni kody
> pro funkcni klavesy.

getch()/wgetch() kody pro funkcni klavesy vraci, ale je potreba
zavolat keypad(win, TRUE) a mit definici v terminalovem popisu.

-- 
Rudolf Cejka   (cejkar at dcse.fee.vutbr.cz;  http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66  Brno, Czech Republic



More information about the Users-l mailing list