X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/64a40afc7d83e7b1280905fce7bdfd3a2ec7f01a..5bc2777230cdc4cea23ff87df356af3fb0cfadf9:/uip/mhlsbr.c diff --git a/uip/mhlsbr.c b/uip/mhlsbr.c index d21c71c2..61bf7965 100644 --- a/uip/mhlsbr.c +++ b/uip/mhlsbr.c @@ -5,12 +5,34 @@ * complete copyright information. */ -#include -#include -#include -#include -#include -#include +#include "h/mh.h" +#include "sbr/fmt_new.h" +#include "mhlsbr.h" +#include "sbr/m_getfld.h" +#include "sbr/getarguments.h" +#include "sbr/concat.h" +#include "sbr/smatch.h" +#include "sbr/r1bindex.h" +#include "sbr/snprintb.h" +#include "sbr/copyip.h" +#include "sbr/discard.h" +#include "sbr/trimcpy.h" +#include "sbr/vfgets.h" +#include "sbr/check_charset.h" +#include "sbr/getcpy.h" +#include "sbr/brkstring.h" +#include "sbr/ambigsw.h" +#include "sbr/pidstatus.h" +#include "sbr/print_version.h" +#include "sbr/print_help.h" +#include "sbr/arglist.h" +#include "sbr/error.h" +#include "h/signals.h" +#include "h/addrsbr.h" +#include "h/fmt_scan.h" +#include "h/tws.h" +#include "h/done.h" +#include "h/utils.h" #include "sbr/m_popen.h" #include #include @@ -259,9 +281,9 @@ static char *addrcomps[] = { static int bellflg = 0; static int clearflg = 0; static int dashstuff = 0; -static int dobody = 1; -static int forwflg = 0; -static int forwall = 0; +static bool dobody = true; +static bool forwflg; +static bool forwall; static int sleepsw = NOTOK; @@ -270,7 +292,7 @@ static int volume = 0; static int issue = 0; static int exitstat = 0; -static int mhldebug = 0; +static bool mhldebug; static int filesize = 0; @@ -337,7 +359,8 @@ static void compile_filterargs (void); int mhl (int argc, char **argv) { - int length = 0, nomore = 0; + int length = 0; + bool nomore = false; unsigned int i, vecp = 0; int width = 0; char *cp, *folder = NULL, *form = NULL; @@ -351,7 +374,7 @@ mhl (int argc, char **argv) argp = arguments; if ((cp = getenv ("MHLDEBUG")) && *cp) - mhldebug++; + mhldebug = true; while ((cp = *argp++)) { if (*cp == '-') { @@ -404,7 +427,7 @@ mhl (int argc, char **argv) mhladios (NULL, "missing argument to %s", argp[-2]); continue; case NPROGSW: - nomore++; + nomore = true; continue; case FMTPROCSW: @@ -446,10 +469,10 @@ mhl (int argc, char **argv) continue; case FORW2SW: - forwall++; + forwall = true; /* FALLTHRU */ case FORW1SW: - forwflg++; + forwflg = true; clearflg = -1;/* XXX */ continue; @@ -461,7 +484,7 @@ mhl (int argc, char **argv) continue; case NBODYSW: - dobody = 0; + dobody = false; continue; } } @@ -932,7 +955,7 @@ mhlfile (FILE *fp, char *mname, int ofilen, int ofilec) if (digest) fputs(ofilen == 1 ? delim3 : delim4, stdout); else { - printf ("\n-------"); + fputs("\n-------", stdout); if (ofilen == 1) printf (" Forwarded Message%s", PLURALS(ofilec)); else @@ -1266,7 +1289,8 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag) { char *text; /* c1's text, or the name as a fallback. */ char *trimmed_prefix; - int count, cchdr; + int count; + bool cchdr; char *cp; const int utf8 = strcasecmp(get_charset(), "UTF-8") == 0; @@ -1281,7 +1305,7 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag) * blank lines. */ trimmed_prefix = rtrim(mh_xstrdup(FENDNULL(text))); - cchdr = 0; + cchdr = false; lm = 0; llim = c1->c_length ? c1->c_length : -1; wid = c1->c_width ? c1->c_width : global.c_width; @@ -1324,7 +1348,7 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag) if (!(c1->c_flags & SPLIT)) c1->c_flags |= HDROUTPUT; - cchdr++; + cchdr = true; if ((count = c1->c_cwidth - strlen(text) - 2) > 0) while (count--) putstr (" ", c1->c_flags); @@ -1343,7 +1367,7 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag) if (!(c1->c_flags & SPLIT)) c2->c_flags |= HDROUTPUT; - cchdr++; + cchdr = true; if ((count = c1->c_cwidth - strlen (c2->c_name) - 2) > 0) while (count--) putstr (" ", c1->c_flags); @@ -1396,7 +1420,7 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag) static char * oneline (char *stuff, unsigned long flags) { - int spc; + bool spc; char *cp, *ret; if (onelp == NULL) @@ -1407,7 +1431,7 @@ oneline (char *stuff, unsigned long flags) ret = onelp; term = 0; if (flags & COMPRESS) { - for (spc = 1, cp = ret; *onelp; onelp++) + for (spc = true, cp = ret; *onelp; onelp++) if (isspace ((unsigned char) *onelp)) { if (*onelp == '\n' && (!onelp[1] || (flags & ADDRFMT))) { term = '\n'; @@ -1416,12 +1440,12 @@ oneline (char *stuff, unsigned long flags) } if (!spc) { *cp++ = ' '; - spc++; + spc = true; } } else { *cp++ = *onelp; - spc = 0; + spc = false; } *cp = 0; @@ -1593,7 +1617,8 @@ putch (char ch, unsigned long flags) * Either way, the result depends on ASCII LF, either from typing Enter * or an escaped Ctrl-J, being amongst the read characters. */ -static bool linefeed_typed(void) +static bool +linefeed_typed(void) { char buf[128]; ssize_t n; @@ -1741,11 +1766,11 @@ filterbody (struct mcomp *c1, char *buf, int bufsz, int state, */ if (pipe(fdinput) < 0) { - adios(NULL, "Unable to create input pipe"); + die("Unable to create input pipe"); } if (pipe(fdoutput) < 0) { - adios(NULL, "Unable to create output pipe"); + die("Unable to create output pipe"); } /* @@ -1800,7 +1825,7 @@ filterbody (struct mcomp *c1, char *buf, int bufsz, int state, */ _exit(0); case -1: - adios(NULL, "Unable to fork for filter writer process"); + die("Unable to fork for filter writer process"); break; } @@ -1812,7 +1837,7 @@ filterbody (struct mcomp *c1, char *buf, int bufsz, int state, switch (filterpid = fork()) { char **args, *program; struct arglist *a; - int i, dat[5], s, argp; + int i, dat[5], argp; case 0: /* @@ -1837,14 +1862,9 @@ filterbody (struct mcomp *c1, char *buf, int bufsz, int state, fmt_scan(a->a_fmt, scanl, BUFSIZ, dat, NULL); args[i] = charstring_buffer_copy (scanl); charstring_free (scanl); - /* - * fmt_scan likes to put a trailing newline at the end of the - * format string. If we have one, get rid of it. - */ - s = strlen(args[i]); - if (args[i][s - 1] == '\n') - args[i][s - 1] = '\0'; - + /* Trim a trailing linefeed that fmt_scan() likes to put at + * the end of the format string. */ + trim_suffix_c(args[i], '\n'); if (mhldebug) fprintf(stderr, "filterarg: fmt=\"%s\", output=\"%s\"\n", a->a_nfs, args[i]); @@ -1875,7 +1895,7 @@ filterbody (struct mcomp *c1, char *buf, int bufsz, int state, break; case -1: - adios(NULL, "Unable to fork format program"); + die("Unable to fork format program"); } /* @@ -1898,7 +1918,7 @@ filterbody (struct mcomp *c1, char *buf, int bufsz, int state, } if (cc < 0) { - adios(NULL, "reading from formatproc"); + die("reading from formatproc"); } /*