Similar to commit
4a52959d1 ("(s)fdisk: avoid unneeded empty lines with
'--list'"), there were also two superfluous empty lines when /dev/sr0
didn't contain a medium. Refactor the '--list-free' code the same way as
in the mentioned commit.
Signed-off-by: Wolfram Sang <wsa@kernel.org>
return 0;
}
-int print_device_freespace(struct fdisk_context *cxt, char *device, int warnme)
+int print_device_freespace(struct fdisk_context *cxt, char *device, int warnme,
+ int seperator)
{
if (fdisk_assign_device(cxt, device, 1) != 0) { /* read-only */
if (warnme || errno == EACCES)
return -1;
}
+ if (seperator)
+ fputs("\n\n", stdout);
+
list_freespace(cxt);
fdisk_deassign_device(cxt, 1);
return 0;
void print_all_devices_freespace(struct fdisk_context *cxt)
{
FILE *f = NULL;
- int ct = 0;
+ int sep = 0;
char *dev;
while ((dev = next_proc_partition(&f))) {
- if (ct)
- fputs("\n\n", stdout);
- if (print_device_freespace(cxt, dev, 0) == 0)
- ct++;
+ print_device_freespace(cxt, dev, 0, sep);
free(dev);
+ sep = 1;
}
}
extern char *next_proc_partition(FILE **f);
extern int print_device_pt(struct fdisk_context *cxt, char *device, int warnme, int verify, int seperator);
-extern int print_device_freespace(struct fdisk_context *cxt, char *device, int warnme);
+extern int print_device_freespace(struct fdisk_context *cxt, char *device, int warnme, int seperator);
extern void print_all_devices_pt(struct fdisk_context *cxt, int verify);
extern void print_all_devices_freespace(struct fdisk_context *cxt);
fdisk_enable_listonly(sf->cxt, 1);
if (argc) {
- int i, ct = 0;
+ int i;
- for (i = 0; i < argc; i++) {
- if (ct)
- fputs("\n\n", stdout);
- if (print_device_freespace(sf->cxt, argv[i], 1) != 0)
+ for (i = 0; i < argc; i++)
+ if (print_device_freespace(sf->cxt, argv[i], 1, i) != 0)
fail++;
- ct++;
- }
} else
print_all_devices_freespace(sf->cxt);