+
+ return count;
+}
+
+int
+dict_print_if (dict_t *dict,
+ dict_entry_predicate_t predicate)
+{
+ int count;
+ string_t string;
+
+ string_init (&string);
+
+ dict_entry_predicate = predicate;
+ count = trie_print (dict, &string, dict_predicate,
+ 0, 0, -1);
+
+ string_fini (&string);
+
+ return count;
+}
+
+int
+dict_print_by_length_if (dict_t *dict,
+ dict_entry_predicate_t predicate)
+{
+ int length, total, words, count = 0;
+ string_t string;
+
+ string_init (&string);
+
+ dict_entry_predicate = predicate;
+
+ total = trie_count (dict, dict_predicate);
+
+ length = 1;
+ do {
+ words = trie_print (dict, &string, dict_predicate,
+ 0, length, length);
+ if (words) {
+ printf ("\n");
+ count += words;
+ }
+ length++;
+ } while (count < total);
+
+ string_fini (&string);
+
+ return count;