diff options
author | Karel Zak | 2013-09-03 13:28:02 +0200 |
---|---|---|
committer | Karel Zak | 2013-09-16 16:47:09 +0200 |
commit | dd00d1b27dae225f5ffad8fe0790f35fab44bb11 (patch) | |
tree | d7378623d1bd8e7569134371117331cd7b433c2f /libfdisk/src/ask.c | |
parent | fdisk: use fdisk_{info,warn} on more places (diff) | |
download | kernel-qcow2-util-linux-dd00d1b27dae225f5ffad8fe0790f35fab44bb11.tar.gz kernel-qcow2-util-linux-dd00d1b27dae225f5ffad8fe0790f35fab44bb11.tar.xz kernel-qcow2-util-linux-dd00d1b27dae225f5ffad8fe0790f35fab44bb11.zip |
libfdisk: extend fdisk_info() functionality
- add per message flags
- add fdisk_colon() for "foo bar: bla bla..." messages
- add fdisk_sinfo() as smart version of fdisk_info()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk/src/ask.c')
-rw-r--r-- | libfdisk/src/ask.c | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/libfdisk/src/ask.c b/libfdisk/src/ask.c index 6b3904250..3c1ba659b 100644 --- a/libfdisk/src/ask.c +++ b/libfdisk/src/ask.c @@ -49,6 +49,19 @@ int fdisk_ask_set_type(struct fdisk_ask *ask, int type) return 0; } +unsigned int fdisk_ask_get_flags(struct fdisk_ask *ask) +{ + assert(ask); + return ask->flags; +} + +int fdisk_ask_set_flags(struct fdisk_ask *ask, unsigned int flags) +{ + assert(ask); + ask->flags = flags; + return 0; +} + int fdisk_do_ask(struct fdisk_context *cxt, struct fdisk_ask *ask) { int rc; @@ -535,7 +548,7 @@ int fdisk_ask_print_set_mesg(struct fdisk_ask *ask, const char *mesg) } static int do_vprint(struct fdisk_context *cxt, int errnum, int type, - const char *fmt, va_list va) + unsigned int flags, const char *fmt, va_list va) { struct fdisk_ask *ask; int rc; @@ -553,6 +566,7 @@ static int do_vprint(struct fdisk_context *cxt, int errnum, int type, } fdisk_ask_set_type(ask, type); + fdisk_ask_set_flags(ask, flags); fdisk_ask_print_set_mesg(ask, mesg); if (errnum >= 0) fdisk_ask_print_set_errno(ask, errnum); @@ -570,11 +584,39 @@ int fdisk_info(struct fdisk_context *cxt, const char *fmt, ...) assert(cxt); va_start(ap, fmt); - rc = do_vprint(cxt, -1, FDISK_ASKTYPE_INFO, fmt, ap); + rc = do_vprint(cxt, -1, FDISK_ASKTYPE_INFO, 0, fmt, ap); va_end(ap); return rc; } +/* "smart" version, allows to set flags for the message */ +int fdisk_sinfo(struct fdisk_context *cxt, + unsigned int flags, const char *fmt, ...) +{ + int rc; + va_list ap; + + assert(cxt); + va_start(ap, fmt); + rc = do_vprint(cxt, -1, FDISK_ASKTYPE_INFO, flags, fmt, ap); + va_end(ap); + return rc; + +} + +int fdisk_colon(struct fdisk_context *cxt, const char *fmt, ...) +{ + int rc; + va_list ap; + + assert(cxt); + va_start(ap, fmt); + rc = do_vprint(cxt, -1, FDISK_ASKTYPE_INFO, FDISK_INFO_COLON, fmt, ap); + va_end(ap); + return rc; + +} + int fdisk_warn(struct fdisk_context *cxt, const char *fmt, ...) { int rc; @@ -582,7 +624,7 @@ int fdisk_warn(struct fdisk_context *cxt, const char *fmt, ...) assert(cxt); va_start(ap, fmt); - rc = do_vprint(cxt, errno, FDISK_ASKTYPE_WARN, fmt, ap); + rc = do_vprint(cxt, errno, FDISK_ASKTYPE_WARN, 0, fmt, ap); va_end(ap); return rc; } @@ -594,7 +636,7 @@ int fdisk_warnx(struct fdisk_context *cxt, const char *fmt, ...) assert(cxt); va_start(ap, fmt); - rc = do_vprint(cxt, -1, FDISK_ASKTYPE_WARNX, fmt, ap); + rc = do_vprint(cxt, -1, FDISK_ASKTYPE_WARNX, 0, fmt, ap); va_end(ap); return rc; } @@ -608,7 +650,8 @@ int fdisk_info_new_partition( char *str = size_to_human_string(SIZE_SUFFIX_3LETTER | SIZE_SUFFIX_SPACE, (uint64_t)(stop - start + 1) * cxt->sector_size); - rc = fdisk_info(cxt, _("Partition %d of type %s and of size %s is set\n"), + rc = fdisk_sinfo(cxt, FDISK_INFO_SUCCESS, + _("Partition %d of type %s and of size %s is set."), num, t ? t->name : _("Unknown"), str); free(str); return rc; |