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;
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;
}
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: