]> diplodocus.org Git - nmh/blobdiff - uip/mhshowsbr.c
lock_file.c: close(2) file descriptor on failure, avoiding leak.
[nmh] / uip / mhshowsbr.c
index 6f8a978f4a8499af145e27cee484749dd35d3cc0..ebb295b7c57a38a412e74c894b950271c86fe7b2 100644 (file)
 #include <h/mhparse.h>
 #include <h/fmt_scan.h>
 #include <h/utils.h>
+#include "mhmisc.h"
 #include "mhshowsbr.h"
-#include "../sbr/m_mktemp.h"
+#include "sbr/m_mktemp.h"
 #ifdef HAVE_ICONV
 #   include <iconv.h>
 #endif /* ! HAVE_ICONV */
 
 extern int debugsw;
-extern int npart;
-extern int ntype;
 
 int nolist   = 0;
 
@@ -33,20 +32,13 @@ char *progsw = NULL;
 int nomore   = 0;
 char *formsw = NULL;
 
-/* for output markerss and headers */
+/* for output markers and headers */
 char *folder = NULL;
 char *markerform;
 char *headerform;
 int headersw = -1;
 
 
-/* mhmisc.c */
-int part_ok (CT);
-int part_exact (CT);
-int type_ok (CT, int);
-void content_error (char *, CT, char *, ...);
-void flush_errors (void);
-
 /*
  * static prototypes
  */
@@ -201,7 +193,7 @@ static void
 DisplayMsgHeader (CT ct, char *form, int concatsw)
 {
     pid_t child_id;
-    int i, vecp;
+    int vecp;
     char **vec;
     char *file;
 
@@ -225,9 +217,7 @@ DisplayMsgHeader (CT ct, char *form, int concatsw)
 
     fflush (stdout);
 
-    for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
-       sleep (5);
-
+    child_id = fork();
     switch (child_id) {
     case NOTOK:
        adios ("fork", "unable to");
@@ -404,7 +394,7 @@ show_content_aux2 (CT ct, int alternate, char *cracked, char *buffer,
                    int fd, int xlist, int xstdin, struct format *fmt)
 {
     pid_t child_id;
-    int i, vecp;
+    int vecp;
     char **vec, *file;
 
     if (debugsw || cracked) {
@@ -474,8 +464,7 @@ show_content_aux2 (CT ct, int alternate, char *cracked, char *buffer,
 
     fflush (stdout);
 
-    for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
-       sleep (5);
+    child_id = fork();
     switch (child_id) {
        case NOTOK:
            advise ("fork", "unable to");
@@ -714,7 +703,7 @@ show_multi_aux (CT ct, int alternate, char *cp, struct format *fmt)
            if ((*p->c_ceopenfnx) (p, &file) == NOTOK)
                return NOTOK;
 
-           p->c_storage = add (file, NULL);
+           p->c_storage = mh_xstrdup(FENDNULL(file));
 
            if (p->c_showproc && !strcmp (p->c_showproc, "true"))
                return OK;
@@ -1220,7 +1209,7 @@ iconv_start:
                replace_param(&ct->c_ctinfo.ci_first_pm,
                              &ct->c_ctinfo.ci_last_pm, "charset",
                              dest_charset, 0);
-               outline = output_params(strlen(TYPE_FIELD) + 1 + strlen(ctline),
+               outline = output_params(LEN(TYPE_FIELD) + 1 + strlen(ctline),
                                        ct->c_ctinfo.ci_first_pm, NULL, 0);
                if (outline) {
                    ctline = add(outline, ctline);