Mercurial > hg > xemacs-beta
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); |