]> diplodocus.org Git - nmh/blobdiff - sbr/fmt_new.c
new.c: Order two return statements to match comment.
[nmh] / sbr / fmt_new.c
index effd06f1ae98323a93f3c81b97a64ef256897088..cd81017a4a4c12c79f336546e5402e6e9f583db6 100644 (file)
@@ -1,8 +1,4 @@
-
-/*
- * 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
@@ -10,6 +6,7 @@
  */
 
 #include <h/mh.h>
+#include <h/utils.h>
 
 #define QUOTE '\\'
 
@@ -29,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);
+    free(formats);
 
     if (form) {
        if ((fp = fopen (etcpath (form), "r")) == NULL)
@@ -41,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");
@@ -60,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
  */
@@ -98,7 +100,8 @@ normalize (char *cp)
                    break;
 
                case 0: 
-                   cp--;       /* fall */
+                   cp--;
+                   /* FALLTHRU */
                default: 
                    *dp++ = *cp;
                    break;