comparison src/keymap.c @ 5050:6f2158fa75ed

Fix quick-build, use asserts() in place of ABORT() -------------------- ChangeLog entries follow: -------------------- ChangeLog addition: 2010-02-20 Ben Wing <ben@xemacs.org> * configure.ac (XE_COMPLEX_ARG): Correct doc of --quick-build: It also doesn't check for Lisp shadows. src/ChangeLog addition: 2010-02-20 Ben Wing <ben@xemacs.org> * EmacsFrame.c: * EmacsFrame.c (EmacsFrameRecomputeCellSize): * alloca.c (i00afunc): * buffer.c: * buffer.c (MARKED_SLOT): * buffer.c (complex_vars_of_buffer): * cm.c: * cm.c (cmcheckmagic): * console.c: * console.c (MARKED_SLOT): * device-x.c: * device-x.c (x_get_visual_depth): * emacs.c (sort_args): * eval.c (throw_or_bomb_out): * event-stream.c: * event-stream.c (Fadd_timeout): * event-stream.c (Fadd_async_timeout): * event-stream.c (Frecent_keys): * events.c: * events.c (Fdeallocate_event): * events.c (event_pixel_translation): * extents.c: * extents.c (process_extents_for_insertion_mapper): * fns.c (Fbase64_encode_region): * fns.c (Fbase64_encode_string): * fns.c (Fbase64_decode_region): * fns.c (Fbase64_decode_string): * font-lock.c: * font-lock.c (find_context): * frame-x.c: * frame-x.c (x_wm_mark_shell_size_user_specified): * frame-x.c (x_wm_mark_shell_position_user_specified): * frame-x.c (x_wm_set_shell_iconic_p): * frame-x.c (x_wm_set_cell_size): * frame-x.c (x_wm_set_variable_size): * frame-x.c (x_wm_store_class_hints): * frame-x.c (x_wm_maybe_store_wm_command): * frame-x.c (x_initialize_frame_size): * frame.c (delete_frame_internal): * frame.c (change_frame_size_1): * free-hook.c (check_free): * free-hook.c (note_block_input): * free-hook.c (log_gcpro): * gccache-gtk.c (gc_cache_lookup): * gccache-x.c: * gccache-x.c (gc_cache_lookup): * glyphs-gtk.c: * glyphs-gtk.c (init_image_instance_from_gdk_pixmap): * glyphs-x.c: * glyphs-x.c (extract_xpm_color_names): * insdel.c: * insdel.c (move_gap): * keymap.c: * keymap.c (keymap_lookup_directly): * keymap.c (keymap_delete_inverse_internal): * keymap.c (accessible_keymaps_mapper_1): * keymap.c (where_is_recursive_mapper): * lisp.h: * lstream.c (make_lisp_buffer_stream_1): * macros.c: * macros.c (pop_kbd_macro_event): * mc-alloc.c (remove_page_from_used_list): * menubar-x.c: * menubar-x.c (set_frame_menubar): * ralloc.c: * ralloc.c (obtain): * ralloc.c (relinquish): * ralloc.c (relocate_blocs): * ralloc.c (resize_bloc): * ralloc.c (r_alloc_free): * ralloc.c (r_re_alloc): * ralloc.c (r_alloc_thaw): * ralloc.c (init_ralloc): * ralloc.c (Free_Addr_Block): * scrollbar-x.c: * scrollbar-x.c (x_update_scrollbar_instance_status): * sunplay.c (init_device): * unexnt.c: * unexnt.c (read_in_bss): * unexnt.c (map_in_heap): * window.c: * window.c (real_window): * window.c (window_display_lines): * window.c (window_display_buffer): * window.c (set_window_display_buffer): * window.c (unshow_buffer): * window.c (Fget_lru_window): if (...) ABORT(); ---> assert(); More specifically: if (x == y) ABORT (); --> assert (x != y); if (x != y) ABORT (); --> assert (x == y); if (x > y) ABORT (); --> assert (x <= y); etc. if (!x) ABORT (); --> assert (x); if (x) ABORT (); --> assert (!x); DeMorgan's Law's applied and manually simplified: if (x && !y) ABORT (); --> assert (!x || y); if (!x || y >= z) ABORT (); --> assert (x && y < z); Checked to make sure that assert() of an expression with side effects ensures that the side effects get executed even when asserts are disabled, and add a comment about this being a requirement of any "disabled assert" expression. * depend: * make-src-depend: * make-src-depend (PrintDeps): Fix broken code in make-src-depend so it does what it was always supposed to do, which was separate out config.h and lisp.h and all the files they include into separate variables in the depend part of Makefile so that quick-build can turn off the lisp.h/config.h/text.h/etc. dependencies of the source files, to speed up recompilation.
author Ben Wing <ben@xemacs.org>
date Sat, 20 Feb 2010 05:05:54 -0600
parents ae48681c47fa
children 99f8ebc082d9 2a462149bd6a
comparison
equal deleted inserted replaced
5030:422b4b4fb2a6 5050:6f2158fa75ed
1 /* Manipulation of keymaps 1 /* Manipulation of keymaps
2 Copyright (C) 1985, 1991-1995 Free Software Foundation, Inc. 2 Copyright (C) 1985, 1991-1995 Free Software Foundation, Inc.
3 Copyright (C) 1995 Board of Trustees, University of Illinois. 3 Copyright (C) 1995 Board of Trustees, University of Illinois.
4 Copyright (C) 1995 Sun Microsystems, Inc. 4 Copyright (C) 1995 Sun Microsystems, Inc.
5 Copyright (C) 2001, 2002 Ben Wing. 5 Copyright (C) 2001, 2002, 2010 Ben Wing.
6 Totally redesigned by jwz in 1991. 6 Totally redesigned by jwz in 1991.
7 7
8 This file is part of XEmacs. 8 This file is part of XEmacs.
9 9
10 XEmacs is free software; you can redistribute it and/or modify it 10 XEmacs is free software; you can redistribute it and/or modify it
488 488
489 modifiers &= ~( 489 modifiers &= ~(
490 #define FROB(num) XEMACS_MOD_BUTTON##num | 490 #define FROB(num) XEMACS_MOD_BUTTON##num |
491 #include "keymap-buttons.h" 491 #include "keymap-buttons.h"
492 0); 492 0);
493 if ((modifiers & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_META | XEMACS_MOD_SUPER 493 assert ((modifiers & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_META |
494 | XEMACS_MOD_HYPER | XEMACS_MOD_ALT | XEMACS_MOD_SHIFT)) 494 XEMACS_MOD_SUPER | XEMACS_MOD_HYPER |
495 != 0) 495 XEMACS_MOD_ALT | XEMACS_MOD_SHIFT))
496 ABORT (); 496 == 0);
497 497
498 k = XKEYMAP (keymap); 498 k = XKEYMAP (keymap);
499 499
500 /* If the keysym is a one-character symbol, use the char code instead. */ 500 /* If the keysym is a one-character symbol, use the char code instead. */
501 if (SYMBOLP (keysym) && string_char_length (XSYMBOL (keysym)->name) == 1) 501 if (SYMBOLP (keysym) && string_char_length (XSYMBOL (keysym)->name) == 1)
565 Lisp_Object keys = Fgethash (value, inverse_table, Qunbound); 565 Lisp_Object keys = Fgethash (value, inverse_table, Qunbound);
566 Lisp_Object new_keys = keys; 566 Lisp_Object new_keys = keys;
567 Lisp_Object tail; 567 Lisp_Object tail;
568 Lisp_Object *prev; 568 Lisp_Object *prev;
569 569
570 if (UNBOUNDP (keys)) 570 assert (!UNBOUNDP (keys));
571 ABORT ();
572 571
573 for (prev = &new_keys, tail = new_keys; 572 for (prev = &new_keys, tail = new_keys;
574 ; 573 ;
575 prev = &(XCDR (tail)), tail = XCDR (tail)) 574 prev = &(XCDR (tail)), tail = XCDR (tail))
576 { 575 {
3130 int len; 3129 int len;
3131 Lisp_Key_Data key; 3130 Lisp_Key_Data key;
3132 key.keysym = keysym; 3131 key.keysym = keysym;
3133 key.modifiers = modifiers; 3132 key.modifiers = modifiers;
3134 3133
3135 if (NILP (cmd)) 3134 assert (!NILP (cmd));
3136 ABORT ();
3137 cmd = get_keymap (cmd, 0, 1); 3135 cmd = get_keymap (cmd, 0, 1);
3138 if (!KEYMAPP (cmd)) 3136 assert (KEYMAPP (cmd));
3139 ABORT ();
3140 3137
3141 vec = make_vector (XVECTOR_LENGTH (thisseq) + 1, Qnil); 3138 vec = make_vector (XVECTOR_LENGTH (thisseq) + 1, Qnil);
3142 len = XVECTOR_LENGTH (thisseq); 3139 len = XVECTOR_LENGTH (thisseq);
3143 for (j = 0; j < len; j++) 3140 for (j = 0; j < len; j++)
3144 XVECTOR_DATA (vec) [j] = XVECTOR_DATA (thisseq) [j]; 3141 XVECTOR_DATA (vec) [j] = XVECTOR_DATA (thisseq) [j];
3663 } 3660 }
3664 3661
3665 /* OK, the key is for real */ 3662 /* OK, the key is for real */
3666 if (target_buffer) 3663 if (target_buffer)
3667 { 3664 {
3668 if (!firstonly) ABORT (); 3665 assert (firstonly);
3669 format_raw_keys (so_far, keys_count + 1, target_buffer); 3666 format_raw_keys (so_far, keys_count + 1, target_buffer);
3670 return make_int (1); 3667 return make_int (1);
3671 } 3668 }
3672 else if (firstonly) 3669 else if (firstonly)
3673 return raw_keys_to_keys (so_far, keys_count + 1); 3670 return raw_keys_to_keys (so_far, keys_count + 1);