* type-checking asserts
This commit is contained in:
@ -34,7 +34,7 @@ get_query (void)
|
|||||||
err = NULL;
|
err = NULL;
|
||||||
query = mu_query_new (mu_runtime_path(MU_RUNTIME_PATH_XAPIANDB), &err);
|
query = mu_query_new (mu_runtime_path(MU_RUNTIME_PATH_XAPIANDB), &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
g_warning ("error creating query: %s", err->message);
|
mu_guile_g_error ("<internal>", err);
|
||||||
g_error_free (err);
|
g_error_free (err);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -53,7 +53,7 @@ get_query_iter (MuQuery *query, const char* expr)
|
|||||||
iter = mu_query_run (query, expr,
|
iter = mu_query_run (query, expr,
|
||||||
FALSE, MU_MSG_FIELD_ID_NONE, TRUE, &err);
|
FALSE, MU_MSG_FIELD_ID_NONE, TRUE, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
g_warning ("error running query: %s", err->message);
|
mu_guile_g_error ("<internal>", err);
|
||||||
g_error_free (err);
|
g_error_free (err);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -73,6 +73,10 @@ SCM_DEFINE (store_foreach, "mu:store:foreach", 1, 1, 0,
|
|||||||
int count;
|
int count;
|
||||||
const char* expr;
|
const char* expr;
|
||||||
|
|
||||||
|
SCM_ASSERT (scm_procedure_p (FUNC), FUNC, SCM_ARG1, FUNC_NAME);
|
||||||
|
SCM_ASSERT (scm_is_string (EXPR) || EXPR == SCM_UNSPECIFIED,
|
||||||
|
EXPR, SCM_ARG2, FUNC_NAME);
|
||||||
|
|
||||||
query = get_query ();
|
query = get_query ();
|
||||||
if (!query)
|
if (!query)
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
@ -87,11 +91,19 @@ SCM_DEFINE (store_foreach, "mu:store:foreach", 1, 1, 0,
|
|||||||
|
|
||||||
SCM msgsmob;
|
SCM msgsmob;
|
||||||
MuMsg *msg;
|
MuMsg *msg;
|
||||||
|
GError *err;
|
||||||
|
|
||||||
|
err = NULL;
|
||||||
|
msg = mu_msg_iter_get_msg (iter, &err);
|
||||||
|
if (err) {
|
||||||
|
mu_guile_g_error (FUNC_NAME, err);
|
||||||
|
g_error_free (err);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
msg = mu_msg_iter_get_msg (iter, NULL);
|
|
||||||
msgsmob = mu_guile_msg_to_scm (mu_msg_ref(msg));
|
msgsmob = mu_guile_msg_to_scm (mu_msg_ref(msg));
|
||||||
|
|
||||||
scm_call_1 (FUNC, msgsmob);
|
scm_call_1 (FUNC, msgsmob);
|
||||||
|
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user