Hi, On Thu, 2 Nov 2006, Jeff King wrote: > On Thu, Nov 02, 2006 at 01:44:36AM +0000, Andy Whitcroft wrote: > > > That said if you know its constant you can also use sizeof("foo") and > > that is done at compile time. Something like: > > > > #define strxcmp(x, y) strncmp((x), (y), sizeof((y)) > > You would, of course, need to use sizeof(y)-1 to avoid comparing the NUL > termination. :) > > This is a slightly dangerous macro, because it _only_ works for string > literals, but not pointers (which is fine in this case, but its > limitations need to be documented). It would be even better to avoid these errors by doing something like #define starts_with(x, y) !strncmp((x), #y, sizeof(#y) - 1) which would be used like this: if (starts_with(arg, --abbrev=)) However, in this case, you would need another macro, which automatically extracts the argument, and soon you will end up with yet another getopt package. Ciao, Dscho - 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