comparison src/keymap.c @ 5126:2a462149bd6a ben-lisp-object

merge
author Ben Wing <ben@xemacs.org>
date Wed, 24 Feb 2010 19:04:27 -0600
parents b5df3737028a 6f2158fa75ed
children a9c41067dd88
comparison
equal deleted inserted replaced
5125:b5df3737028a 5126:2a462149bd6a
487 487
488 modifiers &= ~( 488 modifiers &= ~(
489 #define FROB(num) XEMACS_MOD_BUTTON##num | 489 #define FROB(num) XEMACS_MOD_BUTTON##num |
490 #include "keymap-buttons.h" 490 #include "keymap-buttons.h"
491 0); 491 0);
492 if ((modifiers & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_META | XEMACS_MOD_SUPER 492 assert ((modifiers & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_META |
493 | XEMACS_MOD_HYPER | XEMACS_MOD_ALT | XEMACS_MOD_SHIFT)) 493 XEMACS_MOD_SUPER | XEMACS_MOD_HYPER |
494 != 0) 494 XEMACS_MOD_ALT | XEMACS_MOD_SHIFT))
495 ABORT (); 495 == 0);
496 496
497 k = XKEYMAP (keymap); 497 k = XKEYMAP (keymap);
498 498
499 /* If the keysym is a one-character symbol, use the char code instead. */ 499 /* If the keysym is a one-character symbol, use the char code instead. */
500 if (SYMBOLP (keysym) && string_char_length (XSYMBOL (keysym)->name) == 1) 500 if (SYMBOLP (keysym) && string_char_length (XSYMBOL (keysym)->name) == 1)
564 Lisp_Object keys = Fgethash (value, inverse_table, Qunbound); 564 Lisp_Object keys = Fgethash (value, inverse_table, Qunbound);
565 Lisp_Object new_keys = keys; 565 Lisp_Object new_keys = keys;
566 Lisp_Object tail; 566 Lisp_Object tail;
567 Lisp_Object *prev; 567 Lisp_Object *prev;
568 568
569 if (UNBOUNDP (keys)) 569 assert (!UNBOUNDP (keys));
570 ABORT ();
571 570
572 for (prev = &new_keys, tail = new_keys; 571 for (prev = &new_keys, tail = new_keys;
573 ; 572 ;
574 prev = &(XCDR (tail)), tail = XCDR (tail)) 573 prev = &(XCDR (tail)), tail = XCDR (tail))
575 { 574 {
3127 int len; 3126 int len;
3128 Lisp_Key_Data key; 3127 Lisp_Key_Data key;
3129 key.keysym = keysym; 3128 key.keysym = keysym;
3130 key.modifiers = modifiers; 3129 key.modifiers = modifiers;
3131 3130
3132 if (NILP (cmd)) 3131 assert (!NILP (cmd));
3133 ABORT ();
3134 cmd = get_keymap (cmd, 0, 1); 3132 cmd = get_keymap (cmd, 0, 1);
3135 if (!KEYMAPP (cmd)) 3133 assert (KEYMAPP (cmd));
3136 ABORT ();
3137 3134
3138 vec = make_vector (XVECTOR_LENGTH (thisseq) + 1, Qnil); 3135 vec = make_vector (XVECTOR_LENGTH (thisseq) + 1, Qnil);
3139 len = XVECTOR_LENGTH (thisseq); 3136 len = XVECTOR_LENGTH (thisseq);
3140 for (j = 0; j < len; j++) 3137 for (j = 0; j < len; j++)
3141 XVECTOR_DATA (vec) [j] = XVECTOR_DATA (thisseq) [j]; 3138 XVECTOR_DATA (vec) [j] = XVECTOR_DATA (thisseq) [j];
3660 } 3657 }
3661 3658
3662 /* OK, the key is for real */ 3659 /* OK, the key is for real */
3663 if (target_buffer) 3660 if (target_buffer)
3664 { 3661 {
3665 if (!firstonly) ABORT (); 3662 assert (firstonly);
3666 format_raw_keys (so_far, keys_count + 1, target_buffer); 3663 format_raw_keys (so_far, keys_count + 1, target_buffer);
3667 return make_int (1); 3664 return make_int (1);
3668 } 3665 }
3669 else if (firstonly) 3666 else if (firstonly)
3670 return raw_keys_to_keys (so_far, keys_count + 1); 3667 return raw_keys_to_keys (so_far, keys_count + 1);