# HG changeset patch # User Richard M. Stallman # Date 739267006 0 # Node ID 5c2b4797aab2232c48c65c8830feb99fa70f6f43 # Parent 85d2e4130a4ce5836b041e040abe5f3ec8e3579c (term_get_fkeys): Use correct names for F10 and up. Use the key sequence, not the termcap cap name, in Fdefine_key. diff -r 85d2e4130a4c -r 5c2b4797aab2 src/term.c --- a/src/term.c Sat Jun 05 02:51:21 1993 +0000 +++ b/src/term.c Sat Jun 05 07:56:46 1993 +0000 @@ -1281,7 +1281,7 @@ { char fcap[3], fkey[4]; - fcap[0] = 'k'; fcap[2] = '\0'; + fcap[0] = 'F'; fcap[2] = '\0'; for (i = 11; i < 64; i++) { if (i <= 19) @@ -1291,13 +1291,16 @@ else fcap[1] = 'a' + i - 11; - if (tgetstr (fcap, address)) - { - (void) sprintf (fkey, "f%d", i); - Fdefine_key (Vfunction_key_map, - build_string (fcap), - Fmake_vector (make_number (1), intern (fkey))); - } + { + char *sequence = tgetstr (fcap, address); + if (sequence) + { + (void) sprintf (fkey, "f%d", i); + Fdefine_key (Vfunction_key_map, + build_string (sequence), + Fmake_vector (make_number (1), intern (fkey))); + } + } } } @@ -1305,11 +1308,15 @@ * Various mappings to try and get a better fit. */ { -#define CONDITIONAL_REASSIGN(cap1, cap2, sym) \ - if (!tgetstr (cap1, address) && tgetstr (cap2, address)) \ - Fdefine_key (Vfunction_key_map, \ - build_string (cap2), \ - Fmake_vector (make_number (1), intern (sym))) +#define CONDITIONAL_REASSIGN(cap1, cap2, sym) \ + if (!tgetstr (cap1, address)) \ + { \ + char *sequence = tgetstr (cap2, address); \ + if (sequence) \ + Fdefine_key (Vfunction_key_map, \ + build_string (sequence), \ + Fmake_vector (make_number (1), intern (sym))); \ + } /* if there's no key_next keycap, map key_npage to `next' keysym */ CONDITIONAL_REASSIGN ("%5", "kN", "next");