Cygwin's 32-bit doesn't like `%ld' for the `p - q' difference between
two pointers as the value is an int, not a long. printf(3)'s `t' length
modifier, for ptrdiff_t, can't be used as that's C99, and we're C90.
Cast the difference to a long explicitly instead.
if (dp == cp || *dp != '=') {
inform("invalid parameter in message %s's %s: field\n"
" parameter %s (error detected at offset %ld)",
- filename, fieldname, cp, dp - cp);
+ filename, fieldname, cp, (long)(dp - cp));
return NOTOK;
}