X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=examples%2Fto-xml.c;h=45994cb335893267ac046e4b9eb187244b0d39e0;hp=ee1b3bff2e1d7b745d3c85954422bfdc6f4a4fb4;hb=0353688577a27749f40bcc060e5703102c5a9649;hpb=9a8889e4d0c532b9f77af3a9cc7aae06adebfb83 diff --git a/examples/to-xml.c b/examples/to-xml.c index ee1b3bf..45994cb 100644 --- a/examples/to-xml.c +++ b/examples/to-xml.c @@ -25,7 +25,7 @@ * to stderr already. */ #define CALL(call,errcode) \ - if ((call) == (errcode)) exit (1); + if ((call) == (errcode)) exit (EXIT_FAILURE); static void display_partition (guestfs_h *g, const char *dev); static void display_partitions (guestfs_h *g, const char *dev); @@ -39,16 +39,18 @@ main (int argc, char *argv[]) if (argc < 2 || access (argv[1], F_OK) != 0) { fprintf (stderr, "Usage: to-xml guest.img [guest.img ...]\n"); - exit (1); + exit (EXIT_FAILURE); } if (!(g = guestfs_create ())) { fprintf (stderr, "Cannot create libguestfs handle.\n"); - exit (1); + exit (EXIT_FAILURE); } for (i = 1; i < argc; ++i) - CALL (guestfs_add_drive (g, argv[i]), -1); + CALL (guestfs_add_drive_opts (g, argv[i], + GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", + -1), -1); CALL (guestfs_launch (g), -1); @@ -87,8 +89,8 @@ main (int argc, char *argv[]) int len = strlen (vgs[i]); int j; for (j = 0; lvs[j] != NULL; ++j) { - if (STREQLEN (lvs[j], "/dev/", 5) && - STREQLEN (&lvs[j][5], vgs[i], len) && + if (strncmp (lvs[j], "/dev/", 5) == 0 && + strncmp (&lvs[j][5], vgs[i], len) == 0 && lvs[j][len+5] == '/') { int64_t size; CALL (size = guestfs_blockdev_getsize64 (g, lvs[j]), -1); @@ -120,12 +122,12 @@ display_partition (guestfs_h *g, const char *dev) CALL (what = guestfs_file (g, dev), NULL); - if (STREQ (what, "x86 boot sector")) + if (strcmp (what, "x86 boot sector") == 0) /* This is what 'file' program shows for Windows/NTFS partitions. */ printf ("\n"); else if (strstr (what, "boot sector") != NULL) display_partitions (g, dev); - else if (STREQLEN (what, "LVM2", 4)) + else if (strncmp (what, "LVM2", 4) == 0) printf ("\n"); else if (strstr (what, "ext2 filesystem data") != NULL) display_ext234 (g, dev, "ext2"); @@ -149,7 +151,7 @@ display_partitions (guestfs_h *g, const char *dev) * That's a limitation of sorts of the Linux kernel. (Actually, * we could do this if we add the kpartx program to libguestfs). */ - if (STRNEQLEN (dev, "/dev/sd", 7) || isdigit (dev[strlen(dev)-1])) { + if (strncmp (dev, "/dev/sd", 7) != 0 || isdigit (dev[strlen(dev)-1])) { printf ("\n", dev); return; } @@ -162,7 +164,7 @@ display_partitions (guestfs_h *g, const char *dev) len = strlen (dev); for (i = 0; parts[i] != NULL; ++i) { /* Only display partition if it's in the device. */ - if (STREQLEN (parts[i], dev, len)) { + if (strncmp (parts[i], dev, len) == 0) { int64_t size; CALL (size = guestfs_blockdev_getsize64 (g, parts[i]), -1); printf ("\n", parts[i], size); @@ -190,9 +192,9 @@ display_ext234 (guestfs_h *g, const char *dev, const char *fstype) /* Just pick out a few important fields to display. There * is much more that could be displayed here. */ - if (STREQ (sbfields[i], "Filesystem UUID")) + if (strcmp (sbfields[i], "Filesystem UUID") == 0) printf ("%s\n", sbfields[i+1]); - else if (STREQ (sbfields[i], "Block size")) + else if (strcmp (sbfields[i], "Block size") == 0) printf ("%s\n", sbfields[i+1]); free (sbfields[i]);