On Wed, Sep 11, 2013 at 11:29:21AM -0700, Jonathan Nieder wrote: > Sebastian Schuberth wrote: > > > This is necessary so that read_mailmap() can obtain a pointer to the > > function. > > Hm, what platform has strcasecmp() as an inline function? Is this > allowed by POSIX? Even if it isn't, should we perhaps just work > around it by providing our own thin static function wrapper in > mailmap.c? Environments can implement library functions as macros or even intrinsics, but C99 requires that they still allow you to access a function pointer. And if my reading of C99 6.7.4 is correct, it should apply to inlines, too, because you should always be able to take the address of an inline function (though it is a little subtle). But that does not mean there are not popular platforms that we do not have to workaround (and the inline keyword is C99 anyway, so all bets are off for pre-C99 inline implementations). I would prefer the static wrapper solution you suggest, though. It leaves the compiler free to optimize the common case of normal strcasecmp calls, and only introduces an extra function indirection when using it as a callback (and even then, if we can inline the strcasecmp, it still ends up as a single function call). The downside is that it has to be remembered at each site that uses strcasecmp, but we do not use pointers to standard library functions very often. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html