Mercurial > emacs
comparison src/keymap.c @ 1120:0a486e1a45bc
* keymap.c (describe_buffer_bindings): Adjust key_heading to match
the format used by describe_map_tree. Also, don't reprint the
"key binding" header above the global bindings if we've already
printed it for the local bindings; it's clear enough that the
columns mean the same thing as above.
* keymap.c (describe_buffer_bindings): Declare buf and bufend...
* keymap.c (describe_buffer_bindings): Set the current buffer to
descbuf before calling current_minor_maps; that function's value
depends on the values of buffer-local variables. Don't set the
current buffer to Vstandard_output until afterwards.
* keymap.c (describe_buffer_bindings): If
Vkeyboard_translate_table is in effect, describe its effects.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Sun, 13 Sep 1992 12:33:23 +0000 |
parents | 6578f07e9eb8 |
children | f7b55bfe1c05 |
comparison
equal
deleted
inserted
replaced
1119:5d315d54b8b4 | 1120:0a486e1a45bc |
---|---|
1377 describe_buffer_bindings (descbuf) | 1377 describe_buffer_bindings (descbuf) |
1378 Lisp_Object descbuf; | 1378 Lisp_Object descbuf; |
1379 { | 1379 { |
1380 register Lisp_Object start1, start2; | 1380 register Lisp_Object start1, start2; |
1381 | 1381 |
1382 char *heading | 1382 char *key_heading |
1383 = "key binding\n--- -------\n"; | 1383 = "\ |
1384 key binding\n\ | |
1385 --- -------\n"; | |
1386 char *alternate_heading | |
1387 = "\ | |
1388 Alternate Characters (use anywhere the nominal character is listed):\n\ | |
1389 nominal alternate\n\ | |
1390 ------- ---------\n"; | |
1384 | 1391 |
1385 Fset_buffer (Vstandard_output); | 1392 Fset_buffer (Vstandard_output); |
1393 | |
1394 /* Report on alternates for keys. */ | |
1395 if (XTYPE (Vkeyboard_translate_table) == Lisp_String) | |
1396 { | |
1397 int c; | |
1398 unsigned char *translate = XSTRING (Vkeyboard_translate_table)->data; | |
1399 int translate_len = XSTRING (Vkeyboard_translate_table)->size; | |
1400 | |
1401 for (c = 0; c < translate_len; c++) | |
1402 if (translate[c] != c) | |
1403 { | |
1404 char buf[20]; | |
1405 char *bufend; | |
1406 | |
1407 if (alternate_heading) | |
1408 { | |
1409 insert_string (alternate_heading); | |
1410 alternate_heading = 0; | |
1411 } | |
1412 | |
1413 bufend = push_key_description (translate[c], buf); | |
1414 insert (buf, bufend - buf); | |
1415 Findent_to (make_number (16), make_number (1)); | |
1416 bufend = push_key_description (c, buf); | |
1417 insert (buf, bufend - buf); | |
1418 | |
1419 insert ("\n", 1); | |
1420 } | |
1421 | |
1422 insert ("\n", 1); | |
1423 } | |
1386 | 1424 |
1387 { | 1425 { |
1388 int i, nmaps; | 1426 int i, nmaps; |
1389 Lisp_Object *modes, *maps; | 1427 Lisp_Object *modes, *maps; |
1390 | 1428 |
1429 /* Temporarily switch to descbuf, so that we can get that buffer's | |
1430 minor modes correctly. */ | |
1431 Fset_buffer (descbuf); | |
1391 nmaps = current_minor_maps (&modes, &maps); | 1432 nmaps = current_minor_maps (&modes, &maps); |
1433 Fset_buffer (Vstandard_output); | |
1434 | |
1392 for (i = 0; i < nmaps; i++) | 1435 for (i = 0; i < nmaps; i++) |
1393 { | 1436 { |
1394 if (XTYPE (modes[i]) == Lisp_Symbol) | 1437 if (XTYPE (modes[i]) == Lisp_Symbol) |
1395 { | 1438 { |
1396 insert_char ('`'); | 1439 insert_char ('`'); |
1398 insert_char ('\''); | 1441 insert_char ('\''); |
1399 } | 1442 } |
1400 else | 1443 else |
1401 insert_string ("Strangely Named"); | 1444 insert_string ("Strangely Named"); |
1402 insert_string (" Minor Mode Bindings:\n"); | 1445 insert_string (" Minor Mode Bindings:\n"); |
1403 insert_string (heading); | 1446 insert_string (key_heading); |
1404 describe_map_tree (maps[i], 0, Qnil); | 1447 describe_map_tree (maps[i], 0, Qnil); |
1405 insert_char ('\n'); | 1448 insert_char ('\n'); |
1406 } | 1449 } |
1407 } | 1450 } |
1408 | 1451 |
1409 start1 = XBUFFER (descbuf)->keymap; | 1452 start1 = XBUFFER (descbuf)->keymap; |
1410 if (!NILP (start1)) | 1453 if (!NILP (start1)) |
1411 { | 1454 { |
1412 insert_string ("Local Bindings:\n"); | 1455 insert_string ("Local Bindings:\n"); |
1413 insert_string (heading); | 1456 insert_string (key_heading); |
1414 describe_map_tree (start1, 0, Qnil); | 1457 describe_map_tree (start1, 0, Qnil); |
1415 insert_string ("\n"); | 1458 insert_string ("\n"); |
1416 } | 1459 } |
1417 | 1460 |
1418 insert_string ("Global Bindings:\n"); | 1461 insert_string ("Global Bindings:\n"); |
1419 insert_string (heading); | 1462 if (NILP (start1)) |
1463 insert_string (key_heading); | |
1420 | 1464 |
1421 describe_map_tree (current_global_map, 0, XBUFFER (descbuf)->keymap); | 1465 describe_map_tree (current_global_map, 0, XBUFFER (descbuf)->keymap); |
1422 | 1466 |
1423 Fset_buffer (descbuf); | 1467 Fset_buffer (descbuf); |
1424 return Qnil; | 1468 return Qnil; |