[libvirt] [PATCH 1/2] virsh: use more compact VIR_ENUM_IMPL
Michal Privoznik
mprivozn at redhat.com
Mon Feb 24 17:42:11 UTC 2014
On 21.02.2014 23:59, Eric Blake wrote:
> Dan Berrange suggested that using VIR_ENUM_IMPL is more compact
> than open-coding switch statements, and still just as forceful
> at making us remember to update lists if we add enum values
> in the future. Make this change throughout virsh.
>
> Sure enough, doing this change caught that we missed at least
> VIR_STORAGE_VOL_NETDIR.
>
> * tools/virsh-domain-monitor.c (vshDomainIOErrorToString)
> (vshDomainControlStateToString, vshDomainStateToString)
> (vshDomainStateReasonToString): Change switch to enum lookup.
> (cmdDomControl, cmdDominfo): Update caller.
> * tools/virsh-domain.c (vshDomainVcpuStateToString)
> (vshDomainEventToString, vshDomainEventDetailToString): Change
> switch to enum lookup.
> (vshDomainBlockJobToString, vshDomainJobToString): New functions.
> (cmdVcpuinfo, cmdBlockJob, cmdDomjobinfo, cmdEvent): Update
> callers.
> * tools/virsh-network.c (vshNetworkEventToString): Change switch
> to enum lookup.
> * tools/virsh-pool.c (vshStoragePoolStateToString): New function.
> (cmdPoolList, cmdPoolInfo): Update callers.
> * tools/virsh-volume.c (vshVolumeTypeToString): Change switch to
> enum lookup.
> (cmdVolInfo, cmdVolList): Update callers.
>
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
> tools/virsh-domain-monitor.c | 280 +++++++++++++++-------------------
> tools/virsh-domain.c | 347 ++++++++++++++++++-------------------------
> tools/virsh-network.c | 36 ++---
> tools/virsh-pool.c | 66 +++-----
> tools/virsh-volume.c | 38 ++---
> 5 files changed, 316 insertions(+), 451 deletions(-)
>
> diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
> index 6291ca5..c67b833 100644
> --- a/tools/virsh-domain-monitor.c
> +++ b/tools/virsh-domain-monitor.c
> @@ -1,7 +1,7 @@
> /*
> * virsh-domain-monitor.c: Commands to monitor domain status
> *
> - * Copyright (C) 2005, 2007-2013 Red Hat, Inc.
> + * Copyright (C) 2005, 2007-2014 Red Hat, Inc.
> *
> * This library is free software; you can redistribute it and/or
> * modify it under the terms of the GNU Lesser General Public
> @@ -40,21 +40,18 @@
> #include "virxml.h"
> #include "virstring.h"
>
> +VIR_ENUM_DECL(vshDomainIOError)
> +VIR_ENUM_IMPL(vshDomainIOError,
> + VIR_DOMAIN_DISK_ERROR_LAST,
> + N_("no error"),
> + N_("unspecified error"),
> + N_("no space"))
> +
> static const char *
> vshDomainIOErrorToString(int error)
> {
> - switch ((virDomainDiskErrorCode) error) {
> - case VIR_DOMAIN_DISK_ERROR_NONE:
> - return _("no error");
> - case VIR_DOMAIN_DISK_ERROR_UNSPEC:
> - return _("unspecified error");
> - case VIR_DOMAIN_DISK_ERROR_NO_SPACE:
> - return _("no space");
> - case VIR_DOMAIN_DISK_ERROR_LAST:
> - ;
> - }
> -
> - return _("unknown error");
> + const char *str = vshDomainIOErrorTypeToString(error);
> + return str ? _(str) : _("unknown error");
> }
>
Why _(str) if str itself already contains translated message?
Michal
More information about the libvir-list
mailing list