]> diplodocus.org Git - nmh/blobdiff - uip/mkstemp.c
lock_file.c: close(2) file descriptor on failure, avoiding leak.
[nmh] / uip / mkstemp.c
index ac34c752190fcdd29f1bbd44b7e6bfc4b36f1fdc..f28ccf242a1b68d349bc1c807b5abd7fdb14e2c0 100644 (file)
@@ -15,6 +15,7 @@
 #endif /* HAVE_CONFIG_H */
 #include <unistd.h>
 #include <stdlib.h>
+#include <stdbool.h>
 #include <string.h>
 #include <stdio.h>
 
@@ -22,8 +23,8 @@
 #   define HAVE_MKSTEMPS 0
 #endif /* ! HAVE_MKSTEMPS */
 
-char *build_template(const char *, const char *, const char *);
-void process_args(int, char **, const char **, const char **, const char **);
+static char *build_template(const char *, const char *, const char *);
+static void process_args(int, char **, const char **, const char **, const char **);
 
 /*
  * Use a template of the form:
@@ -41,7 +42,7 @@ main(int argc, char *argv[]) {
 
     process_args(argc, argv, &directory, &prefix, &suffix);
     if ((template = build_template(directory, prefix, suffix)) == NULL) {
-        return -1;
+        return 1;
     }
 
     if ((suffix_len = strlen(suffix)) > 0) {
@@ -61,11 +62,11 @@ main(int argc, char *argv[]) {
 
     free(template);
 
-    return fd >= 0  ?  0  :  -1;
+    return fd >= 0  ?  0  :  1;
 }
 
 
-char *
+static char *
 build_template(const char *directory, const char *prefix, const char *suffix) {
     const char pattern[] = "XXXXXX";
     size_t len, directory_len, pathsep_len, prefix_len, suffix_len;
@@ -117,6 +118,7 @@ build_template(const char *directory, const char *prefix, const char *suffix) {
 
 #if NMH
 #include <h/mh.h>
+#include <h/utils.h>
 
 #if HAVE_MKSTEMPS
 #   define MHFIXMSG_SWITCHES \
@@ -141,7 +143,7 @@ DEFINE_SWITCH_ENUM(MHFIXMSG);
 DEFINE_SWITCH_ARRAY(MHFIXMSG, switches);
 #undef X
 
-void
+static void
 process_args(int argc, char **argv, const char **directory,
              const char **prefix, const char **suffix) {
     char **argp, **arguments, *cp, buf[100];
@@ -149,7 +151,7 @@ process_args(int argc, char **argv, const char **directory,
     NMH_UNUSED(suffix);
 #   endif /* ! HAVE_MKSTEMPS */
 
-    if (nmh_init(argv[0], 2)) { done(NOTOK); }
+    if (nmh_init(argv[0], 2)) { done(1); }
     arguments = getarguments (invo_name, argc, argv, 1);
     argp = arguments;
 
@@ -161,12 +163,12 @@ process_args(int argc, char **argv, const char **directory,
             switch (smatch(++cp, switches)) {
             case AMBIGSW:
                 ambigsw(cp, switches);
-                done(NOTOK);
+                done(1);
             case UNKWNSW:
                 inform("-%s unknown", cp);
                 (void) snprintf(buf, sizeof buf, "%s [switches]", invo_name);
                 print_help(buf, switches, 1);
-                done(NOTOK);
+                done(1);
             case HELPSW:
                 (void) snprintf(buf, sizeof buf, "%s [switches]", invo_name);
                 print_help(buf, switches, 1);
@@ -205,7 +207,7 @@ process_args(int argc, char **argv, const char **directory,
     }
 }
 #else  /* ! NMH */
-void
+static void
 process_args(int argc, char **argv, const char **directory,
              const char **prefix, const char **suffix) {
 #   if HAVE_MKSTEMPS
@@ -234,7 +236,7 @@ process_args(int argc, char **argv, const char **directory,
             exit(0);
         default:
             (void) fprintf(stderr, usage, argv[0]);
-            exit(-1);
+            exit(1);
         }
     }
 }