aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libibex/ChangeLog5
-rw-r--r--libibex/find.c22
-rw-r--r--libibex/ibex.h4
3 files changed, 30 insertions, 1 deletions
diff --git a/libibex/ChangeLog b/libibex/ChangeLog
index 4aa2d91b0e..d5b183c451 100644
--- a/libibex/ChangeLog
+++ b/libibex/ChangeLog
@@ -1,3 +1,8 @@
+2000-02-16 NotZed <NotZed@HelixCode.com>
+
+ * find.[ch] (ibex_find_name): Finds if a word is indexed under a
+ given name.
+
2000-02-14 NotZed <notzed@zedzone.helixcode.com>
* Makefile: Hack together a build using libtool. This should all
diff --git a/libibex/find.c b/libibex/find.c
index 0937331a83..5b45c57787 100644
--- a/libibex/find.c
+++ b/libibex/find.c
@@ -25,7 +25,27 @@ ibex_find(ibex *ib, char *word)
g_ptr_array_add(ret, ibf->name);
}
}
- return ret;
+ return ret;
+}
+
+gboolean
+ibex_find_name(ibex *ib, char *name, char *word)
+{
+ GPtrArray *refs;
+ ibex_file *ibf;
+ int i;
+
+ refs = g_hash_table_lookup(ib->words, word);
+ if (refs)
+ {
+ for (i = 0; i < refs->len; i++)
+ {
+ ibf = g_ptr_array_index(refs, i);
+ if (!strcmp(ibf->name, name))
+ return TRUE;
+ }
+ }
+ return FALSE;
}
static gint
diff --git a/libibex/ibex.h b/libibex/ibex.h
index e430fc700d..8afac0dc95 100644
--- a/libibex/ibex.h
+++ b/libibex/ibex.h
@@ -65,6 +65,10 @@ void ibex_rename(ibex *ib, char *oldfilename, char *newfilename);
*/
GPtrArray *ibex_find(ibex *ib, char *word);
+/* Find if a word is contained in a specific name reference.
+ */
+gboolean ibex_find_name(ibex *ib, char *name, char *word);
+
/* Return all the files containing all of the words in the given
* array. Returned data is like with ibex_find.
*/