X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmshcmds.c;h=147a261b960f5a3230d3d3b11fc8463406bf43f9;hp=a665536fbeb14597ae279e511ee9667302e22a1e;hb=d8916ff5d389de5ab225cd6f40aeda1b285d0f28;hpb=0ccd1945560c715e4cc4063209bd0d68b75d5470 diff --git a/uip/mshcmds.c b/uip/mshcmds.c index a665536..147a261 100644 --- a/uip/mshcmds.c +++ b/uip/mshcmds.c @@ -3,6 +3,10 @@ * mshcmds.c -- command handlers in msh * * $Id$ + * + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ #include @@ -10,15 +14,15 @@ #include #include #include -#include -#include +#include +#include #include #include #include #include #include +#include -extern int errno; static char delim3[] = "-------"; /* from burst.c */ @@ -68,6 +72,8 @@ static int process (int, char *, int, char **); static void copy_message (int, FILE *); static void copy_digest (int, FILE *); +/* from mhlsbr.c */ +int mhlsbr (int, char **, FILE *(*)()); void forkcmd (char **args, char *pgm) @@ -137,7 +143,7 @@ static struct swit distswit[] = { #define DINWTSW 11 { "nowhatnowproc", 0 }, #define DIHELP 12 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -238,7 +244,7 @@ static struct swit explswit[] = { #define EXNVBSW 5 { "noverbose", 0 }, #define EXHELP 6 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -467,7 +473,7 @@ static struct swit fileswit[] = { #define FINPRC 8 { "normmproc", 0 }, #define FIHELP 9 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -587,7 +593,7 @@ filehak (char **args) if (cwd == NULL) cwd = getcpy (pwd ()); chdir (m_maildir ("")); - cp = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF); + cp = pluspath (cp); if (access (m_maildir (cp), F_OK) == NOTOK) result = OK; free (cp); @@ -631,7 +637,7 @@ static struct swit foldswit[] = { #define FLLISW 14 { "list", 0 }, #define FLHELP 15 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -691,14 +697,15 @@ foldcmd (char **args) packsw = 0; continue; } - if (*cp == '+' || *cp == '@') + if (*cp == '+' || *cp == '@') { if (folder) { advise (NULL, "only one folder at a time!\n"); return; } else - folder = fmsh ? path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF) + folder = fmsh ? pluspath (cp) : cp + 1; + } else if (msg) { advise (NULL, "only one message at a time!\n"); @@ -849,7 +856,7 @@ static struct swit forwswit[] = { #define FONWTSW 16 { "nowhatnow", 0 }, #define FOHELP 17 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -932,11 +939,16 @@ forwcmd (char **args) /* foil search of .mh_profile */ snprintf (buf, sizeof(buf), "%sXXXXXX", invo_name); +/* + Mkstemp work postponed until later -Doug #ifdef HAVE_MKSTEMP vec[0] = (char *)mkstemp (buf); #else +*/ vec[0] = (char *)mktemp (buf); +/* #endif +*/ vec[vecp++] = "-file"; vec[vecp] = NULL; if (!msgp) @@ -1112,7 +1124,7 @@ static struct swit markswit[] = { #define MNZERSW 7 { "nozero", 0 }, #define MHELP 8 - { "help", 4 }, + { "help", 0 }, #define MDBUGSW 9 { "debug", -5 }, { NULL, 0 } @@ -1192,7 +1204,7 @@ markcmd (char **args) } } - if (!addsw && !deletesw && !listsw) + if (!addsw && !deletesw && !listsw) { if (seqp) addsw++; else @@ -1205,6 +1217,7 @@ markcmd (char **args) if (!msgp) msgs[msgp++] = "all"; } + } if (!msgp) msgs[msgp++] = listsw ? "all" :"cur"; @@ -1330,7 +1343,7 @@ static struct swit mhnswit[] = { #define MHNNVERBSW 23 { "noverbose", 0 }, #define MHNHELPSW 24 - { "help", 4 }, + { "help", 0 }, #define MHNPROGSW 25 { "moreproc program", -4 }, #define MHNNPROGSW 26 @@ -1445,11 +1458,11 @@ static struct swit packswit[] = { #define PAFISW 0 { "file name", 0 }, #define PAHELP 1 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; -static mbx_style = MMDF_FORMAT; +static int mbx_style = MMDF_FORMAT; void packcmd (char **args) @@ -1623,7 +1636,7 @@ static struct swit pickswit[] = { #define PINLISW 21 { "nolist", 0 }, #define PIHELP 22 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -1810,7 +1823,7 @@ static struct swit replswit[] = { #define REWIDSW 19 { "width columns", 0 }, #define REHELP 20 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -1906,7 +1919,7 @@ replcmd (char **args) static struct swit rmmswit[] = { #define RMHELP 0 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -2035,7 +2048,7 @@ static struct swit scanswit[] = { #define SCWID 6 { "width columns", 0 }, #define SCHELP 7 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -2148,8 +2161,7 @@ scancmd (char **args) if (*dp == '\\' || *dp == '"' || *dp == '\n') i++; i++; - if ((ep = malloc ((unsigned) i)) == NULL) - adios (NULL, "out of memory"); + ep = mh_xmalloc ((unsigned) i); for (dp = nfs, fp = ep; *dp; dp++) { if (*dp == '\n') { *fp++ = '\\', *fp++ = 'n'; @@ -2285,7 +2297,7 @@ static struct swit showswit[] = { #define SHNHEAD 9 { "noheader", 3 }, #define SHHELP 10 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -2298,10 +2310,10 @@ showcmd (char **args) char *cp, *proc = showproc, buf[BUFSIZ]; char *msgs[MAXARGS], *vec[MAXARGS]; - if (!strcasecmp (cmd_name, "next")) + if (!mh_strcasecmp (cmd_name, "next")) mode = 1; else - if (!strcasecmp (cmd_name, "prev")) + if (!mh_strcasecmp (cmd_name, "prev")) mode = -1; while ((cp = *args++)) { if (*cp == '-') @@ -2378,7 +2390,6 @@ showcmd (char **args) for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) if (is_selected (mp, msgnum) && is_nontext (msgnum)) { proc = showmimeproc; - vec[vecp++] = "-show"; vec[vecp++] = "-file"; vec[vecp] = NULL; goto finish; @@ -2536,7 +2547,8 @@ static int is_nontext (int msgnum) { int result, state; - char *bp, *cp, *dp; + unsigned char *bp, *dp; + char *cp; char buf[BUFSIZ], name[NAMESZ]; FILE *fp; @@ -2554,7 +2566,7 @@ is_nontext (int msgnum) /* * Check Content-Type field */ - if (!strcasecmp (name, TYPE_FIELD)) { + if (!mh_strcasecmp (name, TYPE_FIELD)) { int passno; char c; @@ -2609,7 +2621,7 @@ invalid: if (!*bp) goto invalid; if (passno > 1) { - if ((result = (strcasecmp (bp, "plain") != 0))) + if ((result = (mh_strcasecmp (bp, "plain") != 0))) goto out; *dp = c; for (dp++; isspace (*dp); dp++) @@ -2641,7 +2653,7 @@ invalid: /* Check the character set */ result = !check_charset (dp, strlen (dp)); } else { - if (!(result = (strcasecmp (bp, "text") != 0))) { + if (!(result = (mh_strcasecmp (bp, "text") != 0))) { *dp = c; bp = dp; passno = 2; @@ -2660,7 +2672,7 @@ out: /* * Check Content-Transfer-Encoding field */ - if (!strcasecmp (name, ENCODING_FIELD)) { + if (!mh_strcasecmp (name, ENCODING_FIELD)) { cp = add (buf, NULL); while (state == FLDPLUS) { state = m_getfld (state, name, buf, sizeof buf, fp); @@ -2671,9 +2683,9 @@ out: for (dp = bp; istoken (*dp); dp++) continue; *dp = '\0'; - result = (strcasecmp (bp, "7bit") - && strcasecmp (bp, "8bit") - && strcasecmp (bp, "binary")); + result = (mh_strcasecmp (bp, "7bit") + && mh_strcasecmp (bp, "8bit") + && mh_strcasecmp (bp, "binary")); free (cp); if (result) { @@ -2717,7 +2729,7 @@ static struct swit sortswit[] = { #define SONVERB 6 { "noverbose", 0 }, #define SOHELP 7 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -2857,7 +2869,7 @@ get_fields (char *datesw, char *subjsw, int msgnum, struct Msg *msgp) case FLD: case FLDEOF: case FLDPLUS: - if (!strcasecmp (name, datesw)) { + if (!mh_strcasecmp (name, datesw)) { bp = getcpy (buf); while (state == FLDPLUS) { state = m_getfld (state, name, buf, sizeof buf, zp); @@ -2874,7 +2886,7 @@ get_fields (char *datesw, char *subjsw, int msgnum, struct Msg *msgp) break; /* all done! */ gotdate++; } - else if (subjsw && !strcasecmp(name, subjsw)) { + else if (subjsw && !mh_strcasecmp(name, subjsw)) { bp = getcpy (buf); while (state == FLDPLUS) { state = m_getfld (state, name, buf, sizeof buf, zp); @@ -2949,12 +2961,13 @@ subsort (struct Msg *a, struct Msg *b) static char * sosmash (char *subj, char *s) { - register char *cp, *dp, c; + register char *cp, *dp; + register unsigned char c; if (s) { cp = s; dp = s; /* dst pointer */ - if (!strcasecmp (subj, "subject")) + if (!mh_strcasecmp (subj, "subject")) while ((c = *cp)) { if (! isspace(c)) { if(uprf(cp, "re:")) @@ -2997,7 +3010,6 @@ process (int msgnum, char *proc, int vecp, char **vec) strncpy (tmpfil, m_scratch ("", invo_name), sizeof(tmpfil)); if ((out = fopen (tmpfil, "w")) == NULL) { int olderr; - extern int errno; char newfil[80]; olderr = errno;