#include "fdisk.h"
+static unsigned int info_count;
+
int get_user_reply(struct fdisk_context *cxt, const char *prompt,
char *buf, size_t bufsz)
{
return -1;
}
+static void fputs_info(const char *msg, FILE *out)
+{
+ if (info_count == 1)
+ fputc('\n', out);
+ fputs(msg, out);
+ fputc('\n', out);
+}
+
int ask_callback(struct fdisk_context *cxt, struct fdisk_ask *ask,
void *data __attribute__((__unused__)))
{
assert(cxt);
assert(ask);
+ if (fdisk_ask_get_type(ask) != FDISK_ASKTYPE_INFO)
+ info_count = 0;
+
switch(fdisk_ask_get_type(ask)) {
case FDISK_ASKTYPE_NUMBER:
return ask_number(cxt, ask, buf, sizeof(buf));
case FDISK_ASKTYPE_OFFSET:
return ask_offset(cxt, ask, buf, sizeof(buf));
case FDISK_ASKTYPE_INFO:
- fputs(fdisk_ask_print_get_mesg(ask), stdout);
- fputc('\n', stdout);
+ info_count++;
+ fputs_info(fdisk_ask_print_get_mesg(ask), stdout);
break;
case FDISK_ASKTYPE_WARNX:
fputs(fdisk_ask_print_get_mesg(ask), stderr);
DBG(ASK, dbgprint("yes-no ask: reply '%s' [rc=%d]", buf, rc));
break;
case FDISK_ASKTYPE_TABLE:
+ fputc('\n', stdout);
tt_print_table(fdisk_ask_get_table(ask));
break;
case FDISK_ASKTYPE_STRING:
char *strsz = size_to_human_string(SIZE_SUFFIX_SPACE
| SIZE_SUFFIX_3LETTER, bytes);
- fdisk_info(cxt, _("\nDisk %s: %s, %llu bytes, %llu sectors"),
+ fdisk_info(cxt, _("Disk %s: %s, %llu bytes, %llu sectors"),
cxt->dev_path, strsz, bytes, cxt->total_sectors);
free(strsz);
err(EXIT_FAILURE, _("cannot open %s"), argv[optind]);
/* Here starts interactive mode, use fdisk_{warn,info,..} functions */
- fdisk_info(cxt, _("\nWelcome to fdisk (%s).\n\n"
+ fdisk_info(cxt, _("Welcome to fdisk (%s).\n\n"
"Changes will remain in memory only, until you decide to write them.\n"
"Be careful before using the write command.\n"), PACKAGE_STRING);
fflush(stdout);