emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r112258: * src/minibuf.c (Ftest_compl


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r112258: * src/minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
Date: Tue, 09 Apr 2013 16:10:47 -0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 112258
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14054
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Tue 2013-04-09 16:10:47 -0400
message:
  * src/minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
  tables.
modified:
  src/ChangeLog
  src/minibuf.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-04-08 18:04:58 +0000
+++ b/src/ChangeLog     2013-04-09 20:10:47 +0000
@@ -1,3 +1,8 @@
+2013-04-09  Stefan Monnier  <address@hidden>
+
+       * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
+       tables (bug#14054).
+
 2013-04-08  Stefan Monnier  <address@hidden>
 
        * window.c (select_window): Don't record_buffer while the invariant is

=== modified file 'src/minibuf.c'
--- a/src/minibuf.c     2013-04-02 01:54:56 +0000
+++ b/src/minibuf.c     2013-04-09 20:10:47 +0000
@@ -1800,17 +1800,21 @@
     {
       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))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]