X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fpackf.c;h=23ee33543ad7b860b223392343590aa7d1fdbfec;hp=a7b35ba145a85c949188f9afe6b0a0a0ad7ca439;hb=39d862d5f0ba0258707ef5a74cff63243f58e425;hpb=5b792c4424571f05bc2008e3109797d18d7d00d1 diff --git a/uip/packf.c b/uip/packf.c index a7b35ba..23ee335 100644 --- a/uip/packf.c +++ b/uip/packf.c @@ -13,27 +13,13 @@ #include static struct swit switches[] = { -#define FILESW 0 - { "file name", 0 }, -#define MBOXSW 1 - { "mbox", 0 }, -#define MMDFSW 2 - { "mmdf", 0 }, -#define VERSIONSW 3 +#define VERSIONSW 0 { "version", 0 }, -#define HELPSW 4 +#define HELPSW 1 { "help", 0 }, { NULL, 0 } }; -static int md = NOTOK; -static int mbx_style = MBOX_FORMAT; -static int mapping = 0; - -static void mbxclose_done(int) NORETURN; - -char *file = NULL; - int main(int argc, char **argv) @@ -43,9 +29,6 @@ main(int argc, char **argv) char **argp, **arguments; struct msgs_array msgs = { 0, 0, NULL }; struct msgs *mp; - struct stat st; - - done=mbxclose_done; #ifdef LOCALE setlocale(LC_ALL, ""); @@ -77,23 +60,6 @@ main(int argc, char **argv) case VERSIONSW: print_version(invo_name); done(1); - - case FILESW: - if (file) - adios(NULL, "only one file at a time!"); - if (!(file = *argp++) || *file == '-') - adios(NULL, "missing argument to %s", - argp[-2]); - continue; - - case MBOXSW: - mbx_style = MBOX_FORMAT; - mapping = 0; - continue; - case MMDFSW: - mbx_style = MMDF_FORMAT; - mapping = 1; - continue; } } if (*cp == '+' || *cp == '@') { @@ -104,26 +70,9 @@ main(int argc, char **argv) app_msgarg(&msgs, cp); } - if (!file) - file = "./msgbox"; - file = getcpy(expanddir(file)); - - /* - ** Check if file to be created (or appended to) - ** exists. If not, ask for confirmation. - */ - if (stat (file, &st) == NOTOK) { - if (errno != ENOENT) - adios(file, "error on file"); - cp = concat("Create file \"", file, "\"? ", NULL); - if (!getanswer(cp)) - done(1); - free(cp); - } - /* default is to pack whole folder */ if (!msgs.size) - app_msgarg(&msgs, "all"); + app_msgarg(&msgs, seq_all); if (!folder) folder = getcurfol(); @@ -146,43 +95,26 @@ main(int argc, char **argv) done(1); seq_setprev(mp); /* set the previous-sequence */ - /* open and lock new maildrop file */ - if ((md = mbx_open(file, mbx_style, getuid(), getgid(), m_gmprot())) - == NOTOK) - adios(file, "unable to open"); - - /* copy all the SELECTED messages to the file */ - for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) + /* copy all the SELECTED messages to stdout */ + for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) { if (is_selected(mp, msgnum)) { if ((fd = open(msgnam = m_name(msgnum), O_RDONLY)) == NOTOK) { admonish(msgnam, "unable to read message"); break; } - - if (mbx_copy(file, mbx_style, md, fd, mapping, NULL, 1) - == NOTOK) - adios(file, "error writing to file"); - + if (mbox_copy(fileno(stdout), fd) == NOTOK) { + adios(NULL, "error writing to stdout"); + } close(fd); } - - /* close and unlock maildrop file */ - mbx_close(file, md); - - context_replace(curfolder, folder); /* update current folder */ + } + context_replace(curfolder, folder); if (mp->hghsel != mp->curmsg) seq_setcur(mp, mp->lowsel); seq_save(mp); - context_save(); /* save the context file */ - folder_free(mp); /* free folder/message structure */ + context_save(); + folder_free(mp); done(0); return 1; } - -static void -mbxclose_done(int status) -{ - mbx_close(file, md); - exit(status); -}