X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fshow.c;h=80d7e6bdf8c6675051e6ff457a77306b55b18f43;hp=ceb901884a4243a1303408353f94c2582b661dff;hb=5b792c4424571f05bc2008e3109797d18d7d00d1;hpb=097c84b61603c4a4c5837f3dcc09c30a1e751702 diff --git a/uip/show.c b/uip/show.c index ceb9018..80d7e6b 100644 --- a/uip/show.c +++ b/uip/show.c @@ -87,84 +87,89 @@ main(int argc, char **argv) while ((cp = *argp++)) { if (*cp == '-') { switch (smatch(++cp, switches)) { - case AMBIGSW: - ambigsw(cp, switches); - done(1); - case UNKWNSW: - case NPROGSW: - vec[vecp++] = --cp; - continue; - - case HELPSW: - snprintf(buf, sizeof(buf), "%s [+folder] %s[switches] [switches for showproc]", invo_name, mode == SHOW ? "[msgs] ": ""); - print_help(buf, switches, 1); - done(1); - case VERSIONSW: - print_version(invo_name); - done(1); - - case FILESW: - if (mode != SHOW) + case AMBIGSW: + ambigsw(cp, switches); + done(1); + case UNKWNSW: + case NPROGSW: + vec[vecp++] = --cp; + continue; + + case HELPSW: + snprintf(buf, sizeof(buf), "%s [+folder] %s[switches] [switches for showproc]", invo_name, mode == SHOW ? "[msgs] ": ""); + print_help(buf, switches, 1); + done(1); + case VERSIONSW: + print_version(invo_name); + done(1); + + case FILESW: + if (mode != SHOW) usage: - adios(NULL, "usage: %s [+folder] [switches] [switches for showproc]", invo_name); - - if (file) - adios(NULL, "only one file at a time!"); - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", argp[-2]); - file = path(cp, TFILE); - continue; - - case HEADSW: - headersw++; - continue; - case NHEADSW: - headersw = 0; - continue; - - case FORMSW: - vec[vecp++] = --cp; - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", argp[-2]); - vec[vecp++] = getcpy(etcpath(cp)); - continue; - - case PROGSW: - case LENSW: - case WIDTHSW: - vec[vecp++] = --cp; - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", argp[-2]); - vec[vecp++] = cp; - continue; - - case SHOWSW: - if (!(showproc = *argp++) || *showproc == '-') - adios(NULL, "missing argument to %s", argp[-2]); - nshow = 0; - continue; - case NSHOWSW: - nshow++; - continue; - - case SHOWMIMESW: - if (!(showmimeproc = *argp++) || *showmimeproc == '-') - adios(NULL, "missing argument to %s", argp[-2]); - nshow = 0; - continue; - case CHECKMIMESW: - checkmime++; - continue; - case NOCHECKMIMESW: - checkmime = 0; - continue; + adios(NULL, "usage: %s [+folder] [switches] [switches for showproc]", invo_name); + + if (file) + adios(NULL, "only one file at a time!"); + if (!(cp = *argp++) || *cp == '-') + adios(NULL, "missing argument to %s", argp[-2]); + file = getcpy(expanddir(cp)); + continue; + + case HEADSW: + headersw++; + continue; + case NHEADSW: + headersw = 0; + continue; + + case FORMSW: + vec[vecp++] = --cp; + if (!(cp = *argp++) || *cp == '-') + adios(NULL, "missing argument to %s", + argp[-2]); + vec[vecp++] = getcpy(etcpath(cp)); + continue; + + case PROGSW: + case LENSW: + case WIDTHSW: + vec[vecp++] = --cp; + if (!(cp = *argp++) || *cp == '-') + adios(NULL, "missing argument to %s", + argp[-2]); + vec[vecp++] = cp; + continue; + + case SHOWSW: + if (!(showproc = *argp++) || *showproc == '-') + adios(NULL, "missing argument to %s", + argp[-2]); + nshow = 0; + continue; + case NSHOWSW: + nshow++; + continue; + + case SHOWMIMESW: + if (!(showmimeproc = *argp++) || + *showmimeproc == '-') + adios(NULL, "missing argument to %s", + argp[-2]); + nshow = 0; + continue; + case CHECKMIMESW: + checkmime++; + continue; + case NOCHECKMIMESW: + checkmime = 0; + continue; } } if (*cp == '+' || *cp == '@') { if (folder) adios(NULL, "only one folder at a time!"); else - folder = pluspath(cp); + folder = getcpy(expandfol(cp)); } else if (mode != SHOW) { goto usage; } else { @@ -173,9 +178,6 @@ usage: } procp = vecp; - if (!context_find("path")) - free(path("./", TFOLDER)); - if (file) { if (msgp) adios(NULL, "only one file at a time!"); @@ -193,21 +195,21 @@ usage: if (!msgp) { switch (mode) { - case NEXT: - msgs[msgp++] = "next"; - break; - case PREV: - msgs[msgp++] = "prev"; - break; - default: - msgs[msgp++] = "cur"; - break; + case NEXT: + msgs[msgp++] = "next"; + break; + case PREV: + msgs[msgp++] = "prev"; + break; + default: + msgs[msgp++] = "cur"; + break; } } 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"); @@ -247,7 +249,7 @@ usage: seq_setcur(mp, mp->hghsel); /* update current message */ seq_save(mp); /* synchronize sequences */ - context_replace(pfolder, folder); /* update current folder */ + context_replace(curfolder, folder); /* update current folder */ context_save(); /* save the context file */ if (headersw && vecp == 2) @@ -336,7 +338,7 @@ go_to_it: ; if (!strcmp(mhbasename(proc), "mhl") && !file && chdir(maildir = - concat(m_maildir(""), "/", NULL)) != NOTOK) { + concat(toabsdir("+"), "/", NULL)) != NOTOK) { mp->foldpath = concat(mp->foldpath, "/", NULL); cp = isprefix(maildir, mp->foldpath) ? mp->foldpath + strlen(maildir) @@ -378,7 +380,7 @@ is_nontext(char *msgnam) int passno; char c; - cp = add(buf, NULL); + cp = getcpy(buf); while (state == FLDPLUS) { state = m_getfld(state, name, buf, sizeof(buf), fp); @@ -484,7 +486,7 @@ out: ** Check Content-Transfer-Encoding field */ if (!mh_strcasecmp(name, ENCODING_FIELD)) { - cp = add(buf, NULL); + cp = getcpy(buf); while (state == FLDPLUS) { state = m_getfld(state, name, buf, sizeof(buf), fp);