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;