Simplification for partmap probing function.
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)
* util/grub-probe.c (probe): Simplify partmap probing (with the
assumption that the first word up to the underscore equals to
the module name).
diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp ../grub2/util/grub-probe.c ./util/grub-probe.c
--- ../grub2/util/grub-probe.c 2008-01-25 23:33:57.000000000 +0100
+++ ./util/grub-probe.c 2008-02-06 17:32:28.000000000 +0100
@@ -133,21 +133,22 @@ probe (const char *path)
if (print == PRINT_PARTMAP)
{
+ char *name;
+ char *underscore;
+
if (dev->disk->partition == NULL)
grub_util_error ("Cannot detect partition map for %s", drive_name);
- if (strcmp (dev->disk->partition->partmap->name, "amiga_partition_map") == 0)
- printf ("amiga\n");
- else if (strcmp (dev->disk->partition->partmap->name, "apple_partition_map") == 0)
- printf ("apple\n");
- else if (strcmp (dev->disk->partition->partmap->name, "gpt_partition_map") == 0)
- printf ("gpt\n");
- else if (strcmp (dev->disk->partition->partmap->name, "pc_partition_map") == 0)
- printf ("pc\n");
- else if (strcmp (dev->disk->partition->partmap->name, "sun_partition_map") == 0)
- printf ("sun\n");
- else
- grub_util_error ("Unknown partition map %s", dev->disk->partition->partmap->name);
+ name = strdup (dev->disk->partition->partmap->name);
+ if (! name)
+ grub_util_error ("not enough memory");
+
+ underscore = strchr (name, '_');
+ if (! underscore)
+ grub_util_error ("Invalid partition map %s", name);
+
+ *underscore = '\0';
+ printf ("%s\n", name);
goto end;
}
_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel