Rewrote head to perservere when it can't open a file, and share code
with cat.
diff --git a/utility.c b/utility.c
index df2515c..03d6497 100644
--- a/utility.c
+++ b/utility.c
@@ -1634,12 +1634,14 @@
 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 @@
 }
 #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)
 {