From: Stefan Monnier Date: Fri, 11 Sep 2009 05:10:15 +0000 (+0000) Subject: (where_is_internal): Don't erroneously return nil right after X-Git-Tag: emacs-pretest-23.1.90~1397 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9d8893324678838706c4b27eb18aa285101dd414;p=emacs.git (where_is_internal): Don't erroneously return nil right after filling the cache. (where_is_internal_1): Fix up typo. --- diff --git a/src/ChangeLog b/src/ChangeLog index cf9725332e8..de2c7c30f44 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2009-09-11 Stefan Monnier + + * keymap.c (where_is_internal): Don't erroneously return nil right after + filling the cache. + (where_is_internal_1): Fix up typo. + 2009-09-11 Glenn Morris * frame.c (Fx_parse_geometry): Unify the X and NS versions so that they diff --git a/src/keymap.c b/src/keymap.c index 561b3453967..bcbeda72c8c 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -2765,12 +2765,16 @@ where_is_internal (Lisp_Object definition, Lisp_Object keymaps, } if (nomenus && !noindirect) - /* Remember for which keymaps this cache was built. - We do it here (late) because we want to keep where_is_cache_keymaps - set to t while the cache isn't fully filled. */ - where_is_cache_keymaps = keymaps; - - return data.sequences; + { /* Remember for which keymaps this cache was built. + We do it here (late) because we want to keep where_is_cache_keymaps + set to t while the cache isn't fully filled. */ + where_is_cache_keymaps = keymaps; + /* During cache-filling, data.sequences is not filled by + where_is_internal_1. */ + return Fgethash (definition, where_is_cache, Qnil); + } + else + return data.sequences; } static Lisp_Object Vwhere_is_preferred_modifier; @@ -2973,7 +2977,7 @@ where_is_internal_1 (key, binding, args, data) Lisp_Object sequence; /* Search through indirections unless that's not wanted. */ - if (noindirect) + if (!noindirect) binding = get_keyelt (binding, 0); /* End this iteration if this element does not match