aboutsummaryrefslogtreecommitdiffstats
path: root/src/keymap.c
diff options
context:
space:
mode:
authorKen Raeburn1999-09-13 02:23:04 +0000
committerKen Raeburn1999-09-13 02:23:04 +0000
commit03699b140e13aee5b49fa4678e97dff5855e789c (patch)
tree79213225b326eeaa5385bf863f2e3c2df62963e5 /src/keymap.c
parent926106201f8bfebbaac3c5b0f5e36192b7f00f1b (diff)
downloademacs-03699b140e13aee5b49fa4678e97dff5855e789c.tar.gz
emacs-03699b140e13aee5b49fa4678e97dff5855e789c.zip
Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member access.
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c312
1 files changed, 156 insertions, 156 deletions
diff --git a/src/keymap.c b/src/keymap.c
index c209a690226..aa1ec28c284 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -231,7 +231,7 @@ get_keymap_1 (object, error, autoload)
231 else 231 else
232 { 232 {
233 tem = indirect_function (object); 233 tem = indirect_function (object);
234 if (CONSP (tem) && EQ (XCONS (tem)->car, Qkeymap)) 234 if (CONSP (tem) && EQ (XCAR (tem), Qkeymap))
235 return tem; 235 return tem;
236 } 236 }
237 237
@@ -240,7 +240,7 @@ get_keymap_1 (object, error, autoload)
240 if (autoload 240 if (autoload
241 && SYMBOLP (object) 241 && SYMBOLP (object)
242 && CONSP (tem) 242 && CONSP (tem)
243 && EQ (XCONS (tem)->car, Qautoload)) 243 && EQ (XCAR (tem), Qautoload))
244 { 244 {
245 Lisp_Object tail; 245 Lisp_Object tail;
246 246
@@ -287,11 +287,11 @@ DEFUN ("keymap-parent", Fkeymap_parent, Skeymap_parent, 1, 1, 0,
287 keymap = get_keymap_1 (keymap, 1, 1); 287 keymap = get_keymap_1 (keymap, 1, 1);
288 288
289 /* Skip past the initial element `keymap'. */ 289 /* Skip past the initial element `keymap'. */
290 list = XCONS (keymap)->cdr; 290 list = XCDR (keymap);
291 for (; CONSP (list); list = XCONS (list)->cdr) 291 for (; CONSP (list); list = XCDR (list))
292 { 292 {
293 /* See if there is another `keymap'. */ 293 /* See if there is another `keymap'. */
294 if (EQ (Qkeymap, XCONS (list)->car)) 294 if (EQ (Qkeymap, XCAR (list)))
295 return list; 295 return list;
296 } 296 }
297 297
@@ -317,17 +317,17 @@ PARENT should be nil or another keymap.")
317 prev = keymap; 317 prev = keymap;
318 while (1) 318 while (1)
319 { 319 {
320 list = XCONS (prev)->cdr; 320 list = XCDR (prev);
321 /* If there is a parent keymap here, replace it. 321 /* If there is a parent keymap here, replace it.
322 If we came to the end, add the parent in PREV. */ 322 If we came to the end, add the parent in PREV. */
323 if (! CONSP (list) || EQ (Qkeymap, XCONS (list)->car)) 323 if (! CONSP (list) || EQ (Qkeymap, XCAR (list)))
324 { 324 {
325 /* If we already have the right parent, return now 325 /* If we already have the right parent, return now
326 so that we avoid the loops below. */ 326 so that we avoid the loops below. */
327 if (EQ (XCONS (prev)->cdr, parent)) 327 if (EQ (XCDR (prev), parent))
328 return parent; 328 return parent;
329 329
330 XCONS (prev)->cdr = parent; 330 XCDR (prev) = parent;
331 break; 331 break;
332 } 332 }
333 prev = list; 333 prev = list;
@@ -335,29 +335,29 @@ PARENT should be nil or another keymap.")
335 335
336 /* Scan through for submaps, and set their parents too. */ 336 /* Scan through for submaps, and set their parents too. */
337 337
338 for (list = XCONS (keymap)->cdr; CONSP (list); list = XCONS (list)->cdr) 338 for (list = XCDR (keymap); CONSP (list); list = XCDR (list))
339 { 339 {
340 /* Stop the scan when we come to the parent. */ 340 /* Stop the scan when we come to the parent. */
341 if (EQ (XCONS (list)->car, Qkeymap)) 341 if (EQ (XCAR (list), Qkeymap))
342 break; 342 break;
343 343
344 /* If this element holds a prefix map, deal with it. */ 344 /* If this element holds a prefix map, deal with it. */
345 if (CONSP (XCONS (list)->car) 345 if (CONSP (XCAR (list))
346 && CONSP (XCONS (XCONS (list)->car)->cdr)) 346 && CONSP (XCDR (XCAR (list))))
347 fix_submap_inheritance (keymap, XCONS (XCONS (list)->car)->car, 347 fix_submap_inheritance (keymap, XCAR (XCAR (list)),
348 XCONS (XCONS (list)->car)->cdr); 348 XCDR (XCAR (list)));
349 349
350 if (VECTORP (XCONS (list)->car)) 350 if (VECTORP (XCAR (list)))
351 for (i = 0; i < XVECTOR (XCONS (list)->car)->size; i++) 351 for (i = 0; i < XVECTOR (XCAR (list))->size; i++)
352 if (CONSP (XVECTOR (XCONS (list)->car)->contents[i])) 352 if (CONSP (XVECTOR (XCAR (list))->contents[i]))
353 fix_submap_inheritance (keymap, make_number (i), 353 fix_submap_inheritance (keymap, make_number (i),
354 XVECTOR (XCONS (list)->car)->contents[i]); 354 XVECTOR (XCAR (list))->contents[i]);
355 355
356 if (CHAR_TABLE_P (XCONS (list)->car)) 356 if (CHAR_TABLE_P (XCAR (list)))
357 { 357 {
358 Lisp_Object indices[3]; 358 Lisp_Object indices[3];
359 359
360 map_char_table (fix_submap_inheritance, Qnil, XCONS (list)->car, 360 map_char_table (fix_submap_inheritance, Qnil, XCAR (list),
361 keymap, 0, indices); 361 keymap, 0, indices);
362 } 362 }
363 } 363 }
@@ -381,37 +381,37 @@ fix_submap_inheritance (map, event, submap)
381 if (CONSP (submap)) 381 if (CONSP (submap))
382 { 382 {
383 /* May be an old format menu item */ 383 /* May be an old format menu item */
384 if (STRINGP (XCONS (submap)->car)) 384 if (STRINGP (XCAR (submap)))
385 { 385 {
386 submap = XCONS (submap)->cdr; 386 submap = XCDR (submap);
387 /* Also remove a menu help string, if any, 387 /* Also remove a menu help string, if any,
388 following the menu item name. */ 388 following the menu item name. */
389 if (CONSP (submap) && STRINGP (XCONS (submap)->car)) 389 if (CONSP (submap) && STRINGP (XCAR (submap)))
390 submap = XCONS (submap)->cdr; 390 submap = XCDR (submap);
391 /* Also remove the sublist that caches key equivalences, if any. */ 391 /* Also remove the sublist that caches key equivalences, if any. */
392 if (CONSP (submap) 392 if (CONSP (submap)
393 && CONSP (XCONS (submap)->car)) 393 && CONSP (XCAR (submap)))
394 { 394 {
395 Lisp_Object carcar; 395 Lisp_Object carcar;
396 carcar = XCONS (XCONS (submap)->car)->car; 396 carcar = XCAR (XCAR (submap));
397 if (NILP (carcar) || VECTORP (carcar)) 397 if (NILP (carcar) || VECTORP (carcar))
398 submap = XCONS (submap)->cdr; 398 submap = XCDR (submap);
399 } 399 }
400 } 400 }
401 401
402 /* Or a new format menu item */ 402 /* Or a new format menu item */
403 else if (EQ (XCONS (submap)->car, Qmenu_item) 403 else if (EQ (XCAR (submap), Qmenu_item)
404 && CONSP (XCONS (submap)->cdr)) 404 && CONSP (XCDR (submap)))
405 { 405 {
406 submap = XCONS (XCONS (submap)->cdr)->cdr; 406 submap = XCDR (XCDR (submap));
407 if (CONSP (submap)) 407 if (CONSP (submap))
408 submap = XCONS (submap)->car; 408 submap = XCAR (submap);
409 } 409 }
410 } 410 }
411 411
412 /* If it isn't a keymap now, there's no work to do. */ 412 /* If it isn't a keymap now, there's no work to do. */
413 if (! CONSP (submap) 413 if (! CONSP (submap)
414 || ! EQ (XCONS (submap)->car, Qkeymap)) 414 || ! EQ (XCAR (submap), Qkeymap))
415 return; 415 return;
416 416
417 map_parent = Fkeymap_parent (map); 417 map_parent = Fkeymap_parent (map);
@@ -422,7 +422,7 @@ fix_submap_inheritance (map, event, submap)
422 422
423 /* If MAP's parent has something other than a keymap, 423 /* If MAP's parent has something other than a keymap,
424 our own submap shadows it completely, so use nil as SUBMAP's parent. */ 424 our own submap shadows it completely, so use nil as SUBMAP's parent. */
425 if (! (CONSP (parent_entry) && EQ (XCONS (parent_entry)->car, Qkeymap))) 425 if (! (CONSP (parent_entry) && EQ (XCAR (parent_entry), Qkeymap)))
426 parent_entry = Qnil; 426 parent_entry = Qnil;
427 427
428 if (! EQ (parent_entry, submap)) 428 if (! EQ (parent_entry, submap))
@@ -436,7 +436,7 @@ fix_submap_inheritance (map, event, submap)
436 if (EQ (tem, parent_entry)) 436 if (EQ (tem, parent_entry))
437 return; 437 return;
438 if (CONSP (tem) 438 if (CONSP (tem)
439 && EQ (XCONS (tem)->car, Qkeymap)) 439 && EQ (XCAR (tem), Qkeymap))
440 submap_parent = tem; 440 submap_parent = tem;
441 else 441 else
442 break; 442 break;
@@ -486,11 +486,11 @@ access_keymap (map, idx, t_ok, noinherit)
486 Lisp_Object t_binding; 486 Lisp_Object t_binding;
487 487
488 t_binding = Qnil; 488 t_binding = Qnil;
489 for (tail = map; CONSP (tail); tail = XCONS (tail)->cdr) 489 for (tail = map; CONSP (tail); tail = XCDR (tail))
490 { 490 {
491 Lisp_Object binding; 491 Lisp_Object binding;
492 492
493 binding = XCONS (tail)->car; 493 binding = XCAR (tail);
494 if (SYMBOLP (binding)) 494 if (SYMBOLP (binding))
495 { 495 {
496 /* If NOINHERIT, stop finding prefix definitions 496 /* If NOINHERIT, stop finding prefix definitions
@@ -500,24 +500,24 @@ access_keymap (map, idx, t_ok, noinherit)
500 } 500 }
501 else if (CONSP (binding)) 501 else if (CONSP (binding))
502 { 502 {
503 if (EQ (XCONS (binding)->car, idx)) 503 if (EQ (XCAR (binding), idx))
504 { 504 {
505 val = XCONS (binding)->cdr; 505 val = XCDR (binding);
506 if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap)) 506 if (noprefix && CONSP (val) && EQ (XCAR (val), Qkeymap))
507 return Qnil; 507 return Qnil;
508 if (CONSP (val)) 508 if (CONSP (val))
509 fix_submap_inheritance (map, idx, val); 509 fix_submap_inheritance (map, idx, val);
510 return val; 510 return val;
511 } 511 }
512 if (t_ok && EQ (XCONS (binding)->car, Qt)) 512 if (t_ok && EQ (XCAR (binding), Qt))
513 t_binding = XCONS (binding)->cdr; 513 t_binding = XCDR (binding);
514 } 514 }
515 else if (VECTORP (binding)) 515 else if (VECTORP (binding))
516 { 516 {
517 if (NATNUMP (idx) && XFASTINT (idx) < XVECTOR (binding)->size) 517 if (NATNUMP (idx) && XFASTINT (idx) < XVECTOR (binding)->size)
518 { 518 {
519 val = XVECTOR (binding)->contents[XFASTINT (idx)]; 519 val = XVECTOR (binding)->contents[XFASTINT (idx)];
520 if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap)) 520 if (noprefix && CONSP (val) && EQ (XCAR (val), Qkeymap))
521 return Qnil; 521 return Qnil;
522 if (CONSP (val)) 522 if (CONSP (val))
523 fix_submap_inheritance (map, idx, val); 523 fix_submap_inheritance (map, idx, val);
@@ -535,7 +535,7 @@ access_keymap (map, idx, t_ok, noinherit)
535 | CHAR_SHIFT | CHAR_CTL | CHAR_META))) 535 | CHAR_SHIFT | CHAR_CTL | CHAR_META)))
536 { 536 {
537 val = Faref (binding, idx); 537 val = Faref (binding, idx);
538 if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap)) 538 if (noprefix && CONSP (val) && EQ (XCAR (val), Qkeymap))
539 return Qnil; 539 return Qnil;
540 if (CONSP (val)) 540 if (CONSP (val))
541 fix_submap_inheritance (map, idx, val); 541 fix_submap_inheritance (map, idx, val);
@@ -651,10 +651,10 @@ store_in_keymap (keymap, idx, def)
651 /* If we are preparing to dump, and DEF is a menu element 651 /* If we are preparing to dump, and DEF is a menu element
652 with a menu item indicator, copy it to ensure it is not pure. */ 652 with a menu item indicator, copy it to ensure it is not pure. */
653 if (CONSP (def) && PURE_P (def) 653 if (CONSP (def) && PURE_P (def)
654 && (EQ (XCONS (def)->car, Qmenu_item) || STRINGP (XCONS (def)->car))) 654 && (EQ (XCAR (def), Qmenu_item) || STRINGP (XCAR (def))))
655 def = Fcons (XCONS (def)->car, XCONS (def)->cdr); 655 def = Fcons (XCAR (def), XCDR (def));
656 656
657 if (!CONSP (keymap) || ! EQ (XCONS (keymap)->car, Qkeymap)) 657 if (!CONSP (keymap) || ! EQ (XCAR (keymap), Qkeymap))
658 error ("attempt to define a key in a non-keymap"); 658 error ("attempt to define a key in a non-keymap");
659 659
660 /* If idx is a list (some sort of mouse click, perhaps?), 660 /* If idx is a list (some sort of mouse click, perhaps?),
@@ -684,11 +684,11 @@ store_in_keymap (keymap, idx, def)
684 Lisp_Object insertion_point; 684 Lisp_Object insertion_point;
685 685
686 insertion_point = keymap; 686 insertion_point = keymap;
687 for (tail = XCONS (keymap)->cdr; CONSP (tail); tail = XCONS (tail)->cdr) 687 for (tail = XCDR (keymap); CONSP (tail); tail = XCDR (tail))
688 { 688 {
689 Lisp_Object elt; 689 Lisp_Object elt;
690 690
691 elt = XCONS (tail)->car; 691 elt = XCAR (tail);
692 if (VECTORP (elt)) 692 if (VECTORP (elt))
693 { 693 {
694 if (NATNUMP (idx) && XFASTINT (idx) < XVECTOR (elt)->size) 694 if (NATNUMP (idx) && XFASTINT (idx) < XVECTOR (elt)->size)
@@ -715,9 +715,9 @@ store_in_keymap (keymap, idx, def)
715 } 715 }
716 else if (CONSP (elt)) 716 else if (CONSP (elt))
717 { 717 {
718 if (EQ (idx, XCONS (elt)->car)) 718 if (EQ (idx, XCAR (elt)))
719 { 719 {
720 XCONS (elt)->cdr = def; 720 XCDR (elt) = def;
721 return def; 721 return def;
722 } 722 }
723 } 723 }
@@ -737,8 +737,8 @@ store_in_keymap (keymap, idx, def)
737 keymap_end: 737 keymap_end:
738 /* We have scanned the entire keymap, and not found a binding for 738 /* We have scanned the entire keymap, and not found a binding for
739 IDX. Let's add one. */ 739 IDX. Let's add one. */
740 XCONS (insertion_point)->cdr 740 XCDR (insertion_point)
741 = Fcons (Fcons (idx, def), XCONS (insertion_point)->cdr); 741 = Fcons (Fcons (idx, def), XCDR (insertion_point));
742 } 742 }
743 743
744 return def; 744 return def;
@@ -766,17 +766,17 @@ is not copied.")
766 766
767 copy = Fcopy_alist (get_keymap (keymap)); 767 copy = Fcopy_alist (get_keymap (keymap));
768 768
769 for (tail = copy; CONSP (tail); tail = XCONS (tail)->cdr) 769 for (tail = copy; CONSP (tail); tail = XCDR (tail))
770 { 770 {
771 Lisp_Object elt; 771 Lisp_Object elt;
772 772
773 elt = XCONS (tail)->car; 773 elt = XCAR (tail);
774 if (CHAR_TABLE_P (elt)) 774 if (CHAR_TABLE_P (elt))
775 { 775 {
776 Lisp_Object indices[3]; 776 Lisp_Object indices[3];
777 777
778 elt = Fcopy_sequence (elt); 778 elt = Fcopy_sequence (elt);
779 XCONS (tail)->car = elt; 779 XCAR (tail) = elt;
780 780
781 map_char_table (copy_keymap_1, Qnil, elt, elt, 0, indices); 781 map_char_table (copy_keymap_1, Qnil, elt, elt, 0, indices);
782 } 782 }
@@ -785,7 +785,7 @@ is not copied.")
785 int i; 785 int i;
786 786
787 elt = Fcopy_sequence (elt); 787 elt = Fcopy_sequence (elt);
788 XCONS (tail)->car = elt; 788 XCAR (tail) = elt;
789 789
790 for (i = 0; i < XVECTOR (elt)->size; i++) 790 for (i = 0; i < XVECTOR (elt)->size; i++)
791 if (!SYMBOLP (XVECTOR (elt)->contents[i]) 791 if (!SYMBOLP (XVECTOR (elt)->contents[i])
@@ -793,41 +793,41 @@ is not copied.")
793 XVECTOR (elt)->contents[i] 793 XVECTOR (elt)->contents[i]
794 = Fcopy_keymap (XVECTOR (elt)->contents[i]); 794 = Fcopy_keymap (XVECTOR (elt)->contents[i]);
795 } 795 }
796 else if (CONSP (elt) && CONSP (XCONS (elt)->cdr)) 796 else if (CONSP (elt) && CONSP (XCDR (elt)))
797 { 797 {
798 Lisp_Object tem; 798 Lisp_Object tem;
799 tem = XCONS (elt)->cdr; 799 tem = XCDR (elt);
800 800
801 /* Is this a new format menu item. */ 801 /* Is this a new format menu item. */
802 if (EQ (XCONS (tem)->car,Qmenu_item)) 802 if (EQ (XCAR (tem),Qmenu_item))
803 { 803 {
804 /* Copy cell with menu-item marker. */ 804 /* Copy cell with menu-item marker. */
805 XCONS (elt)->cdr 805 XCDR (elt)
806 = Fcons (XCONS (tem)->car, XCONS (tem)->cdr); 806 = Fcons (XCAR (tem), XCDR (tem));
807 elt = XCONS (elt)->cdr; 807 elt = XCDR (elt);
808 tem = XCONS (elt)->cdr; 808 tem = XCDR (elt);
809 if (CONSP (tem)) 809 if (CONSP (tem))
810 { 810 {
811 /* Copy cell with menu-item name. */ 811 /* Copy cell with menu-item name. */
812 XCONS (elt)->cdr 812 XCDR (elt)
813 = Fcons (XCONS (tem)->car, XCONS (tem)->cdr); 813 = Fcons (XCAR (tem), XCDR (tem));
814 elt = XCONS (elt)->cdr; 814 elt = XCDR (elt);
815 tem = XCONS (elt)->cdr; 815 tem = XCDR (elt);
816 }; 816 };
817 if (CONSP (tem)) 817 if (CONSP (tem))
818 { 818 {
819 /* Copy cell with binding and if the binding is a keymap, 819 /* Copy cell with binding and if the binding is a keymap,
820 copy that. */ 820 copy that. */
821 XCONS (elt)->cdr 821 XCDR (elt)
822 = Fcons (XCONS (tem)->car, XCONS (tem)->cdr); 822 = Fcons (XCAR (tem), XCDR (tem));
823 elt = XCONS (elt)->cdr; 823 elt = XCDR (elt);
824 tem = XCONS (elt)->car; 824 tem = XCAR (elt);
825 if (!(SYMBOLP (tem) || NILP (Fkeymapp (tem)))) 825 if (!(SYMBOLP (tem) || NILP (Fkeymapp (tem))))
826 XCONS (elt)->car = Fcopy_keymap (tem); 826 XCAR (elt) = Fcopy_keymap (tem);
827 tem = XCONS (elt)->cdr; 827 tem = XCDR (elt);
828 if (CONSP (tem) && CONSP (XCONS (tem)->car)) 828 if (CONSP (tem) && CONSP (XCAR (tem)))
829 /* Delete cache for key equivalences. */ 829 /* Delete cache for key equivalences. */
830 XCONS (elt)->cdr = XCONS (tem)->cdr; 830 XCDR (elt) = XCDR (tem);
831 } 831 }
832 } 832 }
833 else 833 else
@@ -835,33 +835,33 @@ is not copied.")
835 /* It may be an old fomat menu item. 835 /* It may be an old fomat menu item.
836 Skip the optional menu string. 836 Skip the optional menu string.
837 */ 837 */
838 if (STRINGP (XCONS (tem)->car)) 838 if (STRINGP (XCAR (tem)))
839 { 839 {
840 /* Copy the cell, since copy-alist didn't go this deep. */ 840 /* Copy the cell, since copy-alist didn't go this deep. */
841 XCONS (elt)->cdr 841 XCDR (elt)
842 = Fcons (XCONS (tem)->car, XCONS (tem)->cdr); 842 = Fcons (XCAR (tem), XCDR (tem));
843 elt = XCONS (elt)->cdr; 843 elt = XCDR (elt);
844 tem = XCONS (elt)->cdr; 844 tem = XCDR (elt);
845 /* Also skip the optional menu help string. */ 845 /* Also skip the optional menu help string. */
846 if (CONSP (tem) && STRINGP (XCONS (tem)->car)) 846 if (CONSP (tem) && STRINGP (XCAR (tem)))
847 { 847 {
848 XCONS (elt)->cdr 848 XCDR (elt)
849 = Fcons (XCONS (tem)->car, XCONS (tem)->cdr); 849 = Fcons (XCAR (tem), XCDR (tem));
850 elt = XCONS (elt)->cdr; 850 elt = XCDR (elt);
851 tem = XCONS (elt)->cdr; 851 tem = XCDR (elt);
852 } 852 }
853 /* There may also be a list that caches key equivalences. 853 /* There may also be a list that caches key equivalences.
854 Just delete it for the new keymap. */ 854 Just delete it for the new keymap. */
855 if (CONSP (tem) 855 if (CONSP (tem)
856 && CONSP (XCONS (tem)->car) 856 && CONSP (XCAR (tem))
857 && (NILP (XCONS (XCONS (tem)->car)->car) 857 && (NILP (XCAR (XCAR (tem)))
858 || VECTORP (XCONS (XCONS (tem)->car)->car))) 858 || VECTORP (XCAR (XCAR (tem)))))
859 XCONS (elt)->cdr = XCONS (tem)->cdr; 859 XCDR (elt) = XCDR (tem);
860 } 860 }
861 if (CONSP (elt) 861 if (CONSP (elt)
862 && ! SYMBOLP (XCONS (elt)->cdr) 862 && ! SYMBOLP (XCDR (elt))
863 && ! NILP (Fkeymapp (XCONS (elt)->cdr))) 863 && ! NILP (Fkeymapp (XCDR (elt))))
864 XCONS (elt)->cdr = Fcopy_keymap (XCONS (elt)->cdr); 864 XCDR (elt) = Fcopy_keymap (XCDR (elt));
865 } 865 }
866 866
867 } 867 }
@@ -1093,8 +1093,8 @@ define_as_prefix (keymap, c)
1093 make it define this key. */ 1093 make it define this key. */
1094 Lisp_Object tail; 1094 Lisp_Object tail;
1095 1095
1096 for (tail = Fcdr (keymap); CONSP (tail); tail = XCONS (tail)->cdr) 1096 for (tail = Fcdr (keymap); CONSP (tail); tail = XCDR (tail))
1097 if (EQ (XCONS (tail)->car, Qkeymap)) 1097 if (EQ (XCAR (tail), Qkeymap))
1098 break; 1098 break;
1099 1099
1100 if (!NILP (tail)) 1100 if (!NILP (tail))
@@ -1169,9 +1169,9 @@ current_minor_maps (modeptr, mapptr)
1169 for (list_number = 0; list_number < 2; list_number++) 1169 for (list_number = 0; list_number < 2; list_number++)
1170 for (alist = lists[list_number]; 1170 for (alist = lists[list_number];
1171 CONSP (alist); 1171 CONSP (alist);
1172 alist = XCONS (alist)->cdr) 1172 alist = XCDR (alist))
1173 if ((assoc = XCONS (alist)->car, CONSP (assoc)) 1173 if ((assoc = XCAR (alist), CONSP (assoc))
1174 && (var = XCONS (assoc)->car, SYMBOLP (var)) 1174 && (var = XCAR (assoc), SYMBOLP (var))
1175 && (val = find_symbol_value (var), ! EQ (val, Qunbound)) 1175 && (val = find_symbol_value (var), ! EQ (val, Qunbound))
1176 && ! NILP (val)) 1176 && ! NILP (val))
1177 { 1177 {
@@ -1225,7 +1225,7 @@ current_minor_maps (modeptr, mapptr)
1225 1225
1226 /* Get the keymap definition--or nil if it is not defined. */ 1226 /* Get the keymap definition--or nil if it is not defined. */
1227 temp = internal_condition_case_1 (Findirect_function, 1227 temp = internal_condition_case_1 (Findirect_function,
1228 XCONS (assoc)->cdr, 1228 XCDR (assoc),
1229 Qerror, current_minor_maps_error); 1229 Qerror, current_minor_maps_error);
1230 if (!NILP (temp)) 1230 if (!NILP (temp))
1231 { 1231 {
@@ -1536,7 +1536,7 @@ then the value includes only maps for prefixes that start with PREFIX.")
1536 This is a breadth-first traversal, where tail is the queue of 1536 This is a breadth-first traversal, where tail is the queue of
1537 nodes, and maps accumulates a list of all nodes visited. */ 1537 nodes, and maps accumulates a list of all nodes visited. */
1538 1538
1539 for (tail = maps; CONSP (tail); tail = XCONS (tail)->cdr) 1539 for (tail = maps; CONSP (tail); tail = XCDR (tail))
1540 { 1540 {
1541 register Lisp_Object thisseq, thismap; 1541 register Lisp_Object thisseq, thismap;
1542 Lisp_Object last; 1542 Lisp_Object last;
@@ -1551,11 +1551,11 @@ then the value includes only maps for prefixes that start with PREFIX.")
1551 && XINT (last) >= prefixlen 1551 && XINT (last) >= prefixlen
1552 && EQ (Faref (thisseq, last), meta_prefix_char)); 1552 && EQ (Faref (thisseq, last), meta_prefix_char));
1553 1553
1554 for (; CONSP (thismap); thismap = XCONS (thismap)->cdr) 1554 for (; CONSP (thismap); thismap = XCDR (thismap))
1555 { 1555 {
1556 Lisp_Object elt; 1556 Lisp_Object elt;
1557 1557
1558 elt = XCONS (thismap)->car; 1558 elt = XCAR (thismap);
1559 1559
1560 QUIT; 1560 QUIT;
1561 1561
@@ -1602,8 +1602,8 @@ then the value includes only maps for prefixes that start with PREFIX.")
1602 /* This new sequence is the same length as 1602 /* This new sequence is the same length as
1603 thisseq, so stick it in the list right 1603 thisseq, so stick it in the list right
1604 after this one. */ 1604 after this one. */
1605 XCONS (tail)->cdr 1605 XCDR (tail)
1606 = Fcons (Fcons (tem, cmd), XCONS (tail)->cdr); 1606 = Fcons (Fcons (tem, cmd), XCDR (tail));
1607 } 1607 }
1608 else 1608 else
1609 { 1609 {
@@ -1618,7 +1618,7 @@ then the value includes only maps for prefixes that start with PREFIX.")
1618 { 1618 {
1619 register Lisp_Object cmd, tem, filter; 1619 register Lisp_Object cmd, tem, filter;
1620 1620
1621 cmd = get_keyelt (XCONS (elt)->cdr, 0); 1621 cmd = get_keyelt (XCDR (elt), 0);
1622 /* Ignore definitions that aren't keymaps themselves. */ 1622 /* Ignore definitions that aren't keymaps themselves. */
1623 tem = Fkeymapp (cmd); 1623 tem = Fkeymapp (cmd);
1624 if (!NILP (tem)) 1624 if (!NILP (tem))
@@ -1629,7 +1629,7 @@ then the value includes only maps for prefixes that start with PREFIX.")
1629 if (NILP (tem)) 1629 if (NILP (tem))
1630 { 1630 {
1631 /* Let elt be the event defined by this map entry. */ 1631 /* Let elt be the event defined by this map entry. */
1632 elt = XCONS (elt)->car; 1632 elt = XCAR (elt);
1633 1633
1634 /* If the last key in thisseq is meta-prefix-char, and 1634 /* If the last key in thisseq is meta-prefix-char, and
1635 this entry is a binding for an ascii keystroke, 1635 this entry is a binding for an ascii keystroke,
@@ -1646,8 +1646,8 @@ then the value includes only maps for prefixes that start with PREFIX.")
1646 /* This new sequence is the same length as 1646 /* This new sequence is the same length as
1647 thisseq, so stick it in the list right 1647 thisseq, so stick it in the list right
1648 after this one. */ 1648 after this one. */
1649 XCONS (tail)->cdr 1649 XCDR (tail)
1650 = Fcons (Fcons (tem, cmd), XCONS (tail)->cdr); 1650 = Fcons (Fcons (tem, cmd), XCDR (tail));
1651 } 1651 }
1652 else 1652 else
1653 nconc2 (tail, 1653 nconc2 (tail,
@@ -1665,11 +1665,11 @@ then the value includes only maps for prefixes that start with PREFIX.")
1665 /* Now find just the maps whose access prefixes start with PREFIX. */ 1665 /* Now find just the maps whose access prefixes start with PREFIX. */
1666 1666
1667 good_maps = Qnil; 1667 good_maps = Qnil;
1668 for (; CONSP (maps); maps = XCONS (maps)->cdr) 1668 for (; CONSP (maps); maps = XCDR (maps))
1669 { 1669 {
1670 Lisp_Object elt, thisseq; 1670 Lisp_Object elt, thisseq;
1671 elt = XCONS (maps)->car; 1671 elt = XCAR (maps);
1672 thisseq = XCONS (elt)->car; 1672 thisseq = XCAR (elt);
1673 /* The access prefix must be at least as long as PREFIX, 1673 /* The access prefix must be at least as long as PREFIX,
1674 and the first elements must match those of PREFIX. */ 1674 and the first elements must match those of PREFIX. */
1675 if (XINT (Flength (thisseq)) >= prefixlen) 1675 if (XINT (Flength (thisseq)) >= prefixlen)
@@ -1700,9 +1700,9 @@ accessible_keymaps_char_table (args, index, cmd)
1700 if (NILP (cmd)) 1700 if (NILP (cmd))
1701 return; 1701 return;
1702 1702
1703 maps = XCONS (args)->car; 1703 maps = XCAR (args);
1704 tail = XCONS (XCONS (args)->cdr)->car; 1704 tail = XCAR (XCDR (args));
1705 thisseq = XCONS (XCONS (args)->cdr)->cdr; 1705 thisseq = XCDR (XCDR (args));
1706 1706
1707 tem = Fkeymapp (cmd); 1707 tem = Fkeymapp (cmd);
1708 if (!NILP (tem)) 1708 if (!NILP (tem))
@@ -1787,9 +1787,9 @@ spaces are put between sequence elements, etc.")
1787 1787
1788 for (i = 0; i < len; i++) 1788 for (i = 0; i < len; i++)
1789 { 1789 {
1790 args[i * 2] = Fsingle_key_description (XCONS (keys)->car); 1790 args[i * 2] = Fsingle_key_description (XCAR (keys));
1791 args[i * 2 + 1] = sep; 1791 args[i * 2 + 1] = sep;
1792 keys = XCONS (keys)->cdr; 1792 keys = XCDR (keys);
1793 } 1793 }
1794 } 1794 }
1795 else 1795 else
@@ -2106,10 +2106,10 @@ indirect definition itself.")
2106 minors = Fnreverse (Fcurrent_minor_mode_maps ()); 2106 minors = Fnreverse (Fcurrent_minor_mode_maps ());
2107 while (!NILP (minors)) 2107 while (!NILP (minors))
2108 { 2108 {
2109 maps = nconc2 (Faccessible_keymaps (get_keymap (XCONS (minors)->car), 2109 maps = nconc2 (Faccessible_keymaps (get_keymap (XCAR (minors)),
2110 Qnil), 2110 Qnil),
2111 maps); 2111 maps);
2112 minors = XCONS (minors)->cdr; 2112 minors = XCDR (minors);
2113 } 2113 }
2114 } 2114 }
2115 2115
@@ -2147,8 +2147,8 @@ indirect definition itself.")
2147 advance map to the next element until i indicates that we 2147 advance map to the next element until i indicates that we
2148 have finished off the vector. */ 2148 have finished off the vector. */
2149 Lisp_Object elt, key, binding; 2149 Lisp_Object elt, key, binding;
2150 elt = XCONS (map)->car; 2150 elt = XCAR (map);
2151 map = XCONS (map)->cdr; 2151 map = XCDR (map);
2152 2152
2153 sequences = Qnil; 2153 sequences = Qnil;
2154 2154
@@ -2185,14 +2185,14 @@ indirect definition itself.")
2185 2185
2186 map_char_table (where_is_internal_2, Qnil, elt, args, 2186 map_char_table (where_is_internal_2, Qnil, elt, args,
2187 0, indices); 2187 0, indices);
2188 sequences = XCONS (XCONS (XCONS (args)->car)->cdr)->cdr; 2188 sequences = XCDR (XCDR (XCAR (args)));
2189 } 2189 }
2190 else if (CONSP (elt)) 2190 else if (CONSP (elt))
2191 { 2191 {
2192 Lisp_Object sequence; 2192 Lisp_Object sequence;
2193 2193
2194 key = XCONS (elt)->car; 2194 key = XCAR (elt);
2195 binding = XCONS (elt)->cdr; 2195 binding = XCDR (elt);
2196 2196
2197 sequence = where_is_internal_1 (binding, key, definition, 2197 sequence = where_is_internal_1 (binding, key, definition,
2198 noindirect, keymap, this, 2198 noindirect, keymap, this,
@@ -2202,11 +2202,11 @@ indirect definition itself.")
2202 } 2202 }
2203 2203
2204 2204
2205 for (; ! NILP (sequences); sequences = XCONS (sequences)->cdr) 2205 for (; ! NILP (sequences); sequences = XCDR (sequences))
2206 { 2206 {
2207 Lisp_Object sequence; 2207 Lisp_Object sequence;
2208 2208
2209 sequence = XCONS (sequences)->car; 2209 sequence = XCAR (sequences);
2210 2210
2211 /* It is a true unshadowed match. Record it, unless it's already 2211 /* It is a true unshadowed match. Record it, unless it's already
2212 been seen (as could happen when inheriting keymaps). */ 2212 been seen (as could happen when inheriting keymaps). */
@@ -2254,20 +2254,20 @@ where_is_internal_2 (args, key, binding)
2254 Lisp_Object result, sequence; 2254 Lisp_Object result, sequence;
2255 int nomenus, last_is_meta; 2255 int nomenus, last_is_meta;
2256 2256
2257 result = XCONS (XCONS (XCONS (args)->car)->cdr)->cdr; 2257 result = XCDR (XCDR (XCAR (args)));
2258 definition = XCONS (XCONS (XCONS (args)->car)->car)->car; 2258 definition = XCAR (XCAR (XCAR (args)));
2259 noindirect = XCONS (XCONS (XCONS (args)->car)->car)->cdr; 2259 noindirect = XCDR (XCAR (XCAR (args)));
2260 keymap = XCONS (XCONS (XCONS (args)->car)->cdr)->car; 2260 keymap = XCAR (XCDR (XCAR (args)));
2261 this = XCONS (XCONS (XCONS (args)->cdr)->car)->car; 2261 this = XCAR (XCAR (XCDR (args)));
2262 last = XCONS (XCONS (XCONS (args)->cdr)->car)->cdr; 2262 last = XCDR (XCAR (XCDR (args)));
2263 nomenus = XFASTINT (XCONS (XCONS (XCONS (args)->cdr)->cdr)->car); 2263 nomenus = XFASTINT (XCAR (XCDR (XCDR (args))));
2264 last_is_meta = XFASTINT (XCONS (XCONS (XCONS (args)->cdr)->cdr)->cdr); 2264 last_is_meta = XFASTINT (XCDR (XCDR (XCDR (args))));
2265 2265
2266 sequence = where_is_internal_1 (binding, key, definition, noindirect, keymap, 2266 sequence = where_is_internal_1 (binding, key, definition, noindirect, keymap,
2267 this, last, nomenus, last_is_meta); 2267 this, last, nomenus, last_is_meta);
2268 2268
2269 if (!NILP (sequence)) 2269 if (!NILP (sequence))
2270 XCONS (XCONS (XCONS (args)->car)->cdr)->cdr 2270 XCDR (XCDR (XCAR (args)))
2271 = Fcons (sequence, result); 2271 = Fcons (sequence, result);
2272} 2272}
2273 2273
@@ -2298,8 +2298,8 @@ where_is_internal_1 (binding, key, definition, noindirect, keymap, this, last,
2298 } 2298 }
2299 /* If the contents are (menu-item ...) or (STRING ...), reject. */ 2299 /* If the contents are (menu-item ...) or (STRING ...), reject. */
2300 if (CONSP (definition) 2300 if (CONSP (definition)
2301 && (EQ (XCONS (definition)->car,Qmenu_item) 2301 && (EQ (XCAR (definition),Qmenu_item)
2302 || STRINGP (XCONS (definition)->car))) 2302 || STRINGP (XCAR (definition))))
2303 return Qnil; 2303 return Qnil;
2304 } 2304 }
2305 else 2305 else
@@ -2404,11 +2404,11 @@ Keyboard translations:\n\n\
2404You type Translation\n\ 2404You type Translation\n\
2405-------- -----------\n"; 2405-------- -----------\n";
2406 2406
2407 descbuf = XCONS (arg)->car; 2407 descbuf = XCAR (arg);
2408 arg = XCONS (arg)->cdr; 2408 arg = XCDR (arg);
2409 prefix = XCONS (arg)->car; 2409 prefix = XCAR (arg);
2410 arg = XCONS (arg)->cdr; 2410 arg = XCDR (arg);
2411 nomenu = NILP (XCONS (arg)->car); 2411 nomenu = NILP (XCAR (arg));
2412 2412
2413 shadow = Qnil; 2413 shadow = Qnil;
2414 GCPRO1 (shadow); 2414 GCPRO1 (shadow);
@@ -2566,7 +2566,7 @@ key binding\n\
2566 Lisp_Object list; 2566 Lisp_Object list;
2567 2567
2568 /* Delete from MAPS each element that is for the menu bar. */ 2568 /* Delete from MAPS each element that is for the menu bar. */
2569 for (list = maps; !NILP (list); list = XCONS (list)->cdr) 2569 for (list = maps; !NILP (list); list = XCDR (list))
2570 { 2570 {
2571 Lisp_Object elt, prefix, tem; 2571 Lisp_Object elt, prefix, tem;
2572 2572
@@ -2606,11 +2606,11 @@ key binding\n\
2606 2606
2607 sub_shadows = Qnil; 2607 sub_shadows = Qnil;
2608 2608
2609 for (tail = shadow; CONSP (tail); tail = XCONS (tail)->cdr) 2609 for (tail = shadow; CONSP (tail); tail = XCDR (tail))
2610 { 2610 {
2611 Lisp_Object shmap; 2611 Lisp_Object shmap;
2612 2612
2613 shmap = XCONS (tail)->car; 2613 shmap = XCAR (tail);
2614 2614
2615 /* If the sequence by which we reach this keymap is zero-length, 2615 /* If the sequence by which we reach this keymap is zero-length,
2616 then the shadow map for this keymap is just SHADOW. */ 2616 then the shadow map for this keymap is just SHADOW. */
@@ -2740,9 +2740,9 @@ shadow_lookup (shadow, key, flag)
2740{ 2740{
2741 Lisp_Object tail, value; 2741 Lisp_Object tail, value;
2742 2742
2743 for (tail = shadow; CONSP (tail); tail = XCONS (tail)->cdr) 2743 for (tail = shadow; CONSP (tail); tail = XCDR (tail))
2744 { 2744 {
2745 value = Flookup_key (XCONS (tail)->car, key, flag); 2745 value = Flookup_key (XCAR (tail), key, flag);
2746 if (!NILP (value)) 2746 if (!NILP (value))
2747 return value; 2747 return value;
2748 } 2748 }
@@ -2791,18 +2791,18 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu)
2791 2791
2792 GCPRO3 (elt_prefix, definition, kludge); 2792 GCPRO3 (elt_prefix, definition, kludge);
2793 2793
2794 for (tail = map; CONSP (tail); tail = XCONS (tail)->cdr) 2794 for (tail = map; CONSP (tail); tail = XCDR (tail))
2795 { 2795 {
2796 QUIT; 2796 QUIT;
2797 2797
2798 if (VECTORP (XCONS (tail)->car) 2798 if (VECTORP (XCAR (tail))
2799 || CHAR_TABLE_P (XCONS (tail)->car)) 2799 || CHAR_TABLE_P (XCAR (tail)))
2800 describe_vector (XCONS (tail)->car, 2800 describe_vector (XCAR (tail),
2801 elt_prefix, elt_describer, partial, shadow, map, 2801 elt_prefix, elt_describer, partial, shadow, map,
2802 (int *)0, 0); 2802 (int *)0, 0);
2803 else if (CONSP (XCONS (tail)->car)) 2803 else if (CONSP (XCAR (tail)))
2804 { 2804 {
2805 event = XCONS (XCONS (tail)->car)->car; 2805 event = XCAR (XCAR (tail));
2806 2806
2807 /* Ignore bindings whose "keys" are not really valid events. 2807 /* Ignore bindings whose "keys" are not really valid events.
2808 (We get these in the frames and buffers menu.) */ 2808 (We get these in the frames and buffers menu.) */
@@ -2812,7 +2812,7 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu)
2812 if (nomenu && EQ (event, Qmenu_bar)) 2812 if (nomenu && EQ (event, Qmenu_bar))
2813 continue; 2813 continue;
2814 2814
2815 definition = get_keyelt (XCONS (XCONS (tail)->car)->cdr, 0); 2815 definition = get_keyelt (XCDR (XCAR (tail)), 0);
2816 2816
2817 /* Don't show undefined commands or suppressed commands. */ 2817 /* Don't show undefined commands or suppressed commands. */
2818 if (NILP (definition)) continue; 2818 if (NILP (definition)) continue;
@@ -2854,13 +2854,13 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu)
2854 for alignment purposes. */ 2854 for alignment purposes. */
2855 (*elt_describer) (definition); 2855 (*elt_describer) (definition);
2856 } 2856 }
2857 else if (EQ (XCONS (tail)->car, Qkeymap)) 2857 else if (EQ (XCAR (tail), Qkeymap))
2858 { 2858 {
2859 /* The same keymap might be in the structure twice, if we're 2859 /* The same keymap might be in the structure twice, if we're
2860 using an inherited keymap. So skip anything we've already 2860 using an inherited keymap. So skip anything we've already
2861 encountered. */ 2861 encountered. */
2862 tem = Fassq (tail, *seen); 2862 tem = Fassq (tail, *seen);
2863 if (CONSP (tem) && !NILP (Fequal (XCONS (tem)->car, keys))) 2863 if (CONSP (tem) && !NILP (Fequal (XCAR (tem), keys)))
2864 break; 2864 break;
2865 *seen = Fcons (Fcons (tail, keys), *seen); 2865 *seen = Fcons (Fcons (tail, keys), *seen);
2866 } 2866 }