Portál AbcLinuxu, 4. května 2025 19:13
Dobrý den,
při převodu 4GL programů z UNIXu pod LINUX, řeším problém v následující sekvenci
MENU 'Tituly' BEFORE MENU .......................................... COMMAND KEY('A',F1) volba_a .......................................... COMMAND KEY(F14) volba_f14 .......................................... COMMAND KEY(F24) volba_214 .......................................... COMMAND KEY('K') volba_k EXIT MENU END MENU
a to problém funkčních kláves F13-F24, v unix fungují ShF1-ShF12. Pod linuxem tyto volby nefungují. Po spuštění programu a volbě této nabídky, tj. F13-F24, resp. ShF1-ShF12 nenastane žádná odezva.
Děkuji za jakoukoli radu nebo tip na řešení.
HP
Opravil jsem formátování a zamknul duplicity.
Co se týče dotazu: někde jsem našel, že The scan codes for F13-F24 are the same as for F1-F12 but sent in conjunction with shift. – podle toho bych čekal, že by to mělo fungovat. V čem to spouštíte/kompilujete?
$ infocmp xterm | grep kf2= kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, $ ^[OQ
Dobry den.
V 4GL se vubec neorientuji.
Ale delal jsem linuxovou nahradu wyse terminalu pro aplikace v 4GL napsane.
Teda predpokladam - nemel jsem zadnou podporu tvurce aplikaci.
Klavesy jsem resil pomoci souboru ~/.Xdefaults
grep "Shift<Key" < .Xdefaults | od -c 0000000 S h i f t < K e y > F 1 : s t 0000020 r i n g ( " 033 [ Y " ) \ n \ \n 0000040 S h i f t < K e y > F 2 : s t 0000060 r i n g ( " 033 [ Z " ) \ n \ \n 0000100 S h i f t < K e y > F 3 : s t 0000120 r i n g ( " 033 [ a " ) \ n \ \n 0000140 S h i f t < K e y > F 4 : s t 0000160 r i n g ( " 033 [ b " ) \ n \ \n 0000200 S h i f t < K e y > F 5 : s t 0000220 r i n g ( " 033 [ c " ) \ n \ \n 0000240 S h i f t < K e y > F 6 : s t 0000260 r i n g ( " 033 [ d " ) \ n \ \n 0000300 S h i f t < K e y > F 7 : s t 0000320 r i n g ( " 033 [ e " ) \ n \ \n 0000340 S h i f t < K e y > F 8 : s t 0000360 r i n g ( " 033 [ f " ) \ n \ \n 0000400 S h i f t < K e y > F 9 : s t 0000420 r i n g ( " 033 [ g " ) \ n \ \n 0000440 S h i f t < K e y > F 1 0 : s 0000460 t r i n g ( " 033 [ h " ) \ n \ 0000500 \n S h i f t < K e y > F 1 1 : 0000520 s t r i n g ( " 033 [ i " ) \ n 0000540 \ \n S h i f t < K e y > F 1 2 : 0000560 s t r i n g ( " 033 [ j " ) \ 0000600 n \ \n 0000603
terminal jsem spoustel scriptem:
export LANG=cs_CZ.UTF-8 SIRKA="$(xprop -root | sed 's/^_WIN_WORKAREA(CARDINAL) = [^,]\+ \?, \?[^,]\+ \?, \?\([^,]\+\) \?, \?[^,]\+ \?/\1/p;d')" xterm +sb -e "[ "$SIRKA" -eq 1280 ] && (xwit -move 0 0; xwit -rmove -2 -24);luit -encoding 'ISO 8859-2' /usr/local/sbin/prikaz"
kdy obsah souboru /usr/local/sbin/prikaz :
echo -ne "\033]0;Login\007" TERM=ansi telnet hrozne.tajny.server 23 |/usr/local/sbin/preklad
a soubor /usr/local/sbin/preklad je filtr escape sequenci napsany v c
filtr tam byl, protoze tvurce aplikaci pouzival v kazde aplikaci ruzne kody.
marek
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.