Mercurial > emacs
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 */ |