From: Daniel P. Berrange Date: Tue, 29 Mar 2011 10:26:55 +0000 (+0100) Subject: Fix domain events C example on Win32 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=242195425c03779ef42059e72a92f0e0be7c46cb;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git Fix domain events C example on Win32 printf on Win32 does not necessarily support %lld and we don't have GNULIBs wrapper for printf(). Switch to use asprintf() for which we do have a gnulib wrapper with %lld support * examples/domain-events/events-c/event-test.c: Fix formatting of %lld on Win32 * cfg.mk: Don't require use of virAsprintf since this is an example app for out of tree users to follow --- diff --git a/cfg.mk b/cfg.mk index f802cee49..4ed0d96fe 100644 --- a/cfg.mk +++ b/cfg.mk @@ -571,7 +571,7 @@ exclude_file_name_regexp--sc_prohibit_always_true_header_tests = \ (^docs|^python/(libvirt-override|typewrappers)\.c$$) exclude_file_name_regexp--sc_prohibit_asprintf = \ - ^(bootstrap.conf$$|po/|src/util/util\.c$$) + ^(bootstrap.conf$$|po/|src/util/util\.c$$|examples/domain-events/events-c/event-test\.c$$) exclude_file_name_regexp--sc_prohibit_close = \ (\.py$$|^docs/|(src/util/files\.c|src/libvirt\.c)$$) diff --git a/examples/domain-events/events-c/event-test.c b/examples/domain-events/events-c/event-test.c index 7d05dd83d..1f46d42a2 100644 --- a/examples/domain-events/events-c/event-test.c +++ b/examples/domain-events/events-c/event-test.c @@ -169,8 +169,16 @@ static int myDomainEventRTCChangeCallback(virConnectPtr conn ATTRIBUTE_UNUSED, long long offset, void *opaque ATTRIBUTE_UNUSED) { - printf("%s EVENT: Domain %s(%d) rtc change %lld\n", __func__, virDomainGetName(dom), - virDomainGetID(dom), offset); + char *str = NULL; + /* HACK: use asprintf since we have gnulib's wrapper for %lld on Win32 + * but don't have a printf() replacement with %lld */ + if (asprintf(&str, "%s EVENT: Domain %s(%d) rtc change %lld\n", + __func__, virDomainGetName(dom), + virDomainGetID(dom), offset) < 0) + return 0; + + printf("%s", str); + free(str); return 0; }