> I don't think, though, that the commit message should advertise > this as a performance improvement. It should be called an intentional > change of behaviour, now using the format string as a byte string > like everyone else, no matter whether POSIX explicitly specifies > it as a character string instead.
I do not agree with your position that POSIX calls this a character string. Pure and simply, it is a legacy char *, and any attempt to re-standardize it from that would crash cars and other heavy equipment. I'd like to mention in a previous email you used the term fail-closed incorrectly. Returning an error number and changing behaviour (truncating) when there there potentially isn't a caller-checks isn't fail-closed. Fail-closed implies the software crashes or terminates, so that the bug can be inspected and fixed. Returning an error in a newer version of a standard, when a past standard passed data straight though? With no way for authors to know the fallout, and requiring them to audit all code for the broad practice of missing caller-checks? Not realistic. So it would be responsible to assume a check can be here. I think you have misread POSIX, or someone did 's/char/character/' too broadly.