X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/8bd6112f573f6b9e8cc9b93d01a594748a2ef8fb..b22bcbc2adddca14cc1889b1eee37643e0b88489:/uip/inc.c diff --git a/uip/inc.c b/uip/inc.c index e07f4caa..fecef370 100644 --- a/uip/inc.c +++ b/uip/inc.c @@ -31,6 +31,15 @@ #endif #include "h/mh.h" +#include "sbr/fmt_new.h" +#include "sbr/dtime.h" +#include "scansbr.h" +#include "sbr/m_name.h" +#include "sbr/m_gmprot.h" +#include "sbr/getarguments.h" +#include "sbr/concat.h" +#include "sbr/seq_setunseen.h" +#include "sbr/seq_setcur.h" #include "sbr/seq_save.h" #include "sbr/smatch.h" #include "sbr/getfolder.h" @@ -49,9 +58,8 @@ #include "h/utils.h" #include #include "h/dropsbr.h" -#include "h/popsbr.h" +#include "popsbr.h" #include "h/fmt_scan.h" -#include "h/scansbr.h" #include "h/signals.h" #include "h/tws.h" #include "h/mts.h" @@ -209,6 +217,7 @@ main (int argc, char **argv) FILE *aud = NULL; char b[PATH_MAX + 1]; char *maildir_copy = NULL; /* copy of mail directory because the static gets overwritten */ + charstring_t scanl = NULL; int nmsgs, nbytes; char *MAILHOST_env_variable; @@ -605,7 +614,6 @@ main (int argc, char **argv) hghnum = msgnum = mp->hghmsg; for (i = 1; i <= nmsgs; i++) { - charstring_t scanl = NULL; msgnum++; cp = mh_xstrdup(m_name (msgnum)); @@ -647,7 +655,9 @@ main (int argc, char **argv) fflush (stdout); break; } - charstring_free (scanl); + + if (scanl) + charstring_clear (scanl); if (ferror(pf) || fclose (pf)) { int e = errno; @@ -664,6 +674,9 @@ main (int argc, char **argv) scan_finished(); } + charstring_free (scanl); + scanl = NULL; + if (pop_quit () == NOTOK) die("%s", response); @@ -673,8 +686,6 @@ main (int argc, char **argv) scan_detect_mbox_style (in); /* the MAGIC invocation... */ hghnum = msgnum = mp->hghmsg; for (;;) { - charstring_t scanl = NULL; - /* create scanline for new message */ switch (incerr = scan (in, msgnum + 1, msgnum + 1, nfs, width, msgnum == hghnum && chgflag, 1, NULL, 0L, noisy, @@ -711,16 +722,18 @@ main (int argc, char **argv) if (noisy) fflush (stdout); + charstring_clear (scanl); msgnum++; continue; } - charstring_free (scanl); /* If we get here there was some sort of error from scan(), * so stop processing anything more from the spool. */ break; } + charstring_free (scanl); + scanl = NULL; } else { /* Mail from Maildir. */ @@ -730,8 +743,6 @@ main (int argc, char **argv) hghnum = msgnum = mp->hghmsg; for (i = 0; i < num_maildir_entries; i++) { - charstring_t scanl = NULL; - msgnum++; sp = Maildir[i].filename; @@ -795,7 +806,7 @@ main (int argc, char **argv) fflush (stdout); break; } - charstring_free (scanl); + charstring_clear (scanl); if (ferror(pf) || fclose (pf)) { int e = errno; @@ -813,6 +824,8 @@ main (int argc, char **argv) scan_finished(); } free (Maildir); /* From now on Maildir is just a flag - don't dref! */ + charstring_free (scanl); + scanl = NULL; } scan_finished ();