sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit d9abff1e84d0c1ea41cfa2305502cb3d0a76ba34
parent 7add068ade75040aee0512a7c8452832a4dbbbd0
Author: sin <sin@2f30.org>
Date:   Tue, 12 Nov 2013 10:44:37 +0000

Don't exit on the first file that can't be opened for head and fold

Diffstat:
Mfold.c | 9+++++++--
Mhead.c | 8++++++--
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/fold.c b/fold.c @@ -1,8 +1,10 @@ /* See LICENSE file for copyright and license details. */ #include <ctype.h> +#include <errno.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <unistd.h> #include "text.h" #include "util.h" @@ -45,8 +47,11 @@ main(int argc, char *argv[]) if(argc == 0) { fold(stdin, width); } else for(; argc > 0; argc--, argv++) { - if(!(fp = fopen(argv[0], "r"))) - eprintf("fopen %s:", argv[0]); + if(!(fp = fopen(argv[0], "r"))) { + fprintf(stderr, "fopen %s: %s\n", argv[0], + strerror(errno)); + continue; + } fold(fp, width); fclose(fp); } diff --git a/head.c b/head.c @@ -1,4 +1,5 @@ /* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -33,8 +34,11 @@ main(int argc, char *argv[]) if(argc == 0) { head(stdin, "<stdin>", n); } else for(; argc > 0; argc--, argv++) { - if(!(fp = fopen(argv[0], "r"))) - eprintf("fopen %s:", argv[0]); + if(!(fp = fopen(argv[0], "r"))) { + fprintf(stderr, "fopen %s: %s\n", argv[0], + strerror(errno)); + continue; + } head(fp, argv[0], n); fclose(fp); }