X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..6015bb1f7:/sbr/fmt_new.c?ds=inline diff --git a/sbr/fmt_new.c b/sbr/fmt_new.c index 003ec2bc..c699dbd9 100644 --- a/sbr/fmt_new.c +++ b/sbr/fmt_new.c @@ -1,11 +1,12 @@ - -/* - * fmt_new.c -- read format file/string and normalize +/* fmt_new.c -- read format file/string and normalize * - * $Id$ + * 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 #define QUOTE '\\' @@ -25,10 +26,9 @@ char * new_fs (char *form, char *format, char *default_fs) { struct stat st; - register FILE *fp; + FILE *fp; - if (formats) - free (formats); + mh_xfree(formats); if (form) { if ((fp = fopen (etcpath (form), "r")) == NULL) @@ -37,8 +37,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"); @@ -56,6 +55,13 @@ new_fs (char *form, char *format, char *default_fs) } +void +free_fs(void) { + free (formats); + formats = 0; +} + + /* * Expand escapes in format strings */ @@ -94,7 +100,8 @@ normalize (char *cp) break; case 0: - cp--; /* fall */ + cp--; + /* FALLTHRU */ default: *dp++ = *cp; break;