X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fpackf.c;h=62c09da3ace00f25d62afe9e842e95c3282a1b80;hp=5e171475bd11cb87193e906d54303d48fafa7d64;hb=84c6039eb7226c0ba0a8f708205e33d10950d2ae;hpb=3d78b9c80a95f4e7885ed607018f9b1b9be559b4 diff --git a/uip/packf.c b/uip/packf.c index 5e17147..62c09da 100644 --- a/uip/packf.c +++ b/uip/packf.c @@ -15,20 +15,14 @@ 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 1 { "version", 0 }, -#define HELPSW 4 +#define HELPSW 2 { "help", 0 }, { NULL, 0 } }; static int md = NOTOK; -static int mbx_style = MBOX_FORMAT; -static int mapping = 0; static void mbxclose_done(int) NORETURN; @@ -64,48 +58,40 @@ main(int argc, char **argv) while ((cp = *argp++)) { if (*cp == '-') { switch (smatch(++cp, switches)) { - case AMBIGSW: - ambigsw(cp, switches); - done(1); - case UNKWNSW: - adios(NULL, "-%s unknown", cp); - - case HELPSW: - snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name); - print_help(buf, switches, 1); - done(1); - 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; + case AMBIGSW: + ambigsw(cp, switches); + done(1); + case UNKWNSW: + adios(NULL, "-%s unknown", cp); + + case HELPSW: + snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name); + print_help(buf, switches, 1); + done(1); + 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; } } if (*cp == '+' || *cp == '@') { if (folder) adios(NULL, "only one folder at a time!"); - folder = pluspath(cp); + folder = getcpy(expandfol(cp)); } else app_msgarg(&msgs, cp); } if (!file) file = "./msgbox"; - file = path(file, TFILE); + file = getcpy(expanddir(file)); /* ** Check if file to be created (or appended to) @@ -122,11 +108,11 @@ main(int argc, char **argv) /* default is to pack whole folder */ if (!msgs.size) - app_msgarg(&msgs, "all"); + app_msgarg(&msgs, seq_all); if (!folder) - folder = getfolder(FCUR); - maildir = m_maildir(folder); + folder = getcurfol(); + maildir = toabsdir(folder); if (chdir(maildir) == NOTOK) adios(maildir, "unable to change directory to "); @@ -146,7 +132,7 @@ main(int argc, char **argv) seq_setprev(mp); /* set the previous-sequence */ /* open and lock new maildrop file */ - if ((md = mbx_open(file, mbx_style, getuid(), getgid(), m_gmprot())) + if ((md = mbx_open(file, getuid(), getgid(), m_gmprot())) == NOTOK) adios(file, "unable to open"); @@ -159,8 +145,7 @@ main(int argc, char **argv) break; } - if (mbx_copy(file, mbx_style, md, fd, mapping, NULL, 1) - == NOTOK) + if (mbx_copy(file, md, fd, 1) == NOTOK) adios(file, "error writing to file"); close(fd); @@ -169,7 +154,7 @@ main(int argc, char **argv) /* close and unlock maildrop file */ mbx_close(file, md); - context_replace(pfolder, folder); /* update current folder */ + context_replace(curfolder, folder); /* update current folder */ if (mp->hghsel != mp->curmsg) seq_setcur(mp, mp->lowsel); seq_save(mp);