comparison src/redisplay-tty.c @ 440:8de8e3f6228a r21-2-28

Import from CVS: tag r21-2-28
author cvs
date Mon, 13 Aug 2007 11:33:38 +0200
parents 3ecd8885ac67
children abe6d1db359e
comparison
equal deleted inserted replaced
439:357dd071b03c 440:8de8e3f6228a
1436 for (i = 0; i < countof (keys); i++) 1436 for (i = 0; i < countof (keys); i++)
1437 { 1437 {
1438 char *sequence = tgetstr (keys[i].cap, address); 1438 char *sequence = tgetstr (keys[i].cap, address);
1439 if (sequence) 1439 if (sequence)
1440 Fdefine_key (function_key_map, 1440 Fdefine_key (function_key_map,
1441 build_ext_string (sequence, FORMAT_BINARY), 1441 build_ext_string (sequence, Qbinary),
1442 vector1 (intern (keys[i].name))); 1442 vector1 (intern (keys[i].name)));
1443 } 1443 }
1444 1444
1445 /* The uses of the "k0" capability are inconsistent; sometimes it 1445 /* The uses of the "k0" capability are inconsistent; sometimes it
1446 describes F10, whereas othertimes it describes F0 and "k;" describes F10. 1446 describes F10, whereas othertimes it describes F0 and "k;" describes F10.
1450 { 1450 {
1451 CONST char *k_semi = tgetstr ("k;", address); 1451 CONST char *k_semi = tgetstr ("k;", address);
1452 CONST char *k0 = tgetstr ("k0", address); 1452 CONST char *k0 = tgetstr ("k0", address);
1453 1453
1454 if (k_semi) 1454 if (k_semi)
1455 Fdefine_key (function_key_map, build_ext_string (k_semi, FORMAT_BINARY), 1455 Fdefine_key (function_key_map, build_ext_string (k_semi, Qbinary),
1456 vector1 (intern ("f10"))); 1456 vector1 (intern ("f10")));
1457 1457
1458 if (k0) 1458 if (k0)
1459 Fdefine_key (function_key_map, build_ext_string (k0, FORMAT_BINARY), 1459 Fdefine_key (function_key_map, build_ext_string (k0, Qbinary),
1460 vector1 (intern (k_semi ? "f0" : "f10"))); 1460 vector1 (intern (k_semi ? "f0" : "f10")));
1461 } 1461 }
1462 1462
1463 /* Set up cookies for numbered function keys above f10. */ 1463 /* Set up cookies for numbered function keys above f10. */
1464 { 1464 {
1478 char *sequence = tgetstr (fcap, address); 1478 char *sequence = tgetstr (fcap, address);
1479 if (sequence) 1479 if (sequence)
1480 { 1480 {
1481 sprintf (fkey, "f%d", i); 1481 sprintf (fkey, "f%d", i);
1482 Fdefine_key (function_key_map, 1482 Fdefine_key (function_key_map,
1483 build_ext_string (sequence, FORMAT_BINARY), 1483 build_ext_string (sequence, Qbinary),
1484 vector1 (intern (fkey))); 1484 vector1 (intern (fkey)));
1485 } 1485 }
1486 } 1486 }
1487 } 1487 }
1488 } 1488 }
1489 1489
1490 /* 1490 /*
1491 * Various mappings to try and get a better fit. 1491 * Various mappings to try and get a better fit.
1492 */ 1492 */
1493 #define CONDITIONAL_REASSIGN(cap1, cap2, keyname) \ 1493 #define CONDITIONAL_REASSIGN(cap1, cap2, keyname) do { \
1494 if (!tgetstr (cap1, address)) \ 1494 if (!tgetstr (cap1, address)) \
1495 { \ 1495 { \
1496 char *sequence = tgetstr (cap2, address); \ 1496 char *sequence = tgetstr (cap2, address); \
1497 if (sequence) \ 1497 if (sequence) \
1498 Fdefine_key (function_key_map, \ 1498 Fdefine_key (function_key_map, \
1499 build_ext_string (sequence, FORMAT_BINARY), \ 1499 build_ext_string (sequence, Qbinary), \
1500 vector1 (intern (keyname))); \ 1500 vector1 (intern (keyname))); \
1501 } 1501 } \
1502 } while (0)
1502 1503
1503 /* if there's no key_next keycap, map key_npage to `next' keysym */ 1504 /* if there's no key_next keycap, map key_npage to `next' keysym */
1504 CONDITIONAL_REASSIGN ("%5", "kN", "next"); 1505 CONDITIONAL_REASSIGN ("%5", "kN", "next");
1505 /* if there's no key_prev keycap, map key_ppage to `previous' keysym */ 1506 /* if there's no key_prev keycap, map key_ppage to `previous' keysym */
1506 CONDITIONAL_REASSIGN ("%8", "kP", "prior"); 1507 CONDITIONAL_REASSIGN ("%8", "kP", "prior");