Ouch. ok nicm
You can add this regress test as well:
Index: regress/usr.bin/file//Makefile
===================================================================
RCS file: /cvs/src/regress/usr.bin/file/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- regress/usr.bin/file//Makefile 1 May 2016 11:28:06 -0000 1.7
+++ regress/usr.bin/file//Makefile 28 Jun 2017 17:18:35 -0000
@@ -4,7 +4,7 @@ FILE=file
REGRESS_TARGETS=t0 t1 t2 t3 t4 t5 t6 t7 \
t8 t9 t10 t11 t15 t17 t18 t19 \
- t20 t21 t22 t30 t31 t32 t33
+ t20 t21 t22 t30 t31 t32 t33 stdin
# .in: input file
# .out: desired result
@@ -17,6 +17,12 @@ all: ${REGRESS_TARGET}
@echo ${*}
@${FILE} ${.CURDIR}/${*}.in | \
sed -e "s@${.CURDIR}/@@" | \
+ diff - ${.CURDIR}/${*}.out || \
+ (echo "XXX ${*} failed" && false)
+
+stdin:
+ @echo ${*}
+ @${FILE} - </dev/null | \
diff - ${.CURDIR}/${*}.out || \
(echo "XXX ${*} failed" && false)
Index: regress/usr.bin/file//stdin.out
===================================================================
RCS file: regress/usr.bin/file//stdin.out
diff -N regress/usr.bin/file//stdin.out
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ regress/usr.bin/file//stdin.out 28 Jun 2017 17:13:53 -0000
@@ -0,0 +1 @@
+/dev/stdin: empty
On Wed, Jun 28, 2017 at 12:43:52PM -0400, Bryan Steele wrote:
> My latest commit broke support for stdin input, whoops.
>
> ok?
>
> Index: file.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/file/file.c,v
> retrieving revision 1.62
> diff -u -p -u -r1.62 file.c
> --- file.c 28 Jun 2017 15:42:49 -0000 1.62
> +++ file.c 28 Jun 2017 16:42:40 -0000
> @@ -217,12 +217,16 @@ prepare_input(struct input_file *inf, co
> {
> int fd, mode, error;
>
> + inf->path = path;
> +
> if (strcmp(path, "-") == 0) {
> if (fstat(STDIN_FILENO, &inf->sb) == -1) {
> inf->error = errno;
> inf->fd = -1;
> + return;
> }
> inf->fd = STDIN_FILENO;
> + return;
> }
>
> if (Lflag)
> @@ -232,6 +236,7 @@ prepare_input(struct input_file *inf, co
> if (error == -1) {
> inf->error = errno;
> inf->fd = -1;
> + return;
> }
>
> /* We don't need them, so don't open directories or symlinks. */
> @@ -245,7 +250,6 @@ prepare_input(struct input_file *inf, co
> if (S_ISLNK(mode))
> read_link(inf, path);
> inf->fd = fd;
> - inf->path = path;
> }
>
> static void
>