aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerass El Hafidi <vitali64pmemail@protonmail.com>2023-03-02 12:51:02 +0100
committerFerass El Hafidi <vitali64pmemail@protonmail.com>2023-03-02 12:51:02 +0100
commit67812f624013eaa6f39baea397be976ad8994700 (patch)
treed7a0074659cb86941aad42a21e7e22be402f9cc2
parent62135c100b835a2a22f5876c1d5d03ba69d454f3 (diff)
downloadfases-67812f624013eaa6f39baea397be976ad8994700.tar.gz
fases-67812f624013eaa6f39baea397be976ad8994700.zip
core/cat: Fix bug - see description
`cat` used to not concatenate at all when ran like this: $ cat It did read standard input, but did not output anything to standard output. fdopen() was used on STDIN_FILENO when it shouldn't. Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
-rw-r--r--core/cat.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/core/cat.c b/core/cat.c
index 08d1866..60833aa 100644
--- a/core/cat.c
+++ b/core/cat.c
@@ -49,7 +49,8 @@ int cat(int fildes, int unbuffered) {
if (unbuffered) while ((length = read(fildes, s, 4096)) > 0)
write(STDOUT_FILENO, s, length);
else {
- filstr = fdopen(fildes, "r");
+ if (fildes != STDIN_FILENO) filstr = fdopen(fildes, "r");
+ else filstr = stdin;
while ((length = fread(s, 4096, 1, filstr)) > 0)
fwrite(s, length, 1, stdout);
}