diff --git a/trincat.c b/trincat.c deleted file mode 100644 index 7a3e389..0000000 --- a/trincat.c +++ /dev/null @@ -1,78 +0,0 @@ -#include /* maybe */ -#include /* no */ -#include /* sure */ -#include /* no */ -#include /* yes */ -#include /* yes */ -#include /* maybe */ -#include /* yes */ -#define BUF_SIZE 4096 - -unsigned char u = 0; /* unbuffered */ -unsigned char buf[BUF_SIZE]; - -void usage(char *argv0){ - fprintf(stderr, "Usage: %s (-u) (file...)\n", argv0); - exit(EX_USAGE); -} - -int main(int argc, char *argv[]) { - char *argv0; - extern int optind; - int c; - FILE *in; - argv0 = argv[0]; - - while ((c = getopt(argc, argv, "u")) != -1) { - switch(c) { - /* - * From cat(1p): - * - * -u Write bytes from the input file to the standard output - * without delay as each is read. - */ - case 'u': - u = 1; - break; - default: - usage(argv[0]); - } - } - - while(++argv != NULL) /* increments over argv[0] */ - /* - * From cat(1p): - * - * file A pathname of an input file. If no file operands are - * specified, the standard input shall be used. If a file is - * '-', the cat utility shall read from the standard input at - * that point in the sequence. The cat utility shall not close - * and reopen standard input when it is referenced in this way, - * but shall accept multiple occurrences of '-' as a file - * operand. - */ - if(argv[0][0] == '-' && argv[0][1] == '\0') in = stdin; - else if ((in = fopen(argv[0], "r")) == NULL) { - // TODO: Add error handling - usage(argv0); - return EX_NOINPUT; - } - - int byte = 0; - char *buf = calloc(4096, 1); - - while ((c = fgetc(in) != EOF)) { - if (u) { - putchar(c); - } else { - /* fucky wucky buffering */ - } - } - - if(!u) fputs(buf, stdout); - - if(in != stdin) fclose(file); /* who cares if it cant close */ - } - - return EX_OK; - }