Public Comment Number PC-UK0265 ISO/IEC CD2 9899 (SC22N2794) Public Comment =========================================== Date: 1998-09-22 Author: N.M Maclaren Author Affiliation: Self Postal Address: University of Cambridge, Computer Laboratory, New Museums Site, Pembroke Street, Cambridge CB3 3QG, United Kingdom E-mail Address: Telephone Number: +44 1223 334761 Fax Number: +44 1223 334679 Category: Normative change to existing feature retaining the original intent Committee Draft subsection: 7.19.6.1, 7.19.6.2, 7.24.2.1, 7.24.2.2 Title: Use a better flag character for intmax_t and uintmax_t Detailed description: In C89 Future Library Directions, it was said that "Lower-case letters may be added to the conversion specifiers in fprintf and fscanf. Other characters may be used in extensions." Some implementors have ignored this, which is only to be expected. However, C9X has bent over backwards to support such gratuitously perverse implementations. In addition to establishing a very bad precedent, this is a long term drain on resources. Some of us have to teach C and debug assist with the debugging of other people's code; every important but non-mnemonic facility takes extra time and increases errors. Because of the importance of conversions using the intmax_t and uintmax_t types, their flag character should be memorable. If the committee really feels that 'm' is unacceptable, then it should be 'z' and the specifier for size_t should be 'j'. 'z' is at least a common convention for the final item of a sequence. There should also be a flag character defined for the off_t type, because of its importance in data manipulation code and as a migration path. As the obvious letters were all already taken in C89, it does not matter much what it is.