Rewrote head to perservere when it can't open a file, and share code
with cat.
This commit is contained in:
20
utility.c
20
utility.c
@@ -1634,12 +1634,14 @@ extern void print_file(FILE *file)
|
||||
extern int print_file_by_name(char *filename)
|
||||
{
|
||||
FILE *file;
|
||||
file = fopen(filename, "r");
|
||||
if (file == NULL) {
|
||||
if ((file = wfopen(filename, "r")) == NULL)
|
||||
return FALSE;
|
||||
print_file(file);
|
||||
if (errno) {
|
||||
errorMsg("%s: %s\n", filename, strerror(errno));
|
||||
errno = 0;
|
||||
return FALSE;
|
||||
}
|
||||
print_file(file);
|
||||
return TRUE;
|
||||
}
|
||||
#endif /* BB_CAT */
|
||||
@@ -1719,6 +1721,18 @@ void xregcomp(regex_t *preg, const char *regex, int cflags)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined BB_CAT || defined BB_HEAD
|
||||
FILE *wfopen(const char *path, const char *mode)
|
||||
{
|
||||
FILE *fp;
|
||||
if ((fp = fopen(path, mode)) == NULL) {
|
||||
errorMsg("%s: %s\n", path, strerror(errno));
|
||||
errno = 0;
|
||||
}
|
||||
return fp;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined BB_HOSTNAME || defined BB_LOADACM || defined BB_MORE || defined BB_SED || defined BB_SH || defined BB_UNIQ || defined BB_WC
|
||||
FILE *xfopen(const char *path, const char *mode)
|
||||
{
|
||||
|
Reference in New Issue
Block a user