diff options
-rw-r--r-- | libmu_scm/mu_mailbox.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libmu_scm/mu_mailbox.c b/libmu_scm/mu_mailbox.c index dce05e8db..90ee4da59 100644 --- a/libmu_scm/mu_mailbox.c +++ b/libmu_scm/mu_mailbox.c @@ -523,6 +523,26 @@ SCM_DEFINE_PUBLIC (scm_mu_mailbox_more_messages_p, "mu-mailbox-more-messages?", } #undef FUNC_NAME +SCM_DEFINE_PUBLIC (scm_mu_mailbox_get_size, "mu-mailbox-get-size", 1, 0, 0, + (SCM mbox), + "Return size of the mailbox @var{mbox}.") +#define FUNC_NAME s_scm_mu_mailbox_get_size +{ + struct mu_mailbox *mum; + int status; + mu_off_t size; + + SCM_ASSERT (mu_scm_is_mailbox (mbox), mbox, SCM_ARG1, FUNC_NAME); + mum = (struct mu_mailbox *) SCM_CDR (mbox); + status = mu_mailbox_get_size (mum->mbox, &size); + if (status) + mu_scm_error (FUNC_NAME, status, + "~A: cannot determine mailbox size: ~A", + scm_list_2 (mbox, + scm_from_locale_string (mu_strerror (status)))); + return scm_from_uintmax (size); +} + /* Initialize the module */ void mu_scm_mailbox_init () |