Right now, afs_snprintf does NOT support the %j modifier. I considered adding this, but went the route of instead implementing %ll for two reasons. First, the existing pattern for the 64bit types was to use "long long", and %ll is definitely correct for those. (Maybe this is lame. But it was more expedient than autoconfiguring whether or not to include stdint.h, and where should that be done, etc. -- issues perhaps worth resolving now.) Secondly, I have been using a tool called "splint" to check that parameters to *printf match the corresponding format codes. Sadly, splint does not yet support the %j modifier. There are hints that it will, eventually... (Might not be too hard to patch.)
/Lindsay
Garance A Drosihn wrote:
At 12:33 PM -0400 6/27/03, R. Lindsay Todd wrote:
[Coming late to this discussion, since I'm not on -info]
As other have pointed out, there is an snprintf.c implementation in src/util. [...] it does support features not found in every sprintf, such as %llu and %lld formats for 64-bit integers.
In trying to add LFS to the fileserver, I've needed to be able to display integers that might be either 32- or 64-bit, depending on compilation options. [...] The cleanest solution I've found, and what I've implemented, is to make cast these values to afs_intmax_t or afs_uintmax_t, which are guaranteed to be correctly formatted using %lld or %llu, respectively, whether or not the AFS_64BIT_ENV is set.
For what it's worth, freebsd-standards policy is to cast to uintmax_t or u_intmax_t, and then use %ju or %jd to print. (freebsd-standards is our project to follow posix/SUSv3 standards as closely as possible). Does afs_snprintf implement %j?
I *think* it's true that %ll will not necessarily do the right thing for values of type intmax_t, since it is explicitly for long-long, while %j is explicitly for intmax_t. Obviously those are often the same thing, but I suspect that they are allowed to be different.
-- R. Lindsay Todd email: [EMAIL PROTECTED] Senior Systems Programmer phone: 518-276-2605 Rensselaer Polytechnic Institute fax: 518-276-2809 Troy, NY 12180-3590 WWW: http://www.rpi.edu/~toddr
_______________________________________________ OpenAFS-devel mailing list [EMAIL PROTECTED] https://lists.openafs.org/mailman/listinfo/openafs-devel
