Don't call perror() if no changes happens in errno
diff --git a/fc-cat/fc-cat.c b/fc-cat/fc-cat.c
index f0131b6..a1dc848 100644
--- a/fc-cat/fc-cat.c
+++ b/fc-cat/fc-cat.c
@@ -342,14 +342,19 @@
 	int	    j;
 	FcChar8	    *cache_file = NULL;
 	struct stat file_stat;
-	
+
+	/* reset errno */
+	errno = 0;
 	if (FcFileIsDir (arg))
 	    cache = FcDirCacheLoad (arg, config, &cache_file);
 	else
 	    cache = FcDirCacheLoadFile (arg, &file_stat);
 	if (!cache)
 	{
-	    perror ((char *) arg);
+	    if (errno != 0)
+		perror ((char *) arg);
+	    else
+		fprintf (stderr, "%s: Unable to load the cache: %s\n", argv[0], arg);
 	    ret++;
 	    continue;
 	}