comparison src/term.c @ 83315:13371344a3ba

Make function-key-map a terminal-local variable (move it inside the kboard struct). * src/keyboard.h (kboard): Move Vfunction_key_map inside the kboard struct. * src/keyboard.c (Vfunction_key_map): Remove declaration. (read_key_sequence, init_kboard): Update references to Vfunction_key_map. (syms_of_keyboard): Declare function-key-map as a terminal-local variable. (mark_kboards): Mark Vfunction_key_map. * src/keymap.c (Vfunction_key_map): Remove. (Fdescribe_buffer_bindings): Update references to Vfunction_key_map. (syms_of_keymap): Remove DEFVAR for Vfunction_key_map. * src/term.c (term_get_fkeys_1): Update references to Vfunction_key_map. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-355
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 25 Jun 2005 16:34:30 +0000
parents c016d82bf02b
children e235da12dd03
comparison
equal deleted inserted replaced
83314:d07fdd5d7d4e 83315:13371344a3ba
1342 1342
1343 char **address = term_get_fkeys_arg; 1343 char **address = term_get_fkeys_arg;
1344 1344
1345 /* This can happen if CANNOT_DUMP or with strange options. */ 1345 /* This can happen if CANNOT_DUMP or with strange options. */
1346 if (!initialized) 1346 if (!initialized)
1347 Vfunction_key_map = Fmake_sparse_keymap (Qnil); 1347 current_kboard->Vfunction_key_map = Fmake_sparse_keymap (Qnil);
1348 1348
1349 for (i = 0; i < (sizeof (keys)/sizeof (keys[0])); i++) 1349 for (i = 0; i < (sizeof (keys)/sizeof (keys[0])); i++)
1350 { 1350 {
1351 char *sequence = tgetstr (keys[i].cap, address); 1351 char *sequence = tgetstr (keys[i].cap, address);
1352 if (sequence) 1352 if (sequence)
1353 Fdefine_key (Vfunction_key_map, build_string (sequence), 1353 Fdefine_key (current_kboard->Vfunction_key_map, build_string (sequence),
1354 Fmake_vector (make_number (1), 1354 Fmake_vector (make_number (1),
1355 intern (keys[i].name))); 1355 intern (keys[i].name)));
1356 } 1356 }
1357 1357
1358 /* The uses of the "k0" capability are inconsistent; sometimes it 1358 /* The uses of the "k0" capability are inconsistent; sometimes it
1368 if (k_semi) 1368 if (k_semi)
1369 { 1369 {
1370 if (k0) 1370 if (k0)
1371 /* Define f0 first, so that f10 takes precedence in case the 1371 /* Define f0 first, so that f10 takes precedence in case the
1372 key sequences happens to be the same. */ 1372 key sequences happens to be the same. */
1373 Fdefine_key (Vfunction_key_map, build_string (k0), 1373 Fdefine_key (current_kboard->Vfunction_key_map, build_string (k0),
1374 Fmake_vector (make_number (1), intern ("f0"))); 1374 Fmake_vector (make_number (1), intern ("f0")));
1375 Fdefine_key (Vfunction_key_map, build_string (k_semi), 1375 Fdefine_key (current_kboard->Vfunction_key_map, build_string (k_semi),
1376 Fmake_vector (make_number (1), intern ("f10"))); 1376 Fmake_vector (make_number (1), intern ("f10")));
1377 } 1377 }
1378 else if (k0) 1378 else if (k0)
1379 Fdefine_key (Vfunction_key_map, build_string (k0), 1379 Fdefine_key (current_kboard->Vfunction_key_map, build_string (k0),
1380 Fmake_vector (make_number (1), intern (k0_name))); 1380 Fmake_vector (make_number (1), intern (k0_name)));
1381 } 1381 }
1382 1382
1383 /* Set up cookies for numbered function keys above f10. */ 1383 /* Set up cookies for numbered function keys above f10. */
1384 { 1384 {
1397 { 1397 {
1398 char *sequence = tgetstr (fcap, address); 1398 char *sequence = tgetstr (fcap, address);
1399 if (sequence) 1399 if (sequence)
1400 { 1400 {
1401 sprintf (fkey, "f%d", i); 1401 sprintf (fkey, "f%d", i);
1402 Fdefine_key (Vfunction_key_map, build_string (sequence), 1402 Fdefine_key (current_kboard->Vfunction_key_map, build_string (sequence),
1403 Fmake_vector (make_number (1), 1403 Fmake_vector (make_number (1),
1404 intern (fkey))); 1404 intern (fkey)));
1405 } 1405 }
1406 } 1406 }
1407 } 1407 }
1414 #define CONDITIONAL_REASSIGN(cap1, cap2, sym) \ 1414 #define CONDITIONAL_REASSIGN(cap1, cap2, sym) \
1415 if (!tgetstr (cap1, address)) \ 1415 if (!tgetstr (cap1, address)) \
1416 { \ 1416 { \
1417 char *sequence = tgetstr (cap2, address); \ 1417 char *sequence = tgetstr (cap2, address); \
1418 if (sequence) \ 1418 if (sequence) \
1419 Fdefine_key (Vfunction_key_map, build_string (sequence), \ 1419 Fdefine_key (current_kboard->Vfunction_key_map, build_string (sequence), \
1420 Fmake_vector (make_number (1), \ 1420 Fmake_vector (make_number (1), \
1421 intern (sym))); \ 1421 intern (sym))); \
1422 } 1422 }
1423 1423
1424 /* if there's no key_next keycap, map key_npage to `next' keysym */ 1424 /* if there's no key_next keycap, map key_npage to `next' keysym */