readlink: Handle multiple input arguments

Handle multiple links as parguments passed to readlink().

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
diff --git a/usr/utils/readlink.c b/usr/utils/readlink.c
index 8b620fd..bf9501b 100644
--- a/usr/utils/readlink.c
+++ b/usr/utils/readlink.c
@@ -3,11 +3,11 @@
 #include <unistd.h>
 #include <sys/stat.h>
 
-char *progname;
+const char *progname;
 
 static __noreturn usage(void)
 {
-	fprintf(stderr, "Usage: %s link\n", progname);
+	fprintf(stderr, "Usage: %s link...\n", progname);
 	exit(1);
 }
 
@@ -16,19 +16,22 @@
 	const char *name;
 	char link_name[PATH_MAX];
 	int rv;
+	int i;
 
 	progname = *argv++;
 
-	name = *argv++;
-	if (!name)
+	if (argc < 2)
 		usage();
 
-	rv = readlink(name, link_name, sizeof link_name - 1);
-	if (rv < 0) {
-		perror(name);
-		exit(1);
+	while ((name = *argv++)) {
+		rv = readlink(name, link_name, sizeof link_name - 1);
+		if (rv < 0) {
+			perror(name);
+			exit(1);
+		}
+		link_name[rv] = '\0';
+		puts(link_name);
 	}
-	link_name[rv] = '\0';
-	puts(link_name);
-	exit(0);
+
+	return 0;
 }