X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fpackf.c;h=fc7fcba0337f404be5aa9d8038e3cfb8c430bf95;hp=14ecdaaf4fa9e997c43a8028da52e32776fcfa0b;hb=ef1216bc36bd48ceb7549ae76aa7c26e3be4d9e4;hpb=714b5c530ece27ea2835a313013f5b770163403c diff --git a/uip/packf.c b/uip/packf.c index 14ecdaa..fc7fcba 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; @@ -50,7 +44,7 @@ main(int argc, char **argv) #ifdef LOCALE setlocale(LC_ALL, ""); #endif - invo_name = r1bindex(argv[0], '/'); + invo_name = mhbasename(argv[0]); /* read user profile/context */ context_read(); @@ -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) @@ -120,16 +106,13 @@ main(int argc, char **argv) free(cp); } - if (!context_find("path")) - free(path("./", TFOLDER)); - /* default is to pack whole folder */ if (!msgs.size) - app_msgarg(&msgs, "all"); + app_msgarg(&msgs, seq_all); if (!folder) - folder = getfolder(1); - maildir = m_maildir(folder); + folder = getcurfol(); + maildir = toabsdir(folder); if (chdir(maildir) == NOTOK) adios(maildir, "unable to change directory to "); @@ -149,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"); @@ -162,8 +145,7 @@ main(int argc, char **argv) break; } - if (mbx_copy(file, mbx_style, md, fd, mapping, NULL, 1) - == NOTOK) + if (mbx_copy(md, fd) == NOTOK) adios(file, "error writing to file"); close(fd); @@ -172,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);