static void
rejilla_search_beagle_hit_substracted_cb (BeagleQuery *query,
					  BeagleHitsSubtractedResponse *response,
					  RejillaSearchBeagle *search)
{
	GSList *list, *iter;
	RejillaSearchBeaglePrivate *priv;

	priv = REJILLA_SEARCH_BEAGLE_PRIVATE (search);

	list = beagle_hits_subtracted_response_get_uris (response);
	for (iter = list; iter; iter = iter->next) {
		GSList *next, *hit_iter;
		const gchar *removed_uri;

		removed_uri = iter->data;

		/* see if it isn't in the hits that are still waiting */
		for (hit_iter = priv->hits; hit_iter; hit_iter = next) {
			BeagleHit *hit;
			const char *hit_uri;
	
			next = hit_iter->next;
			hit = hit_iter->data;

			hit_uri = beagle_hit_get_uri (hit);
			if (!strcmp (hit_uri, removed_uri)) {
				priv->hits = g_slist_remove (priv->hits, hit);
				rejilla_search_engine_hit_removed (REJILLA_SEARCH_ENGINE (search), hit);
				beagle_hit_unref (hit);
			}
		}
	}
}
static void
beagle_hits_subtracted (BeagleQuery *query, 
			BeagleHitsSubtractedResponse *response, 
			NautilusSearchEngineBeagle *engine)
{
	GSList *uris, *list;
	GList *hit_uris;

	hit_uris = NULL;

	uris = beagle_hits_subtracted_response_get_uris (response);
	
	for (list = uris; list != NULL; list = list->next) {
		hit_uris = g_list_prepend (hit_uris, (char *)list->data);
	}

	nautilus_search_engine_hits_subtracted (NAUTILUS_SEARCH_ENGINE (engine), hit_uris);
	g_list_free (hit_uris);
}