/* Complete the partition part. */
dev = grub_device_open (devname);
- if (dev)
+ if (!dev)
{
- char tmp[grub_strlen (devname) + sizeof (",")];
+ grub_errno = GRUB_ERR_NONE;
+ return 0;
+ }
+ {
+ char tmp[grub_strlen (devname) + sizeof (",")];
- grub_memcpy (tmp, devname, grub_strlen (devname));
+ grub_memcpy (tmp, devname, grub_strlen (devname));
- if (grub_strcmp (devname, current_word) == 0)
- {
- if (add_completion (devname, ")", GRUB_COMPLETION_TYPE_PARTITION))
+ if (grub_strcmp (devname, current_word) == 0)
+ {
+ if (add_completion (devname, ")", GRUB_COMPLETION_TYPE_PARTITION))
+ {
+ grub_device_close (dev);
return 1;
+ }
- if (dev->disk)
- if (grub_partition_iterate (dev->disk, iterate_partition))
+ if (dev->disk)
+ if (grub_partition_iterate (dev->disk, iterate_partition))
+ {
+ grub_device_close (dev);
return 1;
- }
- else
- {
- grub_memcpy (tmp + grub_strlen (devname), "", sizeof (""));
- if (add_completion (tmp, "", GRUB_COMPLETION_TYPE_DEVICE))
+ }
+ }
+ else
+ {
+ grub_memcpy (tmp + grub_strlen (devname), "", sizeof (""));
+ if (add_completion (tmp, "", GRUB_COMPLETION_TYPE_DEVICE))
+ {
+ grub_device_close (dev);
return 1;
- }
- }
+ }
+ }
+ }
+ grub_device_close (dev);
grub_errno = GRUB_ERR_NONE;
return 0;
}