diff --git a/ChangeLog b/ChangeLog index 5bed21dbbefe710f1902a4825615d7bc94967b14..9cbc263acf3c4bbffdf85271f97650c3355cfe2e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,8 @@ General - FINALLY! No more keypad_on(), no more individual calls in main(), do_help(), do_browser(), etc etc etc. Removed call to timeout(0) in main() (which caused the whole mess), fixes BUG #49. + Added workarounds for gnome-terminal in main() (Alt-O-key and + 348-352). - faq.html: - Fix typos and small mistakes (Jordi). - files.c: diff --git a/nano.c b/nano.c index 0dd177260e1d36be0be7f6eef6e14816baec0427..80bb951c37a7eb4d82b8e18859cb0089b611c9ec 100644 --- a/nano.c +++ b/nano.c @@ -2265,6 +2265,8 @@ int main(int argc, char *argv[]) kbinput = wgetch(edit); if (kbinput <= 'S' && kbinput >= 'P') kbinput = KEY_F(kbinput - 79); + else if (kbinput >= 'j' && kbinput <= 'y') + kbinput = kbinput - 64; #ifdef DEBUG else { fprintf(stderr, _("I got Alt-O-%c! (%d)\n"), @@ -2458,6 +2460,24 @@ int main(int argc, char *argv[]) case 0: /* Erg */ do_next_word(); break; + + /* Stupid gnome-terminal keypad */ + case 349: + ungetch('5'); + break; + case 348: + ungetch('7'); + break; + case 350: + ungetch('9'); + break; + case 351: + ungetch('1'); + break; + case 352: + ungetch('3'); + break; + case 331: /* Stuff that we don't want to do squat */ case -1: case 410: /* Must ignore this, it gets sent when we resize */