X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fwhatnowsbr.c;h=82af31e8bf349e38a969892135b6c29978c44d95;hp=86878154f392d2c25321d7da005b6a1a3a62ba1f;hb=5b792c4424571f05bc2008e3109797d18d7d00d1;hpb=d39e2c447b0d163a5a63f480b23d06edb7a73aa0 diff --git a/uip/whatnowsbr.c b/uip/whatnowsbr.c index 8687815..82af31e 100644 --- a/uip/whatnowsbr.c +++ b/uip/whatnowsbr.c @@ -128,7 +128,7 @@ WhatNow(int argc, char **argv) char buf[BUFSIZ], prompt[BUFSIZ]; char **argp, **arguments; struct stat st; - char *attach = (char *)0; /* attachment header field name */ + char *attach = NULL; /* attachment header field name */ char cwd[MAXPATHLEN + 1]; /* current working directory */ char file[MAXPATHLEN + 1]; /* file name buffer */ char shell[MAXPATHLEN + 1]; /* shell response buffer */ @@ -148,7 +148,7 @@ WhatNow(int argc, char **argv) ** Get the initial current working directory. */ - if (getcwd(cwd, sizeof (cwd)) == (char *)0) { + if (getcwd(cwd, sizeof (cwd)) == NULL) { adios("getcwd", "could not get working directory"); } @@ -188,7 +188,7 @@ WhatNow(int argc, char **argv) continue; case ATTACHSW: - if (attach != (char *)0) + if (attach != NULL) adios(NULL, "only one attachment header field name at a time!"); if (!(attach = *argp++) || *attach == '-') adios(NULL, "missing argument to %s", @@ -300,15 +300,15 @@ WhatNow(int argc, char **argv) ** the absolute path. */ - if (*(argp+1) == (char *)0) { - (void)sprintf(buf, "$SHELL -c \"cd;pwd\""); + if (*(argp+1) == NULL) { + sprintf(buf, "$SHELL -c \"cd;pwd\""); } else { writesomecmd(buf, BUFSIZ, "cd", "pwd", argp); } if ((f = popen_in_dir(cwd, buf, "r")) != (FILE *)0) { fgets(cwd, sizeof (cwd), f); - if (strchr(cwd, '\n') != (char *)0) + if (strchr(cwd, '\n') != NULL) *strchr(cwd, '\n') = '\0'; pclose(f); @@ -333,7 +333,7 @@ WhatNow(int argc, char **argv) ** accustomed to. */ writelscmd(buf, sizeof(buf), argp); - (void)system_in_dir(cwd, buf); + system_in_dir(cwd, buf); break; case ALISTCMDSW: @@ -344,15 +344,15 @@ WhatNow(int argc, char **argv) ** -n numbers listing */ - if (attach == (char *)0) { - advise((char *)0, "can't list because no header field name was given."); + if (attach == NULL) { + advise(NULL, "can't list because no header field name was given."); break; } - l = (char *)0; + l = NULL; n = 0; - while (*++argp != (char *)0) { + while (*++argp != NULL) { if (strcmp(*argp, "-l") == 0) l = "/"; @@ -370,7 +370,7 @@ WhatNow(int argc, char **argv) } if (n == -1) - advise((char *)0, "usage is alist [-ln]."); + advise(NULL, "usage is alist [-ln]."); else annolist(drft, attach, l, n); @@ -382,13 +382,13 @@ WhatNow(int argc, char **argv) ** Attach files to current draft. */ - if (attach == (char *)0) { - advise((char *)0, "can't attach because no header field name was given."); + if (attach == NULL) { + advise(NULL, "can't attach because no header field name was given."); break; } - if (*(argp+1) == (char *)0) { - advise((char *)0, "attach command requires file argument(s)."); + if (*(argp+1) == NULL) { + advise(NULL, "attach command requires file argument(s)."); break; } @@ -412,7 +412,7 @@ WhatNow(int argc, char **argv) if ((f = popen_in_dir(cwd, buf, "r")) != (FILE *)0) { while (fgets(shell, sizeof (shell), f) - != (char *)0) { + != NULL) { *(strchr(shell, '\n')) = '\0'; if (*shell == '/') @@ -438,8 +438,8 @@ WhatNow(int argc, char **argv) ** Detach files from current draft. */ - if (attach == (char *)0) { - advise((char *)0, "can't detach because no header field name was given."); + if (attach == NULL) { + advise(NULL, "can't detach because no header field name was given."); break; } @@ -450,7 +450,7 @@ WhatNow(int argc, char **argv) */ for (n = 0, arguments = argp + 1; - *arguments != (char *)0; + *arguments != NULL; arguments++) { if (strcmp(*arguments, "-n") == 0) { n = 1; @@ -468,7 +468,7 @@ WhatNow(int argc, char **argv) if (n == 1) { for (arguments = argp + 1; - *arguments != (char *)0; + *arguments != NULL; arguments++) { if (strcmp(*arguments, "-n") == 0) continue; @@ -478,12 +478,12 @@ WhatNow(int argc, char **argv) annotate(drft, attach, NULL, 1, 0, n, 1); - for (argp = arguments + 1; *argp != (char *)0; argp++) { + for (argp = arguments + 1; *argp != NULL; argp++) { if (atoi(*argp) > n) { if (atoi(*argp) == 1) *argp = ""; else - (void)sprintf(*argp, "%d", atoi(*argp) - 1); + sprintf(*argp, "%d", atoi(*argp) - 1); } } } @@ -555,15 +555,15 @@ writesomecmd(char *buf, int bufsz, char *cmd, char *trailcmd, char **argp) */ int trailln = strlen(trailcmd) + 3; if (ln < 0 || ln + trailln > bufsz) - adios((char *)0, "arguments too long"); + adios(NULL, "arguments too long"); cp = buf + ln; - while (*++argp != (char *)0) { + while (*++argp != NULL) { ln = strlen(*argp); /* +1 for leading space */ if (ln + trailln + 1 > bufsz - (cp-buf)) - adios((char *)0, "arguments too long"); + adios(NULL, "arguments too long"); *cp++ = ' '; memcpy(cp, *argp, ln+1); cp += ln; @@ -704,76 +704,74 @@ editfile(char **ed, char **arg, char *file, int use, struct msgs *mp, fflush(stdout); switch (pid = vfork()) { - case NOTOK: - advise("fork", "unable to"); - status = NOTOK; - break; - - case OK: - if (cwd) - chdir(cwd); - if (altmsg) { - if (mp) - m_putenv("mhfolder", mp->foldpath); - m_putenv("editalt", altpath); - } - - vecp = 0; - vec[vecp++] = mhbasename(*ed); - if (arg) - while (*arg) - vec[vecp++] = *arg++; - vec[vecp++] = file; - vec[vecp] = NULL; - - execvp(*ed, vec); - fprintf(stderr, "unable to exec "); - perror(*ed); - _exit(-1); + case NOTOK: + advise("fork", "unable to"); + status = NOTOK; + break; + + case OK: + if (cwd) + chdir(cwd); + if (altmsg) { + if (mp) + m_putenv("mhfolder", mp->foldpath); + m_putenv("editalt", altpath); + } - default: - if ((status = pidwait(pid, NOTOK))) { + vecp = 0; + vec[vecp++] = mhbasename(*ed); + if (arg) + while (*arg) + vec[vecp++] = *arg++; + vec[vecp++] = file; + vec[vecp] = NULL; + + execvp(*ed, vec); + fprintf(stderr, "unable to exec "); + perror(*ed); + _exit(-1); + + default: + if ((status = pidwait(pid, NOTOK))) { #ifdef ATTVIBUG - if ((cp = mhbasename(*ed)) && - strcmp(cp, "vi") == 0 && - (status & 0x00ff) == 0) - status = 0; - else { + if ((cp = mhbasename(*ed)) && strcmp(cp, "vi") == 0 && + (status & 0x00ff) == 0) + status = 0; + else { #endif - if (((status & 0xff00) != 0xff00) - && (!reedit || (status & 0x00ff))) { - if (!use && (status & 0xff00) && (rename(file, cp = m_backup (file)) != NOTOK)) { - advise(NULL, "problems with edit--draft left in %s", cp); - } else { - advise(NULL, "problems with edit--%s preserved", file); - } + if (((status & 0xff00) != 0xff00) + && (!reedit || (status & 0x00ff))) { + if (!use && (status & 0xff00) && (rename(file, cp = m_backup (file)) != NOTOK)) { + advise(NULL, "problems with edit--draft left in %s", cp); + } else { + advise(NULL, "problems with edit--%s preserved", file); } - status = -2; /* maybe "reedit ? -2 : -1"? */ - break; + } + status = -2; /* maybe "reedit ? -2 : -1"? */ + break; #ifdef ATTVIBUG - } -#endif } +#endif + } - reedit++; + reedit++; #ifdef HAVE_LSTAT - if (altmsg && mp && !is_readonly(mp) && (slinked ? - lstat (linkpath, &st) != NOTOK && - S_ISREG(st.st_mode) && - copyf(linkpath, altpath) == NOTOK : - stat(linkpath, &st) != NOTOK && - st.st_nlink == 1 && - (unlink(altpath) == NOTOK || - link(linkpath, altpath) == NOTOK))) - advise(linkpath, "unable to update %s from", altmsg); + if (altmsg && mp && !is_readonly(mp) && (slinked ? + lstat (linkpath, &st) != NOTOK && + S_ISREG(st.st_mode) && + copyf(linkpath, altpath) == NOTOK : + stat(linkpath, &st) != NOTOK && + st.st_nlink == 1 && + (unlink(altpath) == NOTOK || + link(linkpath, altpath) == NOTOK))) + advise(linkpath, "unable to update %s from", altmsg); #else /* HAVE_LSTAT */ - if (altmsg && mp && !is_readonly(mp) && - stat(linkpath, &st) != NOTOK && - st.st_nlink == 1 && - (unlink(altpath) == NOTOK || - link(linkpath, altpath) == NOTOK)) - advise(linkpath, "unable to update %s from", - altmsg); + if (altmsg && mp && !is_readonly(mp) && + stat(linkpath, &st) != NOTOK && + st.st_nlink == 1 && + (unlink(altpath) == NOTOK || + link(linkpath, altpath) == NOTOK)) + advise(linkpath, "unable to update %s from", altmsg); #endif /* HAVE_LSTAT */ } @@ -858,28 +856,28 @@ sendfile(char **arg, char *file, int pushsw) for (i = 0; (child_id = vfork()) == NOTOK && i < 5; i++) sleep(5); switch (child_id) { - case NOTOK: - advise(NULL, "unable to fork, so sending directly..."); - case OK: - vecp = 0; - vec[vecp++] = invo_name; - if (pushsw) - vec[vecp++] = "-push"; - if (arg) - while (*arg) - vec[vecp++] = *arg++; - vec[vecp++] = file; - vec[vecp] = NULL; - - execvp(sendproc, vec); - fprintf(stderr, "unable to exec "); - perror(sendproc); - _exit(-1); - - default: - if (pidwait(child_id, OK) == 0) - done(0); - return 1; + case NOTOK: + advise(NULL, "unable to fork, so sending directly..."); + case OK: + vecp = 0; + vec[vecp++] = invo_name; + if (pushsw) + vec[vecp++] = "-push"; + if (arg) + while (*arg) + vec[vecp++] = *arg++; + vec[vecp++] = file; + vec[vecp] = NULL; + + execvp(sendproc, vec); + fprintf(stderr, "unable to exec "); + perror(sendproc); + _exit(-1); + + default: + if (pidwait(child_id, OK) == 0) + done(0); + return 1; } } @@ -939,41 +937,42 @@ check_draft(char *msgnam) return 0; for (state = FLD;;) switch (state = m_getfld(state, name, buf, sizeof(buf), fp)) { - case FLD: - case FLDPLUS: - case FLDEOF: - /* - ** If draft already contains any of the - ** Content-XXX fields, then assume it already - ** been converted. - */ - if (uprf(name, XXX_FIELD_PRF)) { - fclose(fp); - return 0; - } - while (state == FLDPLUS) - state = m_getfld(state, name, buf, - sizeof(buf), fp); - break; + case FLD: + case FLDPLUS: + case FLDEOF: + /* + ** If draft already contains any of the + ** Content-XXX fields, then assume it already + ** been converted. + */ + if (uprf(name, XXX_FIELD_PRF)) { + fclose(fp); + return 0; + } + while (state == FLDPLUS) + state = m_getfld(state, name, buf, + sizeof(buf), fp); + break; - case BODY: - do { - char *bp; + case BODY: + do { + char *bp; - for (bp = buf; *bp; bp++) - if (*bp != ' ' && *bp != '\t' && *bp != '\n') { - fclose(fp); - return 1; - } + for (bp = buf; *bp; bp++) + if (*bp != ' ' && *bp != '\t' && + *bp != '\n') { + fclose(fp); + return 1; + } - state = m_getfld(state, name, buf, - sizeof(buf), fp); - } while (state == BODY); - /* and fall... */ + state = m_getfld(state, name, buf, + sizeof(buf), fp); + } while (state == BODY); + /* and fall... */ - default: - fclose(fp); - return 0; + default: + fclose(fp); + return 0; } } @@ -1072,7 +1071,7 @@ sendit(char *sp, char **arg, char *file, int pushed) char *cp, buf[BUFSIZ], **argp; char **arguments, *vec[MAXARGS]; struct stat st; - char *attach = (char *)0; /* attachment header field name */ + char *attach = NULL; /* attachment header field name */ int attachformat = 0; /* mhbuild format specifier for attachments */ #ifndef lint @@ -1131,106 +1130,108 @@ sendit(char *sp, char **arg, char *file, int pushed) while ((cp = *argp++)) { if (*cp == '-') { switch (smatch(++cp, sendswitches)) { - case AMBIGSW: - ambigsw(cp, sendswitches); - return; - case UNKWNSW: - advise(NULL, "-%s unknown\n", cp); - return; + case AMBIGSW: + ambigsw(cp, sendswitches); + return; + case UNKWNSW: + advise(NULL, "-%s unknown\n", cp); + return; - case SHELPSW: - snprintf(buf, sizeof(buf), - "%s [switches]", sp); - print_help(buf, sendswitches, 1); - return; - case SVERSIONSW: - print_version(invo_name); + case SHELPSW: + snprintf(buf, sizeof(buf), + "%s [switches]", sp); + print_help(buf, sendswitches, 1); + return; + case SVERSIONSW: + print_version(invo_name); + return; + + case SPSHSW: + pushed++; + continue; + case NSPSHSW: + pushed = 0; + continue; + + case UNIQSW: + unique++; + continue; + case NUNIQSW: + unique = 0; + continue; + case FORWSW: + forwsw++; + continue; + case NFORWSW: + forwsw = 0; + continue; + + case VERBSW: + verbsw++; + vec[vecp++] = --cp; + continue; + case NVERBSW: + verbsw = 0; + vec[vecp++] = --cp; + continue; + + case DEBUGSW: + debugsw++; /* fall */ + case NFILTSW: + case FRMTSW: + case NFRMTSW: + case BITSTUFFSW: + case NBITSTUFFSW: + case MIMESW: + case NMIMESW: + case MSGDSW: + case NMSGDSW: + case WATCSW: + case NWATCSW: + case MAILSW: + case SAMLSW: + case SSNDSW: + case SOMLSW: + case SNOOPSW: + vec[vecp++] = --cp; + continue; + + case ALIASW: + case FILTSW: + case WIDTHSW: + case CLIESW: + case SERVSW: + case PORTSW: + vec[vecp++] = --cp; + if (!(cp = *argp++) || *cp == '-') { + advise(NULL, "missing argument to %s", + argp[-2]); return; + } + vec[vecp++] = cp; + continue; - case SPSHSW: - pushed++; - continue; - case NSPSHSW: - pushed = 0; - continue; - - case UNIQSW: - unique++; - continue; - case NUNIQSW: - unique = 0; - continue; - case FORWSW: - forwsw++; - continue; - case NFORWSW: - forwsw = 0; - continue; - - case VERBSW: - verbsw++; - vec[vecp++] = --cp; - continue; - case NVERBSW: - verbsw = 0; - vec[vecp++] = --cp; - continue; - - case DEBUGSW: - debugsw++; /* fall */ - case NFILTSW: - case FRMTSW: - case NFRMTSW: - case BITSTUFFSW: - case NBITSTUFFSW: - case MIMESW: - case NMIMESW: - case MSGDSW: - case NMSGDSW: - case WATCSW: - case NWATCSW: - case MAILSW: - case SAMLSW: - case SSNDSW: - case SOMLSW: - case SNOOPSW: - vec[vecp++] = --cp; - continue; - - case ALIASW: - case FILTSW: - case WIDTHSW: - case CLIESW: - case SERVSW: - case PORTSW: - vec[vecp++] = --cp; - if (!(cp = *argp++) || *cp == '-') { - advise(NULL, "missing argument to %s", argp[-2]); - return; - } - vec[vecp++] = cp; - continue; - - case SNDATTACHSW: - if (!(attach = *argp++) || - *attach == '-') { - advise(NULL, "missing argument to %s", argp[-2]); - return; - } - continue; + case SNDATTACHSW: + if (!(attach = *argp++) || *attach == '-') { + advise(NULL, "missing argument to %s", + argp[-2]); + return; + } + continue; - case SNDATTACHFORMAT: - if (! *argp || **argp == '-') - adios(NULL, "missing argument to %s", argp[-1]); - else { - attachformat = atoi(*argp); - if (attachformat < 0 || attachformat > ATTACHFORMATS - 1) { - advise(NULL, "unsupported attachformat %d", attachformat); - continue; - } + case SNDATTACHFORMAT: + if (! *argp || **argp == '-') + adios(NULL, "missing argument to %s", + argp[-1]); + else { + attachformat = atoi(*argp); + if (attachformat < 0 || attachformat > ATTACHFORMATS - 1) { + advise(NULL, "unsupported attachformat %d", attachformat); + continue; } - ++argp; - continue; + } + ++argp; + continue; } } advise(NULL, "usage: %s [switches]", sp);