]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
hardlink: use only err.h to print errors and warnings
authorKarel Zak <kzak@redhat.com>
Thu, 4 Feb 2021 12:56:45 +0000 (13:56 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 17 Feb 2021 10:50:21 +0000 (11:50 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
misc-utils/hardlink.c

index 624bf0547afba205a524672eb9a3d6fffdf2652c..23619a7cdf07f36d3210a8f0c28f8d1af2ee093c 100644 (file)
@@ -83,20 +83,12 @@ struct file {
 
 /**
  * enum log_level - Logging levels
- * @JLOG_SYSFAT:  Fatal error message with errno, will be printed to stderr
- * @JLOG_FATAL:   Fatal error message with errno, will be printed to stderr
- * @JLOG_SYSERR:  Error message with errno, will be printed to stderr
- * @JLOG_ERROR:   Error message, will be printed to stderr
  * @JLOG_SUMMARY: Default log level
  * @JLOG_INFO:    Verbose logging (verbose == 1)
  * @JLOG_DEBUG1:  Verbosity 2
  * @JLOG_DEBUG2:  Verbosity 3
  */
 enum log_level {
-    JLOG_SYSFAT = -4,
-    JLOG_FATAL = -3,
-    JLOG_SYSERR = -2,
-    JLOG_ERROR = -1,
     JLOG_SUMMARY,
     JLOG_INFO,
     JLOG_DEBUG1,
@@ -191,21 +183,13 @@ __attribute__ ((format(printf, 2, 3)))
 static void jlog(enum log_level level, const char *format, ...)
 {
     FILE *stream = (level >= 0) ? stdout : stderr;
-    int errno_ = errno;
     va_list args;
 
-    if (level <= opts.verbosity) {
-        if (level <= JLOG_FATAL)
-            fprintf(stream, "ERROR: ");
-        else if (level < 0)
-            fprintf(stream, "WARNING: ");
+    if (level <= (unsigned int) opts.verbosity) {
         va_start(args, format);
         vfprintf(stream, format, args);
         va_end(args);
-        if (level == JLOG_SYSERR || level == JLOG_SYSFAT)
-            fprintf(stream, ": %s\n", strerror(errno_));
-        else
-            fputc('\n', stream);
+        fputc('\n', stream);
     }
 }
 
@@ -599,11 +583,9 @@ static int file_contents_equal(const struct file *a, const struct file *b)
     return !handle_interrupt() && cmp == 0;
   err:
     if (fa == NULL || fb == NULL)
-        jlog(JLOG_SYSERR, "Cannot open %s",
-             fa ? b->links->path : a->links->path);
+        warn(_("cannot open %s"), fa ? b->links->path : a->links->path);
     else
-        jlog(JLOG_SYSERR, "Cannot read %s",
-             ferror(fa) ? a->links->path : b->links->path);
+        warn(_("cannot read %s"), ferror(fa) ? a->links->path : b->links->path);
     cmp = 1;
     goto out;
 }
@@ -689,12 +671,11 @@ static int file_link(struct file *a, struct file *b)
         snprintf(new_path, len, "%s.hardlink-temporary", b->links->path);
 
         if (link(a->links->path, new_path) != 0) {
-            jlog(JLOG_SYSERR, "Cannot link %s to %s", a->links->path, new_path);
+            warn(_("cannot link %s to %s"), a->links->path, new_path);
             free(new_path);
             return FALSE;
         } else if (rename(new_path, b->links->path) != 0) {
-            jlog(JLOG_SYSERR, "Cannot rename %s to %s", a->links->path,
-                 new_path);
+            warn(_("cannot rename %s to %s"), a->links->path, new_path);
             unlink(new_path);   /* cleanup failed rename */
             free(new_path);
             return FALSE;
@@ -750,7 +731,7 @@ static int inserter(const char *fpath, const struct stat *sb, int typeflag,
     if (handle_interrupt())
         return 1;
     if (typeflag == FTW_DNR || typeflag == FTW_NS)
-        jlog(JLOG_SYSERR, "Cannot read %s", fpath);
+        warn(_("cannot read %s"), fpath);
     if (typeflag != FTW_F || !S_ISREG(sb->st_mode))
         return 0;
 
@@ -784,7 +765,7 @@ static int inserter(const char *fpath, const struct stat *sb, int typeflag,
     node = tsearch(fil, &files_by_ino, compare_nodes_ino);
 
     if (node == NULL)
-        return jlog(JLOG_SYSFAT, "Cannot continue"), 1;
+        goto fail;
 
     if (*node != fil) {
         /* Already known inode, add link to inode information */
@@ -800,7 +781,7 @@ static int inserter(const char *fpath, const struct stat *sb, int typeflag,
         node = tsearch(fil, &files, compare_nodes);
 
         if (node == NULL)
-            return jlog(JLOG_SYSFAT, "Cannot continue"), 1;
+            goto fail;
 
         if (*node != fil) {
             struct file *l;
@@ -823,6 +804,10 @@ static int inserter(const char *fpath, const struct stat *sb, int typeflag,
     }
 
     return 0;
+
+fail:
+    warn(_("cannot continue"));        /* probably ENOMEM */
+    return 0;
 }
 
 /**
@@ -1070,7 +1055,7 @@ int main(int argc, char *argv[])
 
     for (; optind < argc; optind++)
         if (nftw(argv[optind], inserter, 20, FTW_PHYS) == -1)
-            jlog(JLOG_SYSERR, "Cannot process %s", argv[optind]);
+            warn(_("cannot process %s"), argv[optind]);
 
     twalk(files, visitor);