X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/2f689a1cb907a5de04e6d39ffd217a69af3216c7..e38cc16e06bbbd80a0fc02585e736fbc3dee7221:/uip/annosbr.c diff --git a/uip/annosbr.c b/uip/annosbr.c index 7f1bdde7..88c90f44 100644 --- a/uip/annosbr.c +++ b/uip/annosbr.c @@ -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 #include #include -#include #include @@ -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: