Better support of general arrow keys
This commit is contained in:
parent
7a520dc944
commit
1ff34f64e1
|
@ -1,3 +1,6 @@
|
||||||
|
2020-04-15 Markus Gans <guru.mail@muenster.de>
|
||||||
|
* Better support of general arrow keys
|
||||||
|
|
||||||
2020-04-13 Markus Gans <guru.mail@muenster.de>
|
2020-04-13 Markus Gans <guru.mail@muenster.de>
|
||||||
* Several small code improvements
|
* Several small code improvements
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@ FKeyMap fkey[] =
|
||||||
{ fc::Fkey_dl , nullptr, "kL" }, // delete-line key
|
{ fc::Fkey_dl , nullptr, "kL" }, // delete-line key
|
||||||
{ fc::Fkey_down , nullptr, "kd" }, // down-arrow key
|
{ fc::Fkey_down , nullptr, "kd" }, // down-arrow key
|
||||||
{ fc::Fkey_down , nullptr, "kdx"}, // down-arrow key
|
{ fc::Fkey_down , nullptr, "kdx"}, // down-arrow key
|
||||||
|
{ fc::Fkey_down , nullptr, "kdX"}, // down-arrow key
|
||||||
{ fc::Fkey_eic , nullptr, "kM" }, // sent by rmir or smir in insert mode
|
{ fc::Fkey_eic , nullptr, "kM" }, // sent by rmir or smir in insert mode
|
||||||
{ fc::Fkey_eol , nullptr, "kE" }, // clear-to-end-of-line key
|
{ fc::Fkey_eol , nullptr, "kE" }, // clear-to-end-of-line key
|
||||||
{ fc::Fkey_eos , nullptr, "kS" }, // clear-to-end-of-screen key
|
{ fc::Fkey_eos , nullptr, "kS" }, // clear-to-end-of-screen key
|
||||||
|
@ -69,16 +70,19 @@ FKeyMap fkey[] =
|
||||||
{ fc::Fkey_il , nullptr, "kA" }, // insert-line key
|
{ fc::Fkey_il , nullptr, "kA" }, // insert-line key
|
||||||
{ fc::Fkey_left , nullptr, "kl" }, // left-arrow key
|
{ fc::Fkey_left , nullptr, "kl" }, // left-arrow key
|
||||||
{ fc::Fkey_left , nullptr, "klx"}, // left-arrow key
|
{ fc::Fkey_left , nullptr, "klx"}, // left-arrow key
|
||||||
|
{ fc::Fkey_left , nullptr, "klX"}, // left-arrow key
|
||||||
{ fc::Fkey_ll , nullptr, "kH" }, // last-line key
|
{ fc::Fkey_ll , nullptr, "kH" }, // last-line key
|
||||||
{ fc::Fkey_npage , nullptr, "kN" }, // next-page key
|
{ fc::Fkey_npage , nullptr, "kN" }, // next-page key
|
||||||
{ fc::Fkey_ppage , nullptr, "kP" }, // prev-page key
|
{ fc::Fkey_ppage , nullptr, "kP" }, // prev-page key
|
||||||
{ fc::Fkey_right , nullptr, "kr" }, // right-arrow key
|
{ fc::Fkey_right , nullptr, "kr" }, // right-arrow key
|
||||||
{ fc::Fkey_right , nullptr, "krx"}, // right-arrow key
|
{ fc::Fkey_right , nullptr, "krx"}, // right-arrow key
|
||||||
|
{ fc::Fkey_right , nullptr, "krX"}, // right-arrow key
|
||||||
{ fc::Fkey_sf , nullptr, "kF" }, // scroll-forward key (shift-up)
|
{ fc::Fkey_sf , nullptr, "kF" }, // scroll-forward key (shift-up)
|
||||||
{ fc::Fkey_sr , nullptr, "kR" }, // scroll-backward key (shift-down)
|
{ fc::Fkey_sr , nullptr, "kR" }, // scroll-backward key (shift-down)
|
||||||
{ fc::Fkey_stab , nullptr, "kT" }, // set-tab key
|
{ fc::Fkey_stab , nullptr, "kT" }, // set-tab key
|
||||||
{ fc::Fkey_up , nullptr, "ku" }, // up-arrow key
|
{ fc::Fkey_up , nullptr, "ku" }, // up-arrow key
|
||||||
{ fc::Fkey_up , nullptr, "kux"}, // up-arrow key
|
{ fc::Fkey_up , nullptr, "kux"}, // up-arrow key
|
||||||
|
{ fc::Fkey_up , nullptr, "kuX"}, // up-arrow key
|
||||||
{ fc::Fkey_a1 , nullptr, "K1" }, // upper left of keypad
|
{ fc::Fkey_a1 , nullptr, "K1" }, // upper left of keypad
|
||||||
{ fc::Fkey_a3 , nullptr, "K3" }, // upper right of keypad
|
{ fc::Fkey_a3 , nullptr, "K3" }, // upper right of keypad
|
||||||
{ fc::Fkey_b2 , nullptr, "K2" }, // center of keypad
|
{ fc::Fkey_b2 , nullptr, "K2" }, // center of keypad
|
||||||
|
|
|
@ -287,28 +287,40 @@ void FTermcap::termcapKeysVt100()
|
||||||
for (std::size_t i{0}; fc::fkey[i].tname[0] != 0; i++)
|
for (std::size_t i{0}; fc::fkey[i].tname[0] != 0; i++)
|
||||||
{
|
{
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "kux", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "kux", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(CSI "A"); // Key up
|
fc::fkey[i].string = C_STR(CSI "A"); // Key up (standard mode)
|
||||||
|
|
||||||
|
if ( std::strncmp(fc::fkey[i].tname, "kuX", 3) == 0 )
|
||||||
|
fc::fkey[i].string = C_STR(ESC "OA"); // Key up (application mode)
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "kdx", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "kdx", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(CSI "B"); // Key down
|
fc::fkey[i].string = C_STR(CSI "B"); // Key down (standard mode)
|
||||||
|
|
||||||
|
if ( std::strncmp(fc::fkey[i].tname, "kdX", 3) == 0 )
|
||||||
|
fc::fkey[i].string = C_STR(ESC "OB"); // Key down (application mode)
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "krx", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "krx", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(CSI "C"); // Key right
|
fc::fkey[i].string = C_STR(CSI "C"); // Key right (standard mode)
|
||||||
|
|
||||||
|
if ( std::strncmp(fc::fkey[i].tname, "krX", 3) == 0 )
|
||||||
|
fc::fkey[i].string = C_STR(ESC "OC"); // Key right (application mode)
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "klx", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "klx", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(CSI "D"); // Key left
|
fc::fkey[i].string = C_STR(CSI "D"); // Key left (standard mode)
|
||||||
|
|
||||||
|
if ( std::strncmp(fc::fkey[i].tname, "klX", 3) == 0 )
|
||||||
|
fc::fkey[i].string = C_STR(ESC "OD"); // Key left (application mode)
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "k1X", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "k1X", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(ESC "OP"); // PF1
|
fc::fkey[i].string = C_STR(ESC "OP"); // PF1 (application mode)
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "k2X", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "k2X", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(ESC "OQ"); // PF2
|
fc::fkey[i].string = C_STR(ESC "OQ"); // PF2 (application mode)
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "k3X", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "k3X", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(ESC "OR"); // PF3
|
fc::fkey[i].string = C_STR(ESC "OR"); // PF3 (application mode)
|
||||||
|
|
||||||
if ( std::strncmp(fc::fkey[i].tname, "k4X", 3) == 0 )
|
if ( std::strncmp(fc::fkey[i].tname, "k4X", 3) == 0 )
|
||||||
fc::fkey[i].string = C_STR(ESC "OS"); // PF4
|
fc::fkey[i].string = C_STR(ESC "OS"); // PF4 (application mode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue