X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/4a78cbcd4fa986d9c1e7bd0a5a4bdb619faeb7cb..baecaa2380db6164c1992fdffccca8ea9a61d5ba:/uip/annosbr.c diff --git a/uip/annosbr.c b/uip/annosbr.c index 2f40560b..63d2ee44 100644 --- a/uip/annosbr.c +++ b/uip/annosbr.c @@ -32,15 +32,20 @@ annotate (char *file, char *comp, char *text, int inplace, int datesw, int delet int i, fd; struct utimbuf b; struct stat s; + int failed_to_lock = 0; /* open and lock the file to be annotated */ - if ((fd = lkopendata (file, O_RDWR, 0)) == NOTOK) { + if ((fd = lkopendata (file, O_RDWR, 0, &failed_to_lock)) == NOTOK) { switch (errno) { case ENOENT: break; default: - admonish (file, "unable to lock and open"); + if (failed_to_lock) { + admonish (file, "unable to lock"); + } else { + admonish (file, "unable to open"); + } break; } return 1; @@ -112,7 +117,6 @@ annolist(char *file, char *comp, char *text, int number) for (n = 0, cp = field; (c = getc(fp)) != EOF; *cp++ = c) { if (c == '\n' && (c = getc(fp)) != ' ' && c != '\t') { (void)ungetc(c, fp); - c = '\n'; break; } @@ -415,13 +419,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: