Mercurial > emacs
changeset 82403:9f1e0c774487
(Fall_completions): Use enum for type of table.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 16 Aug 2007 02:20:58 +0000 |
parents | a550f33e0e04 |
children | b3fc112aac24 |
files | src/minibuf.c |
diffstat | 1 files changed, 23 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/minibuf.c Thu Aug 16 02:19:41 2007 +0000 +++ b/src/minibuf.c Thu Aug 16 02:20:58 2007 +0000 @@ -1288,11 +1288,14 @@ int bestmatchsize = 0; /* These are in bytes, too. */ int compare, matchsize; - int type = (HASH_TABLE_P (collection) ? 3 - : VECTORP (collection) ? 2 - : NILP (collection) || (CONSP (collection) - && (!SYMBOLP (XCAR (collection)) - || NILP (XCAR (collection))))); + enum { function_table, list_table, obarray_table, hash_table} + type = (HASH_TABLE_P (collection) ? hash_table + : VECTORP (collection) ? obarray_table + : ((NILP (collection) + || (CONSP (collection) + && (!SYMBOLP (XCAR (collection)) + || NILP (XCAR (collection))))) + ? list_table : function_table)); int index = 0, obsize = 0; int matchcount = 0; int bindcount = -1; @@ -1300,7 +1303,7 @@ struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; CHECK_STRING (string); - if (type == 0) + if (type == function_table) return call3 (collection, string, predicate, Qnil); bestmatch = bucket = Qnil; @@ -1308,7 +1311,7 @@ /* If COLLECTION is not a list, set TAIL just for gc pro. */ tail = collection; - if (type == 2) + if (type == obarray_table) { collection = check_obarray (collection); obsize = XVECTOR (collection)->size; @@ -1322,7 +1325,7 @@ /* elt gets the alist element or symbol. eltstring gets the name to check as a completion. */ - if (type == 1) + if (type == list_table) { if (!CONSP (tail)) break; @@ -1330,7 +1333,7 @@ eltstring = CONSP (elt) ? XCAR (elt) : elt; tail = XCDR (tail); } - else if (type == 2) + else if (type == obarray_table) { if (!EQ (bucket, zero)) { @@ -1351,7 +1354,7 @@ continue; } } - else /* if (type == 3) */ + else /* if (type == hash_table) */ { while (index < HASH_TABLE_SIZE (XHASH_TABLE (collection)) && NILP (HASH_HASH (XHASH_TABLE (collection), index))) @@ -1405,15 +1408,17 @@ tem = Fcommandp (elt, Qnil); else { - if (bindcount >= 0) { - unbind_to (bindcount, Qnil); - bindcount = -1; - } + if (bindcount >= 0) + { + unbind_to (bindcount, Qnil); + bindcount = -1; + } GCPRO4 (tail, string, eltstring, bestmatch); - tem = type == 3 - ? call2 (predicate, elt, - HASH_VALUE (XHASH_TABLE (collection), index - 1)) - : call1 (predicate, elt); + tem = (type == hash_table + ? call2 (predicate, elt, + HASH_VALUE (XHASH_TABLE (collection), + index - 1)) + : call1 (predicate, elt)); UNGCPRO; } if (NILP (tem)) continue;