fish: Fix guestfish -N option when called with unknown image type.
authorRichard Jones <rjones@redhat.com>
Wed, 12 May 2010 18:01:29 +0000 (19:01 +0100)
committerRichard Jones <rjones@redhat.com>
Thu, 13 May 2010 15:22:10 +0000 (16:22 +0100)
Previously it was falling off the end of the loop if you
called it with an unknown image type.

fish/prep.c

index 6fd1d6b..6fe4ba9 100644 (file)
@@ -104,6 +104,8 @@ static const struct prep preps[] = {
   },
 };
 
+#define nr_preps (sizeof preps / sizeof preps[0])
+
 void
 list_prepared_drives (void)
 {
@@ -111,7 +113,7 @@ list_prepared_drives (void)
 
   printf (_("List of available prepared disk images:\n\n"));
 
-  for (i = 0; i < sizeof preps / sizeof preps[0]; ++i) {
+  for (i = 0; i < nr_preps; ++i) {
     printf (_("\
 guestfish -N %-16s %s\n\
 \n\
@@ -169,11 +171,11 @@ parse_type_string (const char *type_string)
 
   /* Match on the type part (without parameters). */
   size_t len = strcspn (type_string, ":");
-  for (i = 0; i < sizeof preps / sizeof preps[0]; ++i)
+  for (i = 0; i < nr_preps; ++i)
     if (STRCASEEQLEN (type_string, preps[i].name, len))
       break;
 
-  if (preps[i].name == NULL) {
+  if (i == nr_preps) {
     fprintf (stderr, _("\
 guestfish: -N parameter '%s': no such prepared disk image known.\n\
 Use 'guestfish -N list' to list possible values for the -N parameter.\n"),