- Updated the address for the FSF in the opening comment.
[rsync/rsync.git] / tls.c
diff --git a/tls.c b/tls.c
index 8c2a421..2f5b6b4 100644 (file)
--- a/tls.c
+++ b/tls.c
@@ -1,6 +1,8 @@
-/* -*- c-file-style: "linux" -*-
+/*
+ * Trivial ls for comparing two directories after running an rsync.
  *
- * Copyright (C) 2001, 2002 by Martin Pool <mbp@samba.org>
+ * Copyright (C) 2001, 2002 Martin Pool <mbp@samba.org>
+ * Copyright (C) 2003, 2004, 2005 Wayne Davison
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License version
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-/**
- * @file tls.c
- *
- * Trivial @c ls for comparing two directories after running an rsync.
- *
- * The problem with using the system's own ls is that some features
+/* The problem with using the system's own ls is that some features
  * have little quirks that make directories look different when for
  * our purposes they're the same -- for example, the BSD braindamage
  * about setting the mode on symlinks based on your current umask.
@@ -34,9 +31,7 @@
  *
  * A key requirement for this program is that the output be "very
  * reproducible."  So we mask away information that can accidentally
- * change.
- **/
-
+ * change. */
 
 #include "rsync.h"
 
@@ -48,7 +43,6 @@ int read_only = 1;
 int list_only = 0;
 int preserve_perms = 0;
 
-
 static void failed(char const *what, char const *where)
 {
        fprintf(stderr, PROGRAM ": %s %s: %s\n",
@@ -56,8 +50,6 @@ static void failed(char const *what, char const *where)
        exit(1);
 }
 
-
-
 static void list_file(const char *fname)
 {
        STRUCT_STAT buf;
@@ -66,7 +58,7 @@ static void list_file(const char *fname)
        char datebuf[50];
        char linkbuf[4096];
 
-       if (do_lstat(fname, &buf) == -1)
+       if (do_lstat(fname, &buf) < 0)
                failed("stat", fname);
 
        /* The size of anything but a regular file is probably not
@@ -100,12 +92,12 @@ static void list_file(const char *fname)
                mt = gmtime(&buf.st_mtime);
 
                sprintf(datebuf, "%04d-%02d-%02d %02d:%02d:%02d",
-                       mt->tm_year + 1900,
-                       mt->tm_mon + 1,
-                       mt->tm_mday,
-                       mt->tm_hour,
-                       mt->tm_min,
-                       mt->tm_sec);
+                       (int)mt->tm_year + 1900,
+                       (int)mt->tm_mon + 1,
+                       (int)mt->tm_mday,
+                       (int)mt->tm_hour,
+                       (int)mt->tm_min,
+                       (int)mt->tm_sec);
        } else {
                strcpy(datebuf, "                   ");
        }
@@ -113,7 +105,7 @@ static void list_file(const char *fname)
        /* TODO: Perhaps escape special characters in fname? */
 
        printf("%s ", permbuf);
-       if (IS_DEVICE(buf.st_mode)) {
+       if (S_ISCHR(buf.st_mode) || S_ISBLK(buf.st_mode)) {
                printf("%5ld,%6ld",
                    (long)major(buf.st_rdev),
                    (long)minor(buf.st_rdev));
@@ -124,7 +116,6 @@ static void list_file(const char *fname)
               datebuf, fname, linkbuf);
 }
 
-
 int
 main(int argc, char *argv[])
 {