index: re-order functions so prototypes are not needed
diff --git a/libkmod/libkmod-index.c b/libkmod/libkmod-index.c
index b4d8f43..fca6966 100644
--- a/libkmod/libkmod-index.c
+++ b/libkmod/libkmod-index.c
@@ -598,27 +598,6 @@
 	buf_destroy(buf);
 }
 
-/*
- * Search the index for a key
- *
- * Returns the value of the first match
- *
- * The recursive functions free their node argument (using index_close).
- */
-
-static char *index_search__node(struct index_node_f *node, const char *key, int i);
-
-char *index_search(struct index_file *in, const char *key)
-{
-	struct index_node_f *root;
-	char *value;
-
-	root = index_readroot(in);
-	value = index_search__node(root, key, 0);
-
-	return value;
-}
-
 static char *index_search__node(struct index_node_f *node, const char *key, int i)
 {
 	char *value;
@@ -657,43 +636,79 @@
 }
 
 /*
- * Search the index for a key.  The index may contain wildcards.
+ * Search the index for a key
  *
- * Returns a list of all the values of matching keys.
+ * Returns the value of the first match
+ *
+ * The recursive functions free their node argument (using index_close).
  */
+char *index_search(struct index_file *in, const char *key)
+{
+	struct index_node_f *root;
+	char *value;
+
+	root = index_readroot(in);
+	value = index_search__node(root, key, 0);
+
+	return value;
+}
 
 
-/* Level 2: descend the tree (until we hit a wildcard) */
-static void index_searchwild__node(struct index_node_f *node,
-				   struct buffer *buf,
-				   const char *key, int i,
-				   struct index_value **out);
-
-/* Level 3: traverse a sub-keyspace which starts with a wildcard,
-            looking for matches.
-*/
-static void index_searchwild__all(struct index_node_f *node, int j,
-				  struct buffer *buf,
-				  const char *subkey,
-				  struct index_value **out);
 
 /* Level 4: add all the values from a matching node */
 static void index_searchwild__allvalues(struct index_node_f *node,
-					struct index_value **out);
-
-
-/* Level 1: interface function */
-struct index_value *index_searchwild(struct index_file *in, const char *key)
+					struct index_value **out)
 {
-	struct index_node_f *root = index_readroot(in);
-	struct buffer *buf = buf_create();
-	struct index_value *out = NULL;
+	struct index_value *v;
 
-	index_searchwild__node(root, buf, key, 0, &out);
-	buf_destroy(buf);
-	return out;
+	for (v = node->values; v != NULL; v = v->next)
+		add_value(out, v->value, v->priority);
+
+	index_close(node);
 }
 
+/*
+ * Level 3: traverse a sub-keyspace which starts with a wildcard,
+ * looking for matches.
+ */
+static void index_searchwild__all(struct index_node_f *node, int j,
+				  struct buffer *buf,
+				  const char *subkey,
+				  struct index_value **out)
+{
+	int pushed = 0;
+	int ch;
+
+	while (node->prefix[j]) {
+		ch = node->prefix[j];
+
+		buf_pushchar(buf, ch);
+		pushed++;
+		j++;
+	}
+
+	for (ch = node->first; ch <= node->last; ch++) {
+		struct index_node_f *child = index_readchild(node, ch);
+
+		if (!child)
+			continue;
+
+		buf_pushchar(buf, ch);
+		index_searchwild__all(child, 0, buf, subkey, out);
+		buf_popchar(buf);
+	}
+
+	if (node->values) {
+		if (fnmatch(buf_str(buf), subkey, 0) == 0)
+			index_searchwild__allvalues(node, out);
+	} else {
+		index_close(node);
+	}
+
+	buf_popchars(buf, pushed);
+}
+
+/* Level 2: descend the tree (until we hit a wildcard) */
 static void index_searchwild__node(struct index_node_f *node,
 				   struct buffer *buf,
 				   const char *key, int i,
@@ -754,50 +769,18 @@
 	}
 }
 
-static void index_searchwild__all(struct index_node_f *node, int j,
-				  struct buffer *buf,
-				  const char *subkey,
-				  struct index_value **out)
+/*
+ * Search the index for a key.  The index may contain wildcards.
+ *
+ * Returns a list of all the values of matching keys.
+ */
+struct index_value *index_searchwild(struct index_file *in, const char *key)
 {
-	int pushed = 0;
-	int ch;
+	struct index_node_f *root = index_readroot(in);
+	struct buffer *buf = buf_create();
+	struct index_value *out = NULL;
 
-	while (node->prefix[j]) {
-		ch = node->prefix[j];
-
-		buf_pushchar(buf, ch);
-		pushed++;
-		j++;
-	}
-
-	for (ch = node->first; ch <= node->last; ch++) {
-		struct index_node_f *child = index_readchild(node, ch);
-
-		if (!child)
-			continue;
-
-		buf_pushchar(buf, ch);
-		index_searchwild__all(child, 0, buf, subkey, out);
-		buf_popchar(buf);
-	}
-
-	if (node->values) {
-		if (fnmatch(buf_str(buf), subkey, 0) == 0)
-			index_searchwild__allvalues(node, out);
-	} else {
-		index_close(node);
-	}
-
-	buf_popchars(buf, pushed);
-}
-
-static void index_searchwild__allvalues(struct index_node_f *node,
-					struct index_value **out)
-{
-	struct index_value *v;
-
-	for (v = node->values; v != NULL; v = v->next)
-		add_value(out, v->value, v->priority);
-
-	index_close(node);
+	index_searchwild__node(root, buf, key, 0, &out);
+	buf_destroy(buf);
+	return out;
 }