From 84189b73b2818e61f4b7755cc0d7d1cc5e35175a Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Wed, 13 Jul 2011 08:07:32 +0300 Subject: [PATCH] * mu-guile-utils => mu-guile-common --- libmuguile/Makefile.am | 4 +-- .../{mu-guile-utils.c => mu-guile-common.c} | 4 +-- .../{mu-guile-utils.h => mu-guile-common.h} | 4 +-- libmuguile/mu-guile-store.c | 28 ++++++++++--------- 4 files changed, 21 insertions(+), 19 deletions(-) rename libmuguile/{mu-guile-utils.c => mu-guile-common.c} (92%) rename libmuguile/{mu-guile-utils.h => mu-guile-common.h} (91%) diff --git a/libmuguile/Makefile.am b/libmuguile/Makefile.am index befa9cdd..80612881 100644 --- a/libmuguile/Makefile.am +++ b/libmuguile/Makefile.am @@ -35,8 +35,8 @@ libmuguile_la_SOURCES= \ mu-guile-msg.h \ mu-guile-store.c \ mu-guile-store.h \ - mu-guile-utils.c \ - mu-guile-utils.h + mu-guile-common.c \ + mu-guile-common.h libmuguile_la_LIBADD= \ ${top_builddir}/src/libmu.la \ diff --git a/libmuguile/mu-guile-utils.c b/libmuguile/mu-guile-common.c similarity index 92% rename from libmuguile/mu-guile-utils.c rename to libmuguile/mu-guile-common.c index 8021914a..32e35c78 100644 --- a/libmuguile/mu-guile-utils.c +++ b/libmuguile/mu-guile-common.c @@ -17,10 +17,10 @@ ** */ -#include "mu-guile-utils.h" +#include "mu-guile-common.h" void -mu_guile_utils_error (const char *func_name, int status, +mu_guile_error (const char *func_name, int status, const char *fmt, SCM args) { scm_error_scm (scm_from_locale_symbol ("MuError"), diff --git a/libmuguile/mu-guile-utils.h b/libmuguile/mu-guile-common.h similarity index 91% rename from libmuguile/mu-guile-utils.h rename to libmuguile/mu-guile-common.h index 461245bd..699d0af2 100644 --- a/libmuguile/mu-guile-utils.h +++ b/libmuguile/mu-guile-common.h @@ -35,8 +35,8 @@ extern "C" { * @param fmt * @param args */ -void mu_guile_utils_error (const char *func_name, int status, - const char *fmt, SCM args); +void mu_guile_error (const char *func_name, int status, + const char *fmt, SCM args); #ifdef __cplusplus } diff --git a/libmuguile/mu-guile-store.c b/libmuguile/mu-guile-store.c index 01a1df4b..93cc5d35 100644 --- a/libmuguile/mu-guile-store.c +++ b/libmuguile/mu-guile-store.c @@ -23,7 +23,7 @@ #include "mu-guile-msg.h" #include "mu-guile-store.h" -#include "mu-guile-utils.h" +#include "mu-guile-common.h" static MuQuery* get_query (void) @@ -62,37 +62,39 @@ get_query_iter (MuQuery *query, const char* expr) } -SCM_DEFINE (store_for_each, "mu:store:foreach", 2, 0, 0, - (SCM EXPR, SCM FUNC), - "Call FUNC for each message matching EXPR.\n") +SCM_DEFINE (store_for_each, "mu:store:query-foreach", 1, 1, 0, + (SCM FUNC, SCM EXPR), + "Call FUNC for each message in the store, or, if EXPR is specified, " + "for each message matching EXPR.\n") #define FUNC_NAME s_msg_make_from_file { MuQuery *query; MuMsgIter *iter; - //guint count; + int count; + const char* expr; query = get_query (); if (!query) return SCM_UNSPECIFIED; - - iter = get_query_iter (query, scm_to_utf8_string(EXPR)); + + expr = SCM_UNBNDP(EXPR) ? NULL : scm_to_utf8_string(EXPR); + + iter = get_query_iter (query, expr); if (!iter) return SCM_UNSPECIFIED; - - while (!mu_msg_iter_is_done(iter)) { + + for (count = 0; !mu_msg_iter_is_done(iter); mu_msg_iter_next (iter)) { SCM msgsmob; - msgsmob = mu_guile_msg_to_scm (mu_msg_iter_get_msg (iter, NULL)); scm_call_1 (FUNC, msgsmob); - - mu_msg_iter_next (iter); + ++count; } mu_query_destroy (query); - return SCM_UNSPECIFIED; + return scm_from_int (count); } #undef FUNC_NAME