int main (int argc, char **argv) { int index; mu_url_t url; MU_APP_INIT_NLS (); mh_argp_init (program_version); mh_argp_parse (&argc, &argv, 0, options, mh_option, args_doc, doc, opt_handler, NULL, &index); if (!oplist) addop ("date", comp_date); if (action == ACTION_LIST && mh_format_parse (format_str, &format)) { mu_error (_("Bad format string")); exit (1); } mbox = mh_open_folder (mh_current_folder (), 0); mu_mailbox_get_url (mbox, &url); mbox_path = mu_url_to_string (url); if (memcmp (mbox_path, "mh:", 3) == 0) mbox_path += 3; argc -= index; argv += index; mh_msgset_parse (mbox, &msgset, argc, argv, "all"); sort (mbox, msgset); return 0; }
int main (int argc, char **argv) { int index; mu_msgset_t msgset; mu_mailbox_t mbox; mu_url_t url; struct mark_closure clos; MU_APP_INIT_NLS (); mh_argp_init (); mh_argp_parse (&argc, &argv, 0, options, mh_option, args_doc, doc, opt_handler, NULL, &index); mbox = mh_open_folder (mh_current_folder (), MU_STREAM_RDWR); mu_mailbox_get_url (mbox, &url); mbox_dir = mu_url_to_string (url); if (memcmp (mbox_dir, "mh:", 3) == 0) mbox_dir += 3; argc -= index; argv += index; mh_msgset_parse (&msgset, mbox, argc, argv, "cur"); clos.mbox = mbox; clos.msgset = msgset; //FIXME: msgset operates on UIDs but there's no way to inform it about that. switch (action) { case ARG_ADD: if (!seq_list) { mu_error (_("--add requires at least one --sequence argument")); return 1; } mu_list_foreach (seq_list, action_add, (void *) &clos); mh_global_save_state (); break; case ARG_DELETE: if (!seq_list) { mu_error (_("--delete requires at least one --sequence argument")); return 1; } mu_list_foreach (seq_list, action_delete, (void *) &clos); mh_global_save_state (); break; case ARG_LIST: if (!seq_list) list_all (mbox); else mu_list_foreach (seq_list, action_list, &clos); break; } mu_mailbox_close (mbox); mu_mailbox_destroy (&mbox); return 0; }
static char * current_folder_path () { mu_mailbox_t mbox = mh_open_folder (mh_current_folder (), 0); mu_url_t url; char *p; mu_mailbox_get_url (mbox, &url); p = (char*) mu_url_to_string (url); if (strncmp (p, "mh:", 3) == 0) p += 3; return p; }
static int mu_scm_mailbox_print (SCM mailbox_smob, SCM port, scm_print_state * pstate) { struct mu_mailbox *mum = (struct mu_mailbox *) SCM_CDR (mailbox_smob); size_t count = 0; mu_url_t url = NULL; mu_mailbox_messages_count (mum->mbox, &count); mu_mailbox_get_url (mum->mbox, &url); scm_puts ("#<mailbox ", port); if (mailbox_smob == SCM_BOOL_F) { /* mu_mailbox.* functions may return #f */ scm_puts ("#f", port); } else { const char *p = mu_url_to_string (url); if (p) { char buf[64]; scm_puts (p, port); snprintf (buf, sizeof (buf), " (%d)", count); scm_puts (buf, port); } else scm_puts ("uninitialized", port); } scm_puts (">", port); return 1; }
int mail_file (int argc, char **argv) { if (argc == 1) { mail_summary (0, NULL); } else if (argc == 2) { /* switch folders */ char *pname; mu_url_t url; mu_mailbox_t newbox = NULL; char *name = mail_expand_name (argv[1]); int status; if (!name) return 1; if ((status = mu_mailbox_create_default (&newbox, name)) != 0 || (status = mu_mailbox_open (newbox, MU_STREAM_RDWR)) != 0) { mu_mailbox_destroy (&newbox); util_error(_("Cannot open mailbox %s: %s"), name, mu_strerror (status)); free (name); return 1; } free (name); /* won't need it any more */ page_invalidate (1); /* Invalidate current page map */ mu_mailbox_get_url (mbox, &url); pname = strdup (mu_url_to_string (url)); if (mail_mbox_close ()) { if (pname) free (pname); mu_mailbox_close (newbox); mu_mailbox_destroy (&newbox); return 1; } if (prev_name) free (prev_name); prev_name = pname; mbox = newbox; mu_mailbox_messages_count (mbox, &total); set_cursor (1); if (mailvar_get (NULL, "header", mailvar_type_boolean, 0) == 0) { util_do_command ("summary"); util_do_command ("headers"); } return 0; } else { util_error(_("%s takes only one argument"), argv[0]); } return 1; }