From bc33539b11d78b82ed04a91f28f5de9dbd02aa0b Mon Sep 17 00:00:00 2001 From: Benno Schulenberg <bensberg@justemail.net> Date: Tue, 17 May 2016 14:35:49 +0200 Subject: [PATCH] files: upgrade the locking errors, so they will not be overwritten Make the failures to read or write a lock file into important messages, so they will not be overwritten by the number of lines read. --- src/files.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/files.c b/src/files.c index f09adb7d..90d9ed73 100644 --- a/src/files.c +++ b/src/files.c @@ -145,7 +145,7 @@ void set_modified(void) if (openfile->lock_filename == NULL) { /* TRANSLATORS: Keep the next two messages at most 76 characters. */ - statusbar(_("Warning: Modifying a file which is not locked," + statusline(ALERT, _("Warning: Modifying a file which is not locked," " check directory permission?")); } else { char *fullname = get_full_path(openfile->filename); @@ -184,7 +184,8 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi * old state. */ myuid = geteuid(); if ((mypwuid = getpwuid(myuid)) == NULL) { - statusbar(_("Couldn't determine my identity for lock file (getpwuid() failed)")); + statusline(ALERT, _("Couldn't determine my identity for lock file " + "(getpwuid() failed)")); goto free_and_fail; } mypid = getpid(); @@ -193,7 +194,7 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi if (errno == ENAMETOOLONG) myhostname[31] = '\0'; else { - statusline(HUSH, _("Couldn't determine hostname for lock file: %s"), + statusline(ALERT, _("Couldn't determine hostname for lock file: %s"), strerror(errno)); goto free_and_fail; } @@ -215,7 +216,7 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi /* Maybe we just don't have write access. Print an error message * and continue. */ if (fd < 0) { - statusline(HUSH, _("Error writing lock file %s: %s"), + statusline(ALERT, _("Error writing lock file %s: %s"), lockfilename, strerror(errno)); free(lockdata); return 0; @@ -226,8 +227,8 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi filestream = fdopen(fd, "wb"); if (fd < 0 || filestream == NULL) { - statusline(HUSH, _("Error writing lock file %s: %s"), lockfilename, - strerror(errno)); + statusline(ALERT, _("Error writing lock file %s: %s"), lockfilename, + strerror(errno)); goto free_and_fail; } @@ -263,7 +264,7 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi wroteamt = fwrite(lockdata, sizeof(char), lockdatalen, filestream); if (wroteamt < lockdatalen) { - statusline(HUSH, _("Error writing lock file %s: %s"), + statusline(ALERT, _("Error writing lock file %s: %s"), lockfilename, ferror(filestream)); goto free_and_fail; } @@ -273,7 +274,7 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi #endif if (fclose(filestream) == EOF) { - statusline(HUSH, _("Error writing lock file %s: %s"), + statusline(ALERT, _("Error writing lock file %s: %s"), lockfilename, strerror(errno)); goto free_and_fail; } @@ -293,7 +294,7 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi int delete_lockfile(const char *lockfilename) { if (unlink(lockfilename) < 0 && errno != ENOENT) { - statusline(HUSH, _("Error deleting lock file %s: %s"), lockfilename, + statusline(ALERT, _("Error deleting lock file %s: %s"), lockfilename, strerror(errno)); return -1; } @@ -328,7 +329,7 @@ int do_lockfile(const char *filename) int room, ans; if ((lockfd = open(lockfilename, O_RDONLY)) < 0) { - statusline(HUSH, _("Error opening lock file %s: %s"), + statusline(ALERT, _("Error opening lock file %s: %s"), lockfilename, strerror(errno)); goto free_the_name; } @@ -340,7 +341,7 @@ int do_lockfile(const char *filename) } while (readamt > 0 && readtot < LOCKBUFSIZE); if (readtot < 48) { - statusline(HUSH, _("Error reading lock file %s: " + statusline(ALERT, _("Error reading lock file %s: " "Not enough data read"), lockfilename); free(lockbuf); goto free_the_name; -- GitLab