Make pipe wait for its children
[minish.git] / src / minish-read.c
blobc7fe121357b3546df5070aa558cdc1dfd747f4dd
1 #define _POSIX_C_SOURCE 200809L
2 #include <errno.h>
3 #include <locale.h>
4 #include <stdio.h>
6 int main(int argc, char** argv) {
7 setlocale(LC_ALL, "");
8 char const* const name = argv[0] ? argv[0] : "minish-read";
9 char const* const file = argc ? argv[1] : NULL;
10 for (;;) {
11 int const c = getchar();
12 switch (c) {
13 case EOF:
14 if (ferror(stdin)) {
15 int const tmp = errno;
16 fprintf(stderr, "%s: ", name);
17 errno = tmp;
18 perror(file);
19 return 1;
21 return 2;
22 case '\n': return 0;
24 putchar(c);