]> diplodocus.org Git - nmh/blobdiff - sbr/fmt_new.c
seq_del.c: Move interface to own file.
[nmh] / sbr / fmt_new.c
index 003ec2bc6461cb0b77a09e544addef8bf8b52e9e..97e2a7ad3dbf6e90523c83f740a74b871de05a02 100644 (file)
@@ -1,11 +1,13 @@
-
-/*
- * 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 <h/mh.h>
+#include "h/mh.h"
+#include "error.h"
+#include "h/utils.h"
 
 #define QUOTE '\\'
 
@@ -25,10 +27,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)
@@ -37,8 +38,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 +56,14 @@ new_fs (char *form, char *format, char *default_fs)
 }
 
 
+void
+free_fs(void)
+{
+    free (formats);
+    formats = 0;
+}
+
+
 /*
  * Expand escapes in format strings
  */
@@ -94,7 +102,8 @@ normalize (char *cp)
                    break;
 
                case 0: 
-                   cp--;       /* fall */
+                   cp--;
+                   /* FALLTHRU */
                default: 
                    *dp++ = *cp;
                    break;