X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/decba3ae733cffef86ead3a22eac6e717eaed90d..32cbfe7b17ba8ec661fc27fd773909709d100e8a:/tls.c diff --git a/tls.c b/tls.c index 3af402fd..6c0466f8 100644 --- a/tls.c +++ b/tls.c @@ -49,17 +49,16 @@ int list_only = 0; int preserve_perms = 0; -static void failed (char const *what, - char const *where) +static void failed(char const *what, char const *where) { - fprintf (stderr, PROGRAM ": %s %s: %s\n", - what, where, strerror (errno)); - exit (1); + fprintf(stderr, PROGRAM ": %s %s: %s\n", + what, where, strerror(errno)); + exit(1); } -static void list_file (const char *fname) +static void list_file(const char *fname) { STRUCT_STAT buf; char permbuf[PERMSTRING_SIZE]; @@ -67,8 +66,8 @@ static void list_file (const char *fname) char datebuf[50]; char linkbuf[4096]; - if (do_lstat(fname, &buf) == -1) - failed ("stat", fname); + if (do_lstat(fname, &buf) < 0) + failed("stat", fname); /* The size of anything but a regular file is probably not * worth thinking about. */ @@ -114,9 +113,11 @@ static void list_file (const char *fname) /* TODO: Perhaps escape special characters in fname? */ printf("%s ", permbuf); - if (IS_DEVICE(buf.st_mode)) - printf("%6d,%5d", major(buf.st_rdev), minor(buf.st_rdev)); - else /* NB: use double for size because it might not fit in a long. */ + if (S_ISCHR(buf.st_mode) || S_ISBLK(buf.st_mode)) { + printf("%5ld,%6ld", + (long)major(buf.st_rdev), + (long)minor(buf.st_rdev)); + } else /* NB: use double for size since it might not fit in a long. */ printf("%12.0f", (double)buf.st_size); printf(" %6ld.%-6ld %6ld %s %s%s\n", (long)buf.st_uid, (long)buf.st_gid, (long)buf.st_nlink, @@ -128,13 +129,13 @@ int main(int argc, char *argv[]) { if (argc < 2) { - fprintf (stderr, "usage: " PROGRAM " DIR ...\n" - "Trivial file listing program for portably checking rsync\n"); + fprintf(stderr, "usage: " PROGRAM " DIR ...\n" + "Trivial file listing program for portably checking rsync\n"); return 1; } for (argv++; *argv; argv++) { - list_file (*argv); + list_file(*argv); } return 0;