/* See LICENSE file for copyright and license details. */ #include #include #include "text.h" #include "util.h" static void usage(void) { eprintf("usage: %s [-u] [file ...]\n", argv0); } int main(int argc, char *argv[]) { FILE *fp; int ret = 0; ARGBEGIN { case 'u': setbuf(stdout, NULL); break; default: usage(); } ARGEND; if (!argc) { concat(stdin, "", stdout, ""); } else { for (; *argv; argc--, argv++) { if ((*argv)[0] == '-' && !(*argv)[1]) { concat(stdin, "", stdout, ""); } else if (!(fp = fopen(*argv, "r"))) { weprintf("fopen %s:", *argv); ret = 1; } else { concat(fp, *argv, stdout, ""); if (fshut(fp, *argv)) { ret = 1; } } } } return !!(fshut(stdin, "") + fshut(stdout, "")) || ret; }