X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1e0b1d40a6285c532b722f4584fa7ddde220deff..04ee0c3f6ad7e4177cc43a0c57f046013a4fbac9:/uip/mhmisc.c diff --git a/uip/mhmisc.c b/uip/mhmisc.c index 8b1f0d00..24fb9b2c 100644 --- a/uip/mhmisc.c +++ b/uip/mhmisc.c @@ -1,16 +1,17 @@ - -/* - * mhparse.c -- misc routines to process MIME messages +/* mhmisc.c -- misc routines to process MIME messages * * 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 -#include -#include -#include +#include "h/mh.h" +#include "sbr/error.h" +#include "h/mime.h" +#include "h/mhparse.h" +#include "h/utils.h" +#include "sbr/makedir.h" +#include "mhmisc.h" extern int debugsw; @@ -22,21 +23,11 @@ int ntype = 0; char *parts[NPARTS + 1]; char *types[NTYPES + 1]; -int userrs = 0; +bool userrs; static char *errs = NULL; -/* - * prototypes - */ -int part_ok (CT); -int part_exact(CT ct); -int type_ok (CT, int); -void content_error (char *, CT, char *, ...); -void flush_errors (void); - - int part_ok (CT ct) { @@ -104,7 +95,7 @@ type_ok (CT ct, int sP) /* - * Returns true if this content is marked as "inline". + * Returns true if the content has a disposition of "inline". * * Technically we should check parent content to see if they have * disposition to use as a default, but we don't right now. Maybe @@ -122,8 +113,7 @@ is_inline(CT ct) if (! ct->c_dispo_type || strcasecmp(ct->c_dispo_type, "inline") == 0) return 1; - else - return 0; + return 0; } int @@ -146,13 +136,13 @@ losing_directory: } ep = concat ("Create directory \"", file, "\"? ", NULL); - answer = getanswer (ep); + answer = read_yes_or_no_if_tty (ep); free (ep); if (!answer) goto losing_directory; if (!makedir (file)) { - advise (NULL, "unable to create directory %s", file); + inform("unable to create directory %s", file); goto losing_directory; } } @@ -172,7 +162,7 @@ void content_error (char *what, CT ct, char *fmt, ...) { va_list arglist; - int i, len, buflen; + int len, buflen; char *bp, buffer[BUFSIZ]; CI ci; @@ -215,10 +205,8 @@ content_error (char *what, CT ct, char *fmt, ...) buflen -= len; } - i = strlen (invo_name) + 2; - /* Now add content type and subtype */ - snprintf (bp, buflen, "\n%*.*s(content %s/%s", i, i, "", + snprintf (bp, buflen, "\n (content %s/%s", ci->ci_type, ci->ci_subtype); len = strlen (bp); bp += len; @@ -251,8 +239,10 @@ content_error (char *what, CT ct, char *fmt, ...) errs = add (buffer, errs); } else { - advise (NULL, "%s", buffer); + inform("%s", buffer); } + + va_end(arglist); } @@ -261,7 +251,7 @@ flush_errors (void) { if (errs) { fflush (stdout); - fprintf (stderr, "%s", errs); + fputs(errs, stderr); free (errs); errs = NULL; }