* src/minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
tables. Fixes: debbugs:14054
This commit is contained in:
parent
79e04e9e20
commit
a8036e4076
2 changed files with 11 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
|
||||
tables (bug#14054).
|
||||
|
||||
2013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* window.c (select_window): Don't record_buffer while the invariant is
|
||||
|
|
|
@ -1800,17 +1800,21 @@ the values STRING, PREDICATE and `lambda'. */)
|
|||
{
|
||||
struct Lisp_Hash_Table *h = XHASH_TABLE (collection);
|
||||
i = hash_lookup (h, string, NULL);
|
||||
Lisp_Object key = Qnil;
|
||||
if (i >= 0)
|
||||
tem = HASH_KEY (h, i);
|
||||
else
|
||||
for (i = 0; i < HASH_TABLE_SIZE (h); ++i)
|
||||
if (!NILP (HASH_HASH (h, i))
|
||||
&& (key = HASH_KEY (h, i),
|
||||
SYMBOLP (key) ? key = Fsymbol_name (key) : key,
|
||||
STRINGP (key))
|
||||
&& EQ (Fcompare_strings (string, make_number (0), Qnil,
|
||||
HASH_KEY (h, i), make_number (0) , Qnil,
|
||||
key, make_number (0) , Qnil,
|
||||
completion_ignore_case ? Qt : Qnil),
|
||||
Qt))
|
||||
{
|
||||
tem = HASH_KEY (h, i);
|
||||
tem = key;
|
||||
break;
|
||||
}
|
||||
if (!STRINGP (tem))
|
||||
|
|
Loading…
Add table
Reference in a new issue