]> diplodocus.org Git - nmh/blobdiff - uip/annosbr.c
Remove unused variable, and make sure we free c_dispo_type.
[nmh] / uip / annosbr.c
index 7f1bdde70977daf06a3a84df3395d6d7a7372b18..88c90f44eca8fc871381945280240d4dc4d127eb 100644 (file)
@@ -2,8 +2,6 @@
 /*
  * annosbr.c -- prepend annotation to messages
  *
- * $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.
@@ -13,7 +11,6 @@
 #include <h/tws.h>
 #include <h/utils.h>
 #include <fcntl.h>
-#include <errno.h>
 #include <utime.h>
 
 
@@ -37,7 +34,7 @@ annotate (char *file, char *comp, char *text, int inplace, int datesw, int delet
     struct stat                s;
 
     /* open and lock the file to be annotated */
-    if ((fd = lkopen (file, O_RDWR, 0)) == NOTOK) {
+    if ((fd = lkopendata (file, O_RDWR, 0)) == NOTOK) {
        switch (errno) {
            case ENOENT:
                break;
@@ -62,7 +59,7 @@ annotate (char *file, char *comp, char *text, int inplace, int datesw, int delet
     if (preserve_actime_and_modtime && utime(file, &b) == -1)
        advise("can't set access and modification times for %s", file);
 
-    lkclose (fd, file);
+    lkclosedata (fd, file);
     return i;
 }
 
@@ -185,9 +182,12 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
     int                length;         /* length of field name */
     int                n;              /* number of bytes written */
 
-    mode = fstat (fd, &st) != NOTOK ? (st.st_mode & 0777) : m_gmprot ();
+    mode = fstat (fd, &st) != NOTOK ? (int) (st.st_mode & 0777) : m_gmprot ();
 
-    strncpy (tmpfil, m_mktemp2(file, "annotate", NULL, &tmp), sizeof(tmpfil));
+    if ((cp = m_mktemp2(file, "annotate", NULL, &tmp)) == NULL) {
+       adios(NULL, "unable to create temporary file in %s", get_temp_dir());
+    }
+    strncpy (tmpfil, cp, sizeof(tmpfil));
     chmod (tmpfil, mode);
 
     /*
@@ -415,13 +415,13 @@ annosbr (int fd, char *file, char *comp, char *text, int inplace, int datesw, in
 
        cpydata (tmpfd, fd, tmpfil, file);
        close (tmpfd);
-       unlink (tmpfil);
+       (void) m_unlink (tmpfil);
     } else {
        strncpy (buffer, m_backup (file), sizeof(buffer));
        if (rename (file, buffer) == NOTOK) {
            switch (errno) {
                case ENOENT:    /* unlinked early - no annotations */
-                   unlink (tmpfil);
+                   (void) m_unlink (tmpfil);
                    break;
 
                default: