# HG changeset patch # User Richard M. Stallman # Date 787145773 0 # Node ID ab78d1d2f5d77c12204d36d29e8cc9bb4d5a871e # Parent 24032289479c9e46e5bc5e712116e37b282fd759 (read_char): After auto-saving, redisplay. (read_key_sequence): Downcase undefined shifted fn keys. diff -r 24032289479c -r ab78d1d2f5d7 src/keyboard.c --- a/src/keyboard.c Sun Dec 11 11:30:43 1994 +0000 +++ b/src/keyboard.c Sun Dec 11 11:36:13 1994 +0000 @@ -1662,6 +1662,8 @@ jmp_buf temp; save_getcjmp (temp); Fdo_auto_save (Qnil, Qnil); + /* Hooks can actually change some buffers in auto save. */ + redisplay (); restore_getcjmp (temp); } @@ -1713,12 +1715,10 @@ consing going on to make it worthwhile. */ if (!detect_input_pending () && consing_since_gc > gc_cons_threshold / 2) - { - Fgarbage_collect (); - /* prepare_menu_bars isn't safe here, but it should - also be unnecessary. */ - redisplay (); - } + Fgarbage_collect (); + /* prepare_menu_bars isn't safe here, but it should + also be unnecessary. */ + redisplay (); } } } @@ -5263,6 +5263,30 @@ mock_input = t; goto replay_sequence; } + /* If KEY is not defined in any of the keymaps, + and cannot be part of a function key or translation, + and is a shifted function key, + use the corresponding unshifted function key instead. */ + if (first_binding == nmaps && ! function_key_possible + && ! key_translation_possible + && SYMBOLP (key)) + { + Lisp_Object breakdown; + int modifiers; + + breakdown = parse_modifiers (key); + modifiers = XINT (XCONS (XCONS (breakdown)->cdr)->car); + if (modifiers & shift_modifier) + { + modifiers &= ~shift_modifier; + key = apply_modifiers (make_number (modifiers), + XCONS (breakdown)->car); + + keybuf[t - 1] = key; + mock_input = t; + goto replay_sequence; + } + } } if (!dummyFlag)