X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6c42153ad9362cc676ea66563bf400d7511b3b68..ec173fd2c:/sbr/fmt_new.c?ds=sidebyside diff --git a/sbr/fmt_new.c b/sbr/fmt_new.c index effd06f1..2407cc62 100644 --- a/sbr/fmt_new.c +++ b/sbr/fmt_new.c @@ -1,15 +1,15 @@ - -/* - * fmt_new.c -- read format file/string and normalize - * - * $Id$ +/* fmt_new.c -- read format file/string and normalize * * 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 "h/mh.h" +#include "fmt_new.h" +#include "getcpy.h" +#include "error.h" +#include "h/utils.h" #define QUOTE '\\' @@ -29,10 +29,9 @@ char * new_fs (char *form, char *format, char *default_fs) { struct stat st; - register FILE *fp; + FILE *fp; - if (formats) - free (formats); + free(formats); if (form) { if ((fp = fopen (etcpath (form), "r")) == NULL) @@ -41,8 +40,7 @@ new_fs (char *form, char *format, char *default_fs) if (fstat (fileno (fp), &st) == -1) adios (form, "unable to stat format file"); - if (!(formats = malloc ((size_t) st.st_size + 1))) - adios (form, "unable to allocate space for format"); + formats = mh_xmalloc ((size_t) st.st_size + 1); if (read (fileno(fp), formats, (int) st.st_size) != st.st_size) adios (form, "error reading format file"); @@ -60,6 +58,14 @@ new_fs (char *form, char *format, char *default_fs) } +void +free_fs(void) +{ + free (formats); + formats = 0; +} + + /* * Expand escapes in format strings */ @@ -98,7 +104,8 @@ normalize (char *cp) break; case 0: - cp--; /* fall */ + cp--; + /* FALLTHRU */ default: *dp++ = *cp; break;