svn commit: r254093 - head/gnu/usr.bin/grep
Andrey A. Chernov
ache at FreeBSD.org
Thu Aug 8 11:53:47 UTC 2013
Author: ache
Date: Thu Aug 8 11:53:47 2013
New Revision: 254093
URL: http://svnweb.freebsd.org/changeset/base/254093
Log:
Part of r245761 makes "grep -D skip" broken for pipes, i.e.
echo xxx | grep -D skip xxx
returns nothing. Instead of just removing added S_ISFIFO condition
(originally absent in this version of grep), make it work as latest
GNU version does: don't skip directories and devices if fd == STDIN_FILENO.
Modified:
head/gnu/usr.bin/grep/grep.c
Modified: head/gnu/usr.bin/grep/grep.c
==============================================================================
--- head/gnu/usr.bin/grep/grep.c Thu Aug 8 11:24:25 2013 (r254092)
+++ head/gnu/usr.bin/grep/grep.c Thu Aug 8 11:53:47 2013 (r254093)
@@ -301,14 +301,16 @@ reset (int fd, char const *file, struct
error (0, errno, "fstat");
return 0;
}
- if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
- return 0;
+ if (fd != STDIN_FILENO) {
+ if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
+ return 0;
#ifndef DJGPP
- if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode)))
+ if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode)))
#else
- if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
+ if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
#endif
- return 0;
+ return 0;
+ }
if (
BZflag ||
#if HAVE_LIBZ > 0
More information about the svn-src-all
mailing list