• Paul Eggert's avatar
    Fix keyboard.c infloops on circular lists · 581601e6
    Paul Eggert authored
    Fix infinite loops in keyboard.c when a circular list is
    found in a hook, or in help-event-list, or in the argument
    of event-convert-list, or in a keymap where a Lucid event
    type list is expected, or in a menu or tab spec.
    * src/keyboard.c (safe_run_hooks_error, menu_bar_items)
    (parse_menu_item, parse_tab_bar_item, parse_tool_bar_item):
    Use FOR_EACH_TAIL to avoid infloop on circular lists.
    (help_char_p, Fevent_convert_list, lucid_event_type_list_p):
    Use FOR_EACH_TAIL_SAFE to avoid infloop on circular lists,
    when the action is idempotent so a circular list can be
    treated as a noncircular one.
    581601e6
keyboard.c 383 KB