[libvirt] [RFC PATCH] build: avoid %zu in translated strings
Daniel P. Berrange
berrange at redhat.com
Wed Aug 18 09:04:04 UTC 2010
On Tue, Aug 17, 2010 at 04:05:03PM -0600, Eric Blake wrote:
> Mingw64 lacks %zu, and has the unfortunate setup where
> sizeof(long)==4 but sizeof(size_t)==8. Since gnulib's
> printf-posix module is not LGPLv2+, the best we can do
> is manually cast to the only portable int type known to
> hold size_t, and rely on gnulib's inttypes.h.
>
> * src/remote/remote_driver.c (remoteStreamPacket): Rewrite size_t
> formatting.
> * src/storage/storage_driver.c (storageWipeExtent): Likewise.
> ---
>
> Here's the latter option; there are many more uses of %zu, but
> only in DEBUG statements. I suppose it would also be easy enough
> to teach cfg.mk how to recognize and reject %z inside translated
> strings, as part of 'make syntax-check'.
>
> src/remote/remote_driver.c | 7 +++++--
> src/storage/storage_driver.c | 7 ++++---
> 2 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
> index cb0d8e1..d9115c8 100644
> --- a/src/remote/remote_driver.c
> +++ b/src/remote/remote_driver.c
> @@ -34,6 +34,7 @@
> #include <fcntl.h>
> #include <arpa/inet.h>
> #include <sys/wait.h>
> +#include <inttypes.h>
>
> /* Windows socket compatibility functions. */
> #include <errno.h>
> @@ -8024,8 +8025,10 @@ remoteStreamPacket(virStreamPtr st,
>
> if (status == REMOTE_CONTINUE) {
> if (((4 + REMOTE_MESSAGE_MAX) - thiscall->bufferLength) < nbytes) {
> - remoteError(VIR_ERR_RPC, _("data size %zu too large for payload %d"),
> - nbytes, ((4 + REMOTE_MESSAGE_MAX) - thiscall->bufferLength));
> + remoteError(VIR_ERR_RPC,
> + _("data size %" PRIuMAX " too large for payload %d"),
> + (uintmax_t) nbytes,
> + ((4 + REMOTE_MESSAGE_MAX) - thiscall->bufferLength));
I find the PRI* stuff rather fugly. Can't we just use %llu and
cast to (unsigned long long)
The question of printf-posix license doesn't appear relevant since
remoteError & friends all use asprintf() which is LGPLv2+ already.
Regards,
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list