From: Karel Zak Date: Wed, 30 Jan 2013 13:50:55 +0000 (+0100) Subject: fdisk: add callacks for info, warn and warnx Ask API X-Git-Tag: v2.23-rc1~118 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e8f74dc605f8e9c74ed19e9b6f041ecb9214af5;p=thirdparty%2Futil-linux.git fdisk: add callacks for info, warn and warnx Ask API Signed-off-by: Karel Zak --- diff --git a/fdisks/fdisk-ask.c b/fdisks/fdisk-ask.c index c27deae76d..19d1628ae6 100644 --- a/fdisks/fdisk-ask.c +++ b/fdisks/fdisk-ask.c @@ -167,6 +167,7 @@ static int ask_offset(struct fdisk_context *cxt, int ask_callback(struct fdisk_context *cxt, struct fdisk_ask *ask, void *data __attribute__((__unused__))) { + va_list ap; char buf[BUFSIZ]; assert(cxt); @@ -177,6 +178,25 @@ int ask_callback(struct fdisk_context *cxt, struct fdisk_ask *ask, return ask_number(cxt, ask, buf, sizeof(buf)); case FDISK_ASKTYPE_OFFSET: return ask_offset(cxt, ask, buf, sizeof(buf)); + case FDISK_ASKTYPE_INFO: + fdisk_ask_print_get_va(ask, ap); + vfprintf(stdout, fdisk_ask_print_get_mesg(ask), ap); + fputc('\n', stdout); + va_end(ap); + break; + case FDISK_ASKTYPE_WARNX: + fdisk_ask_print_get_va(ask, ap); + vfprintf(stderr, fdisk_ask_print_get_mesg(ask), ap); + fputc('\n', stderr); + va_end(ap); + break; + case FDISK_ASKTYPE_WARN: + fdisk_ask_print_get_va(ask, ap); + vfprintf(stderr, fdisk_ask_print_get_mesg(ask), ap); + errno = fdisk_ask_print_get_errno(ask); + fprintf(stderr, ": %m\n"); + va_end(ap); + break; default: warnx(_("internal error: unssuported dialog type %d"), fdisk_ask_get_type(ask)); return -EINVAL;