]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
The test, tests/tail/f-1, failed on powerpc-apple-darwin7.7.0.
authorJim Meyering <jim@meyering.net>
Fri, 14 Jan 2005 16:30:15 +0000 (16:30 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 14 Jan 2005 16:30:15 +0000 (16:30 +0000)
(IS_TAILABLE_FILE_TYPE): Adjust definition also to include
sockets, since that's what you get when reading from a command-line-
supplied pipe on Darwin 7.7.
(IS_PIPE_LIKE_FILE_TYPE): Define.
(main): Use new IS_PIPE_LIKE_FILE_TYPE rather than simply S_ISFIFO.
This same change is also required on NetBSD/sparc-1.5.
Reported by Adrian Bunk.

src/tail.c

index f09fbd6173141eb42ecf5a74ff4f3dcc07fa4b47..1fbb1cf65ff26d75d0a522c5e088a0a21df70c40 100644 (file)
@@ -1,5 +1,5 @@
 /* tail -- output the last part of file(s)
-   Copyright (C) 1989, 90, 91, 1995-2004 Free Software Foundation, Inc.
+   Copyright (C) 1989, 90, 91, 1995-2005 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -79,9 +79,14 @@ enum Follow_mode
   Follow_descriptor = 2
 };
 
+/* On Darwin 7.7, when reading from a command-line pipe, standard
+   input is of type S_ISSOCK.  Everywhere else it's S_ISFIFO.  */
+#define IS_PIPE_LIKE_FILE_TYPE(Mode) \
+  (S_ISFIFO (Mode) || S_ISSOCK (Mode))
+
 /* The types of files for which tail works.  */
 #define IS_TAILABLE_FILE_TYPE(Mode) \
-  (S_ISREG (Mode) || S_ISFIFO (Mode) || S_ISCHR (Mode))
+  (S_ISREG (Mode) || IS_PIPE_LIKE_FILE_TYPE (Mode) || S_ISCHR (Mode))
 
 static char const *const follow_mode_string[] =
 {
@@ -1650,7 +1655,8 @@ main (int argc, char **argv)
       if (forever)
        {
          struct stat stats;
-         if (fstat (STDIN_FILENO, &stats) == 0 && S_ISFIFO (stats.st_mode))
+         if (fstat (STDIN_FILENO, &stats) == 0
+             && IS_PIPE_LIKE_FILE_TYPE (stats.st_mode))
            forever = false;
        }
     }