man/man3type/*: Update history of all other types
cover man/man3type/*: Update history of all other types
G'day,
This patch set should account for all other man-page entries in the 3type section whose listed first POSIX/SUS appearance can be updated. As per Alex's request, any added POSIX/SUS versions are listed in chronological order with respect to any other listed standards.
I did make one "exception" though, regarding types that appeared in both C89 and POSIX.1-1988. Despite POSIX.1-1988 being published before C89, many (if not all) such types were included in POSIX.1-1988 primarily for compatibility with the then-upcoming C standard (i.e. C89). So it is likely more chronologically accurate to list C89 before POSIX.1-1988 in these cases.
Seth McDonald (25):
man/man3type/div_t.3type: HISTORY: Update first SUS appearance of
[l]div_t(3type)
man/man3type/id_t.3type: HISTORY: Update first POSIX appearance of
id_t(3type)
man/man3type/intptr_t.3type: HISTORY: Split types and macros
man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of
[u]intptr_t(3type)
man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of
[U]INTPTR_MAX and INTPTR_MIN
man/man3type/intptr_t.3type: HISTORY: [U]INTPTR_WIDTH is not in POSIX.
man/man3type/intptr_t.3type: DESCRIPTION: ffix
man/man3type/iovec.3type: HISTORY: Update first POSIX appearance of
iovec(3type)
man/man3type/lconv.3type: HISTORY: Split lconv(3type) and
int_[np]_{cs_precedes,sep_by_space,sign_posn}
man/man3type/lconv.3type: HISTORY: Update first SUS appearance of
lconv(3type)
man/man3type/mbstate_t.3type: HISTORY: Update first SUS appearance of
mbstate_t(3type)
man/man3type/ptrdiff_t.3type: HISTORY: Update first SUS appearance of
ptrdiff_t(3type)
man/man3type/size_t.3type: HISTORY: Update first POSIX appearance of
[s]size_t(3type)
man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of
time_t(3type)
man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of
suseconds_t(3type)
man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of
useconds_t(3type)
man/man3type/timeval.3type: HISTORY: Update first SUS appearance of
timeval(3type)
man/man3type/va_list.3type: HISTORY: Update first SUS appearance of
va_list(3type)
man/man3type/void.3type: HISTORY: Update first POSIX appearance of
void(3type)
man/man3type/wchar_t.3type: HISTORY: Split wchar_t(3type) and
WCHAR_M{AX,IN}
man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of
wchar_t(3type)
man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of
WCHAR_M{AX,IN}
man/man3type/wint_t.3type: HISTORY: Split wint_t(3type) and WEOF from
WINT_M{AX,IN} man/man3type/wint_t.3type: HISTORY: Update first SUS appearance of
wint_t(3type) and WEOF
man/man3type/wint_t.3type: DESCRIPTION: ffix
man/man3type/div_t.3type | 1 + man/man3type/id_t.3type | 4 +++- man/man3type/intptr_t.3type | 17 +++++++++++++++-- man/man3type/iovec.3type | 3 ++- man/man3type/lconv.3type | 16 ++++++++++++++++ man/man3type/mbstate_t.3type | 1 + man/man3type/ptrdiff_t.3type | 4 +++- man/man3type/size_t.3type | 5 +++-- man/man3type/time_t.3type | 10 +++++++--- man/man3type/timeval.3type | 1 + man/man3type/va_list.3type | 4 +++- man/man3type/void.3type | 3 ++- man/man3type/wchar_t.3type | 10 ++++++++++ man/man3type/wint_t.3type | 16 +++++++++++++++- 14 files changed, 82 insertions(+), 13 deletions(-)
Range-diff against v0:
-: ------------ > 1: a6650fa27290 man/man3type/div_t.3type: HISTORY: Update first SUS appearance of [l]div_t(3type)
-: ------------ > 2: 963da2474e6d man/man3type/id_t.3type: HISTORY: Update first POSIX appearance of id_t(3type)
-: ------------ > 3: 3a8217dd1508 man/man3type/intptr_t.3type: HISTORY: Split types and macros
-: ------------ > 4: c587540f97c4 man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [u]intptr_t(3type)
-: ------------ > 5: 455e106a5e0d man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [U]INTPTR_MAX and INTPTR_MIN
-: ------------ > 6: 26e1b48d4721 man/man3type/intptr_t.3type: HISTORY: [U]INTPTR_WIDTH is not in POSIX.
-: ------------ > 7: c5e354f0878c man/man3type/intptr_t.3type: DESCRIPTION: ffix
-: ------------ > 8: 0cf31543f6d2 man/man3type/iovec.3type: HISTORY: Update first POSIX appearance of iovec(3type)
-: ------------ > 9: fb168b7dee6d man/man3type/lconv.3type: HISTORY: Split lconv(3type) and int_[np]_{cs_precedes,sep_by_space,sign_posn}
-: ------------ > 10: ca58744440b0 man/man3type/lconv.3type: HISTORY: Update first SUS appearance of lconv(3type)
-: ------------ > 11: b4bba25be7df man/man3type/mbstate_t.3type: HISTORY: Update first SUS appearance of mbstate_t(3type)
-: ------------ > 12: 741cd602cffb man/man3type/ptrdiff_t.3type: HISTORY: Update first SUS appearance of ptrdiff_t(3type)
-: ------------ > 13: 3cf622ba3c3c man/man3type/size_t.3type: HISTORY: Update first POSIX appearance of [s]size_t(3type)
-: ------------ > 14: d1a047ff7ec8 man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of time_t(3type)
-: ------------ > 15: 7f54dbc4481d man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of suseconds_t(3type)
-: ------------ > 16: d8cf35e1cf3e man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of useconds_t(3type)
-: ------------ > 17: 47c6b50cf1a1 man/man3type/timeval.3type: HISTORY: Update first SUS appearance of timeval(3type)
-: ------------ > 18: 9a9b76c452fe man/man3type/va_list.3type: HISTORY: Update first SUS appearance of va_list(3type)
-: ------------ > 19: efe8112034e9 man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
-: ------------ > 20: 87a39e047c0e man/man3type/wchar_t.3type: HISTORY: Split wchar_t(3type) and WCHAR_M{AX,IN}
-: ------------ > 21: a7d237cd5287 man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type)
-: ------------ > 22: fb806a50acd6 man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of WCHAR_M{AX,IN}
-: ------------ > 23: 730e0c713039 man/man3type/wint_t.3type: HISTORY: Split wint_t(3type) and WEOF from WINT_M{AX,IN}
-: ------------ > 24: a9ac764ac283 man/man3type/wint_t.3type: HISTORY: Update first SUS appearance of wint_t(3type) and WEOF
-: ------------ > 25: 694ea5baaddc man/man3type/wint_t.3type: DESCRIPTION: ffixSignature · 1 line
2.47.3
PATCH 1/25 man/man3type/div_t.3type: HISTORY: Update first SUS appearance of [l]div_t(3type)
From: Seth McDonald <[email protected]>
div_t(3type) and ldiv_t(3type) first appeared in SUSv1.[1]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 807.
--- man/man3type/div_t.3type | 1 + 1 file changed, 1 insertion(+)
man/man3type/div_t.3type +1 -0
@@ -53,6 +53,7 @@ .SH HISTORY .I div_t .TQ .I ldiv_t +SUSv1, C99, POSIX.1-2001. .TP
Signature · 1 line
2.47.3
PATCH 2/25 man/man3type/id_t.3type: HISTORY: Update first POSIX appearance of id_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
id_t(3type) first appeared in SUSv1.[1] The type was added to POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension (still SUS-only).[2] Then POSIX.1-2008 moved it to the base specification.[3]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 838.
[2] IEEE Std 1003.1-2001, Volume 1, Chapter 13 "Headers", p. 366.
<https://pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/types.h.html>
[3] IEEE Std 1003.1-2008, Volume 1, Chapter 13 "Headers", p. 398.
<https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/basedefs/sys_types.h.html>
--- man/man3type/id_t.3type | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
man/man3type/id_t.3type +3 -1
@@ -49,7 +49,9 @@ .SH HISTORY POSIX.1-1988. .TP .I id_t -POSIX.1-2001. +SUSv1, +POSIX.1-2001 XSI, +POSIX.1-2008. .SH NOTES The following headers also provide .IR pid_t :
Signature · 1 line
2.47.3
PATCH 3/25 man/man3type/intptr_t.3type: HISTORY: Split types and macros
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
--- man/man3type/intptr_t.3type | 12 ++++++++++++ 1 file changed, 12 insertions(+)
man/man3type/intptr_t.3type +12 -0
@@ -96,6 +96,18 @@ .SH DESCRIPTION .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY +.TP +.RI [ u ] intptr_t +C99, +POSIX.1-2001. +.TP +.RB [ U ] INTPTR_MAX +.TQ +.B INTPTR_MIN +C99, +POSIX.1-2001. +.TP +.RB [ U ] INTPTR_WIDTH C99, POSIX.1-2001. .SH NOTES The following header also provides these types:
Signature · 1 line
2.47.3
PATCH 4/25 man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [u]intptr_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
intptr_t(3type) and uintptr_t(3type) first appeared in SUSv2.[1] The types were added to POSIX.1-2001 when POSIX and SUS merged, but are only mandatory on XSI-conformant systems.[2]
[1] CAE Specification, System Interfaces and Headers, Issue 5, Chapter 4 "Headers", p. 1089.
<https://pubs.opengroup.org/onlinepubs/7908799/xsh/inttypes.h.html>
[2] IEEE Std 1003.1-2001, Volume 1, Chapter 13 "Headers", p. 316.
<https://pubs.opengroup.org/onlinepubs/009604499/basedefs/stdint.h.html>
--- man/man3type/intptr_t.3type | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
man/man3type/intptr_t.3type +2 -1
@@ -98,8 +98,9 @@ .SH STANDARDS .SH HISTORY .TP .RI [ u ] intptr_t +SUSv2, C99, -POSIX.1-2001. +POSIX.1-2001 XSI. .TP .RB [ U ] INTPTR_MAX .TQ
Signature · 1 line
2.47.3
PATCH 5/25 man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [U]INTPTR_MAX and INTPTR_MIN
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
INTPTR_MAX, UINTPTR_MAX, and INTPTR_MIN are defined if and only if intptr_t(3type) and uintptr_t(3type) are declared.[1] So given that the types are only mandatory on XSI-conformant systems, the same is true for the macros.
[1] IEEE Std 1003.1-2001, Volume 1, Chapter 13 "Headers", pp. 314, 316-318.
<https://pubs.opengroup.org/onlinepubs/009604499/basedefs/stdint.h.html>
--- man/man3type/intptr_t.3type | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
man/man3type/intptr_t.3type +1 -1
@@ -106,7 +106,7 @@ .SH HISTORY .TQ .B INTPTR_MIN C99, -POSIX.1-2001. +POSIX.1-2001 XSI. .TP .RB [ U ] INTPTR_WIDTH C99, POSIX.1-2001.
Signature · 1 line
2.47.3
PATCH 6/25 man/man3type/intptr_t.3type: HISTORY: [U]INTPTR_WIDTH is not in POSIX.
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
--- man/man3type/intptr_t.3type | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
man/man3type/intptr_t.3type +1 -1
@@ -109,7 +109,7 @@ .SH HISTORY POSIX.1-2001 XSI. .TP .RB [ U ] INTPTR_WIDTH -C99, POSIX.1-2001. +C99. .SH NOTES The following header also provides these types: .IR <inttypes.h> .
Signature · 1 line
2.47.3
PATCH 7/25 man/man3type/intptr_t.3type: DESCRIPTION: ffix
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
--- man/man3type/intptr_t.3type | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
man/man3type/intptr_t.3type +1 -1
@@ -76,7 +76,7 @@ .SH DESCRIPTION .I intptr_t values. The length modifiers for the -.IR [ u ] intptr_t +.RI [ u ] intptr_t types for the .BR scanf (3)
Signature · 1 line
2.47.3
PATCH 8/25 man/man3type/iovec.3type: HISTORY: Update first POSIX appearance of iovec(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
iovec(3type) first appeared in SUSv1.[1] The type was added to POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension (still SUS-only).[2]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 840.
[2] IEEE Std 1003.1-2001, Volume 1, Chapter 13 "Headers", p. 369.
<https://pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/uio.h.html>
--- man/man3type/iovec.3type | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
man/man3type/iovec.3type +2 -1
@@ -39,7 +39,8 @@ .SH DESCRIPTION .SH STANDARDS POSIX.1-2024. .SH HISTORY -POSIX.1-2001. +SUSv1, +POSIX.1-2001 XSI. .SH NOTES The following header also provides this type: .IR <sys/socket.h> .
Signature · 1 line
2.47.3
PATCH 9/25 man/man3type/lconv.3type: HISTORY: Split lconv(3type) and int_[np]_{cs_precedes,sep_by_space,sign_posn}
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
--- man/man3type/lconv.3type | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
man/man3type/lconv.3type +15 -0
@@ -46,6 +46,21 @@ .SH DESCRIPTION .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY +.TP +.I lconv +POSIX.1-2001. +.TP +.I .int_p_cs_precedes +.TQ +.I .int_n_cs_precedes +.TQ +.I .int_p_sep_by_space +.TQ +.I .int_n_sep_by_space +.TQ +.I .int_p_sign_posn +.TQ +.I .int_n_sign_posn POSIX.1-2001. .SH SEE ALSO .BR setlocale (3),
Signature · 1 line
2.47.3
PATCH 10/25 man/man3type/lconv.3type: HISTORY: Update first SUS appearance of lconv(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
lconv(3type) first appeared in SUSv1, but without the six members int_[pn]_{cs_precedes,sep_by_space,sign_posn}.[1]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 778.
--- man/man3type/lconv.3type | 1 + 1 file changed, 1 insertion(+)
man/man3type/lconv.3type +1 -0
@@ -48,6 +48,7 @@ .SH STANDARDS .SH HISTORY .TP .I lconv +SUSv1, POSIX.1-2001. .TP .I .int_p_cs_precedes
Signature · 1 line
2.47.3
PATCH 11/25 man/man3type/mbstate_t.3type: HISTORY: Update first SUS appearance of mbstate_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
mbstate_t(3type) first appeared in SUSv2.[1]
[1] CAE Specification, System Interfaces and Headers, Issue 5, Chapter 4 "Headers", p. 1212.
<https://pubs.opengroup.org/onlinepubs/7908799/xsh/wchar.h.html>
--- man/man3type/mbstate_t.3type | 1 + 1 file changed, 1 insertion(+)
man/man3type/mbstate_t.3type +1 -0
@@ -74,6 +74,7 @@ .SH DESCRIPTION .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY +SUSv2, C99, POSIX.1-2001. .SH SEE ALSO .BR mbrlen (3),
Signature · 1 line
2.47.3
PATCH 12/25 man/man3type/ptrdiff_t.3type: HISTORY: Update first SUS appearance of ptrdiff_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
ptrdiff_t(3type) first appeared in SUSv1.[1]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 803.
--- man/man3type/ptrdiff_t.3type | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
man/man3type/ptrdiff_t.3type +3 -1
@@ -40,6 +40,8 @@ .SH DESCRIPTION .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY -C89, POSIX.1-2001. +C89, +SUSv1, +POSIX.1-2001. .SH SEE ALSO .BR size_t (3type)
Signature · 1 line
2.47.3
PATCH 13/25 man/man3type/size_t.3type: HISTORY: Update first POSIX appearance of [s]size_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
size_t(3type) and ssize_t(3type) first appeared in POSIX.1-1990.[1]
[1] IEEE Std 1003.1-1990, Table 2-1 "Primitive System Data Types".
--- man/man3type/size_t.3type | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
man/man3type/size_t.3type +3 -2
@@ -93,10 +93,11 @@ .SH STANDARDS .SH HISTORY .TP .I size_t -C89, POSIX.1-2001. +C89, +POSIX.1-1990. .TP .I ssize_t -POSIX.1-2001. +POSIX.1-1990. .P .IR <aio.h> , .IR <glob.h> ,
Signature · 1 line
2.47.3
PATCH 14/25 man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of time_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
time_t(3type) first appeared in POSIX.1-1988.[1]
[1] IEEE Std 1003.1-1988, Section 2.8.1 "Symbols From The C Standard".
--- man/man3type/time_t.3type | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
man/man3type/time_t.3type +2 -1
@@ -53,7 +53,8 @@ .SH STANDARDS .SH HISTORY .TP .I time_t -C89, POSIX.1-2001. +C89, +POSIX.1-1988. .TP .I suseconds_t POSIX.1-2001.
Signature · 1 line
2.47.3
PATCH 15/25 man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of suseconds_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
suseconds_t(3type) first appeared in SUSv2.[1] The type was added to POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension (still SUS-only).[2] Then POSIX.1-2024 added it to the base specification.[3]
[1] CAE Specification, System Interfaces and Headers, Issue 5, Chapter 4 "Headers", p. 1177.
<https://pubs.opengroup.org/onlinepubs/7908799/xsh/systypes.h.html>
[2] IEEE Std 1003.1-2001, Volume 1, Chapter 13 "Headers", p. 367.
<https://pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/types.h.html>
[3] IEEE Std 1003.1-2024, Volume 1, Chapter 14 "Headers", p. 426.
<https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_types.h.html>
--- man/man3type/time_t.3type | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
man/man3type/time_t.3type +3 -1
@@ -57,7 +57,9 @@ .SH HISTORY POSIX.1-1988. .TP .I suseconds_t -POSIX.1-2001. +SUSv2, +POSIX.1-2001 XSI, +POSIX.1-2024. .TP .I useconds_t POSIX.1-2001.
Signature · 1 line
2.47.3
PATCH 16/25 man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of useconds_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
useconds_t(3type) first appeared in SUSv1.[1] The type was added to POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension (still SUS-only).[2]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 838.
[2] IEEE Std 1003.1-2001, Volume 1, Chapter 13 "Headers", p. 367.
<https://pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/types.h.html>
--- man/man3type/time_t.3type | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
man/man3type/time_t.3type +2 -1
@@ -62,7 +62,8 @@ .SH HISTORY POSIX.1-2024. .TP .I useconds_t -POSIX.1-2001. +SUSv1, +POSIX.1-2001 XSI. Removed in POSIX.1-2008. .SS Header files .I <sched.h>
Signature · 1 line
2.47.3
PATCH 17/25 man/man3type/timeval.3type: HISTORY: Update first SUS appearance of timeval(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
timeval(3type) first appeared in SUSv1.[1]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 834.
--- man/man3type/timeval.3type | 1 + 1 file changed, 1 insertion(+)
man/man3type/timeval.3type +1 -0
@@ -22,6 +22,7 @@ .SH DESCRIPTION .SH STANDARDS POSIX.1-2024. .SH HISTORY +SUSv1, POSIX.1-2001. .SH NOTES The following headers also provide this type:
Signature · 1 line
2.47.3
PATCH 18/25 man/man3type/va_list.3type: HISTORY: Update first SUS appearance of va_list(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
va_list(3type) first appeared in SUSv1.[1]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 801.
--- man/man3type/va_list.3type | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
man/man3type/va_list.3type +3 -1
@@ -28,7 +28,9 @@ .SH DESCRIPTION .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY -C89, POSIX.1-2001. +C89, +SUSv1, +POSIX.1-2001. .SH NOTES The following headers also provide .IR va_list :
Signature · 1 line
2.47.3
PATCH 19/25 man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
The void pointer (void*) type first appeared in POSIX.1-1990 as a parameter type in the read(2) function.[1]
[1] IEEE Std 1003.1-1990, Section 6.4.1 "Read from a File".
--- man/man3type/void.3type | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
man/man3type/void.3type +2 -1
@@ -65,7 +65,8 @@ .SH VERSIONS .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY -C89, POSIX.1-2001. +C89, +POSIX.1-1990. .SH SEE ALSO .BR malloc (3), .BR memcmp (3),
Signature · 1 line
2.47.3
Alejandro Colomar
maintainerRe: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Hi Seth,
Quoted 8 lines · Seth McDonald
From: Seth McDonald <[email protected]>
The void pointer (void*) type first appeared in POSIX.1-1990 as a parameter type in the read(2) function.[1]
[1] IEEE Std 1003.1-1990, Section 6.4.1 "Read from a File".
Signed-off-by Seth McDonald <[email protected]>
I think 'void*' is important enough that it would be useful to dig in its history further. Was it an invention of C89? Or was it an extension in some existing compilers? If the latter, it would be interesting to document which systems had it before C89.
I'm mentioning this just in case you know. Feel free to ignore otherwise.
Anyway, I've applied the patch. Thanks!
Have a lovely day!
Alex
Quoted 22 lines
--- man/man3type/void.3type | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)man/man3type/void.3type +2
-1@@ -65,7 +65,8 @@ .SH VERSIONS .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY -C89, POSIX.1-2001. +C89, +POSIX.1-1990. .SH SEE ALSO .BR malloc (3), .BR memcmp (3),Signature · 1 line
2.47.3
Signature · 1 line
<https://www.alejandro-colomar.es>
Re: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Hi Alex,
Quoted 1 line · Alejandro Colomar
Hi Seth,
[...]
Quoted 7 lines
I think 'void*' is important enough that it would be useful to dig in its history further. Was it an invention of C89? Or was it an extension in some existing compilers? If the latter, it would be interesting to document which systems had it before C89.
I'm mentioning this just in case you know. Feel free to ignore otherwise.
I know that the void pointer type was not mentioned or used in POSIX.1-1988. Instead, the standard used the char pointer type for pointers to generic data. POSIX.1-1990 seems to implicitly require void pointers - at least for conformance to "POSIX.1, C Language Binding (C Standard Language-Dependent System Support)" - by including them in some function prototypes.
Looking at C89, it did explicitly specify void pointers as part of the language, stating that "[a] pointer to void shall have the same representation and alignment requirements as a pointer to a character type."[1]
Looking* at K&R C, I skimmed through chapter 5 "Pointers and Arrays", and couldn't find any references to void pointers. In fact, it seems to use char pointers instead, similar to POSIX.1-1988.
So I think what happened (pure speculation) was between 1978 and 1989, void pointers increased in user popularity and compiler support enough that ANSI decided to extend the language by adding void pointers to its 1989 C standard. Which would explain why POSIX.1-1988 also didn't have void pointers, but POSIX.1-1990 suddenly did.
With regard to implementation support for void pointers prior to C89, this is where my knowledge falls short. I'm not the most educated on past implementations (yet).
*I found this[2] PDF online which appears to be a scan of a (heavily annotated) copy of the first edition of The C Programming Language. I don't know if it's authentic though, so take it with a grain of salt.
----
[1] ANSI X3.159-1989 "Programming Language – C", Section 3.1.2.5 "Types", p. 24.
<https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub160.pdf>
[2] Kernighan, Brian W., Ritchie, Dennis M. (1978). The C Programming Language (1st ed.).
<https://retrofun.pl/wp-content/uploads/sites/2/2023/12/1978-ritchie-the-c-programming-language.pdf>
----
Seth McDonald.
sethmcmail at pm dot me (mailing lists) 2336 E8D2 FEB1 5300 692C 62A9 5839 6AD8 9243 D369
Alejandro Colomar
maintainerRe: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Hi Seth,
Quoted 13 lines · Seth McDonald
Hi Alex,
Quoted 1 line · Alejandro Colomar
Hi Seth,
[...]
Quoted 7 lines
I think 'void*' is important enough that it would be useful to dig in its history further. Was it an invention of C89? Or was it an extension in some existing compilers? If the latter, it would be interesting to document which systems had it before C89.
I'm mentioning this just in case you know. Feel free to ignore otherwise.
Quoted 6 lines
I know that the void pointer type was not mentioned or used in POSIX.1-1988. Instead, the standard used the char pointer type for pointers to generic data. POSIX.1-1990 seems to implicitly require void pointers - at least for conformance to "POSIX.1, C Language Binding (C Standard Language-Dependent System Support)" - by including them in some function prototypes.
Hmmm, since POSIX.1-1988 was already written after some C89 draft, it seems void* was incorporated to C89 in a late draft.
Quoted 9 lines
Looking at C89, it did explicitly specify void pointers as part of the language, stating that "[a] pointer to void shall have the same representation and alignment requirements as a pointer to a character type."[1]
Looking* at K&R C, I skimmed through chapter 5 "Pointers and Arrays", and couldn't find any references to void pointers. In fact, it seems to use char pointers instead, similar to POSIX.1-1988.
Yup, K&R C 1st ed. is too old and I wouldn't expect it to have void*. I have a physical copy of K&R C 2nd ed. (1988) and it does have void*.
Quoted 9 lines
So I think what happened (pure speculation) was between 1978 and 1989, void pointers increased in user popularity and compiler support enough that ANSI decided to extend the language by adding void pointers to its 1989 C standard. Which would explain why POSIX.1-1988 also didn't have void pointers, but POSIX.1-1990 suddenly did.
With regard to implementation support for void pointers prior to C89, this is where my knowledge falls short. I'm not the most educated on past implementations (yet).
That's fine. If anyone else reading the list knows anything, it would be welcome.
Quoted 3 lines
*I found this[2] PDF online which appears to be a scan of a (heavily annotated) copy of the first edition of The C Programming Language. I don't know if it's authentic though, so take it with a grain of salt.
Being a scan, it could be authentic. I don't have a physical copy of the first edition, so can't compare.
Be careful of online copies of K&R C, though. I once found one of the second edition, and it was fake (by comparing it to the actual copy).
Much better to get the physical copy. Although the first edition seems difficult to find.
Cheers,
Alex
Quoted 12 lines
----
[1] ANSI X3.159-1989 "Programming Language – C", Section 3.1.2.5 "Types", p. 24.
<https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub160.pdf>
[2] Kernighan, Brian W., Ritchie, Dennis M. (1978). The C Programming Language (1st ed.).
<https://retrofun.pl/wp-content/uploads/sites/2/2023/12/1978-ritchie-the-c-programming-language.pdf>----
Seth McDonald.
sethmcmail at pm dot me (mailing lists) 2336 E8D2 FEB1 5300 692C 62A9 5839 6AD8 9243 D369
Signature · 1 line
<https://www.alejandro-colomar.es>
origin of "void *" (was: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Hi Alex,
At 2026-01-10T12:30:13+0100, Alejandro Colomar wrote:
[rearranged]
Quoted 12 lines · Seth McDonald
Quoted 9 lines
I know that the void pointer type was not mentioned or used in POSIX.1-1988. Instead, the standard used the char pointer type for pointers to generic data. POSIX.1-1990 seems to implicitly require void pointers - at least for conformance to "POSIX.1, C Language Binding (C Standard Language-Dependent System Support)" - by including them in some function prototypes.
On Friday, 9 January 2026 at 20:34, Alejandro Colomar <[email protected]> wrote:
Hmmm, since POSIX.1-1988 was already written after some C89 draft, it seems void* was incorporated to C89 in a late draft.
[...]
Quoted 3 lines
Yup, K&R C 1st ed. is too old and I wouldn't expect it to have void*. I have a physical copy of K&R C 2nd ed. (1988) and it does have void*.
[...]
Quoted 2 lines
Being a scan [of 1e], it could be authentic. I don't have a physical copy of the first edition, so can't compare.
[...]
Quoted 7 lines
If anyone else reading the list knows anything, it would be welcome.
Be careful of online copies of K&R C, though. I once found one of the second edition, and it was fake (by comparing it to the actual copy).
Much better to get the physical copy. Although the first edition seems difficult to find.
I have a physical copy of K&R 1e, but unfortunately it is in storage and not easy to access. However...
I have before me as I type this a copy of Tom Plum's _Notes on the Draft C Standard_, copyright 1987 (Plum Hall, ISBN 609-927-3770). Publishers treat years in copyright notices the way automakers treat them in vehicle models, so I'd guess this puts the date of publication anywhere from 4Q1986 to 3Q1987.
In Chapter 2, "Comparison with Earlier C", on p. 24, it says:
"A pointer to any object type may be converted to a ‘‘generic’’ pointer and back again without change. The syntax for generic pointer is void *."
Tom Plum was a noteworthy figure in C standardization circles; his name shows up in much literature on the subject. I'd regard him as an authority.
https://plumhall.com/newsite/phall.html
Looks like he passed away last year. :(
Regards,
Branden
Alejandro Colomar
maintainerRe: origin of "void *" (was: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Hi Branden,
Quoted 43 lines · G. Branden Robinson
Hi Alex,
At 2026-01-10T12:30:13+0100, Alejandro Colomar wrote:
[rearranged]Quoted 12 lines · Seth McDonald
Quoted 9 lines
I know that the void pointer type was not mentioned or used in POSIX.1-1988. Instead, the standard used the char pointer type for pointers to generic data. POSIX.1-1990 seems to implicitly require void pointers - at least for conformance to "POSIX.1, C Language Binding (C Standard Language-Dependent System Support)" - by including them in some function prototypes.
On Friday, 9 January 2026 at 20:34, Alejandro Colomar <[email protected]> wrote:
Hmmm, since POSIX.1-1988 was already written after some C89 draft, it seems void* was incorporated to C89 in a late draft.
[...]
Quoted 3 lines
Yup, K&R C 1st ed. is too old and I wouldn't expect it to have void*. I have a physical copy of K&R C 2nd ed. (1988) and it does have void*.
[...]
Quoted 2 lines
Being a scan [of 1e], it could be authentic. I don't have a physical copy of the first edition, so can't compare.
[...]
Quoted 7 lines
If anyone else reading the list knows anything, it would be welcome.
Be careful of online copies of K&R C, though. I once found one of the second edition, and it was fake (by comparing it to the actual copy).
Much better to get the physical copy. Although the first edition seems difficult to find.
I have a physical copy of K&R 1e, but unfortunately it is in storage and not easy to access. However...
I have before me as I type this a copy of Tom Plum's
_Noteson the Draft CStandard_, copyright 1987 (Plum Hall, ISBN 609-927-3770). Publishers treat years in copyright notices the way automakers treat them in vehicle models, so I'd guess this puts the date of publication anywhere from 4Q1986 to 3Q1987.In Chapter 2, "Comparison with Earlier C", on p. 24, it says:
Quoted 7 lines
"A pointer to any object type may be converted to a ‘‘generic’’ pointer and back again without change. The syntax for generic pointer is void *."
Tom Plum was a noteworthy figure in C standardization circles; his name shows up in much literature on the subject. I'd regard him as an authority.
Thanks!
I've now checked the rationale for C89, and it says that
Several new types have been added:
And mentions 'void', 'void*', and 'signed char'. It seems it was an invention of C89.
Hve a lovely day!
Alex
Quoted 7 lines
https://plumhall.com/newsite/phall.html
Looks like he passed away last year. :(
Regards,
Branden
Signature · 1 line
<https://www.alejandro-colomar.es>
Alejandro Colomar
maintainerRe: origin of "void *" (was: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Quoted 54 lines · Alejandro Colomar
Hi Branden,
Quoted 43 lines · G. Branden Robinson
Hi Alex,
At 2026-01-10T12:30:13+0100, Alejandro Colomar wrote:
[rearranged]Quoted 12 lines · Seth McDonald
Quoted 9 lines
I know that the void pointer type was not mentioned or used in POSIX.1-1988. Instead, the standard used the char pointer type for pointers to generic data. POSIX.1-1990 seems to implicitly require void pointers - at least for conformance to "POSIX.1, C Language Binding (C Standard Language-Dependent System Support)" - by including them in some function prototypes.
On Friday, 9 January 2026 at 20:34, Alejandro Colomar <[email protected]> wrote:
Hmmm, since POSIX.1-1988 was already written after some C89 draft, it seems void* was incorporated to C89 in a late draft.
[...]
Quoted 3 lines
Yup, K&R C 1st ed. is too old and I wouldn't expect it to have void*. I have a physical copy of K&R C 2nd ed. (1988) and it does have void*.
[...]
Quoted 2 lines
Being a scan [of 1e], it could be authentic. I don't have a physical copy of the first edition, so can't compare.
[...]
Quoted 7 lines
If anyone else reading the list knows anything, it would be welcome.
Be careful of online copies of K&R C, though. I once found one of the second edition, and it was fake (by comparing it to the actual copy).
Much better to get the physical copy. Although the first edition seems difficult to find.
I have a physical copy of K&R 1e, but unfortunately it is in storage and not easy to access. However...
I have before me as I type this a copy of Tom Plum's
_Noteson the Draft CStandard_, copyright 1987 (Plum Hall, ISBN 609-927-3770). Publishers treat years in copyright notices the way automakers treat them in vehicle models, so I'd guess this puts the date of publication anywhere from 4Q1986 to 3Q1987.In Chapter 2, "Comparison with Earlier C", on p. 24, it says:
Quoted 7 lines
"A pointer to any object type may be converted to a ‘‘generic’’ pointer and back again without change. The syntax for generic pointer is void *."
Tom Plum was a noteworthy figure in C standardization circles; his name shows up in much literature on the subject. I'd regard him as an authority.
Quoted 8 lines
Thanks!
I've now checked the rationale for C89, and it says that
Several new types have been added:
And mentions 'void', 'void*', and 'signed char'. It seems it was an invention of C89.
Forgot to add link:
<https://www.open-std.org/jtc1/sc22/wg14/www/C89Rationale.pdf>
Quoted 17 lines
Hve a lovely day!
AlexQuoted 7 lines
https://plumhall.com/newsite/phall.html
Looks like he passed away last year. :(
Regards,
BrandenSignature · 1 line
<https://www.alejandro-colomar.es>
Signature · 1 line
<https://www.alejandro-colomar.es>
Re: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
In reply to Alejandro ColomarQuoted 4 lines · Alejandro Colomar
I think 'void*' is important enough that it would be useful to dig in its history further. Was it an invention of C89? Or was it an extension in some existing compilers? If the latter, it would be interesting to document which systems had it before C89.
From evidence in the utzoo Usenet archive, the idea was around before the ANSI C effort.
The first mention of "void *" is in November 1982, where Ken Dalka (ihuxe!dalka) observed in net.lang.c that void * was accepted as a type. He didn't say which compiler was being used, but an earlier post said ihuxe "runs USG 4.0 UN*X".
The next is from Mary Ann Horton ([email protected]) in January 1984, also in net.lang.c, who suggests using "(void *) 0" as a definition of NULL, giving a varargs function with args terminated by NULL as an example.
Then in March 1984, Doug Gwyn ([email protected]) says, as part of a discussion about casting the result of malloc in net.unix-wizards:
Quoted 3 lines
The C Language Standards Committee was talking about adding (void *) to the language as a generic pointer type. Perhaps that will eventually help...
It then shows up in various posts in both of those groups throughout 1984, including a summary by Henry Spencer in June 1984 of Larry Rosler's presentation on the ANSI C project at Usenix saying:
Quoted 10 lines
II. "void *" is a new kind of pointer, which cannot be dereferenced but
can be assigned to any other type of pointer without a cast. The idea here is that "char *" is no longer required to be the "universal" pointer type which can point to anything. So for example, the declaration of fread earlier really should go:extern int
fread(void *, int, int, FILE *);(People who have machines where all pointers have the same representation, don't complain. You are lucky. Others aren't.)
Thanks,
Signature · 1 line
Adam Sampson <[email protected]> <http://offog.org/>
Alejandro Colomar
maintainerRe: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Hi Adam,
Quoted 7 lines · Adam Sampson
Quoted 4 lines · Alejandro Colomar
I think 'void*' is important enough that it would be useful to dig in its history further. Was it an invention of C89? Or was it an extension in some existing compilers? If the latter, it would be interesting to document which systems had it before C89.
Quoted 7 lines
From evidence in the utzoo Usenet archive, the idea was around before the ANSI C effort.
The first mention of "void *" is in November 1982, where Ken Dalka (ihuxe!dalka) observed in
net.lang.cthat void * was accepted as a type. He didn't say which compiler was being used, but an earlier post said ihuxe "runs USG 4.0 UN*X".
Huh, would this be the "System IV" that was never externally released? The year seems consistent with that. Interesting! According to
<https://www.tuhs.org/Archive/Documentation/Manuals/Unix_4.0/README>,
the official name of this would be PWB 4.0. or Unix/TS 4.0.
Should we document it as Unix/TS 4.0?
This predates the C Committee by one year, BTW.
It would also be useful to know when the BSD lineage incorporated void*.
Quoted 22 lines
The next is from Mary Ann Horton ([email protected]) in January 1984, also in
net.lang.c, who suggests using "(void *) 0" as a definition of NULL, giving a varargs function with args terminated by NULL as an example.Then in March 1984, Doug Gwyn ([email protected]) says, as part of a discussion about casting the result of malloc in net.unix-wizards:
Quoted 3 lines
The C Language Standards Committee was talking about adding (void *) to the language as a generic pointer type. Perhaps that will eventually help...
It then shows up in various posts in both of those groups throughout 1984, including a summary by Henry Spencer in June 1984 of Larry Rosler's presentation on the ANSI C project at Usenix saying:
Quoted 6 lines
II. "void *" is a new kind of pointer, which cannot be dereferenced but
can be assigned to any other type of pointer without a cast. The idea here is that "char *" is no longer required to be the "universal" pointer type which can point to anything. So for example, the declaration of fread earlier really should go:
Quoted 6 lines
Quoted 4 lines
extern int
fread(void *, int, int, FILE *);(People who have machines where all pointers have the same representation, don't complain. You are lucky. Others aren't.)
Thanks,
Thanks a lot!
Have a lovely day!
Alex
Signature · 1 line
<https://www.alejandro-colomar.es>
PATCH 20/25 man/man3type/wchar_t.3type: HISTORY: Split wchar_t(3type) and WCHAR_M{AX,IN}
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
--- man/man3type/wchar_t.3type | 8 ++++++++ 1 file changed, 8 insertions(+)
man/man3type/wchar_t.3type +8 -0
@@ -29,6 +29,14 @@ .SH DESCRIPTION .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY +.TP +.I wchar_t +C99, +POSIX.1-2001. +.TP +.B WCHAR_MAX +.TQ +.B WCHAR_MIN C99, POSIX.1-2001. .P The
Signature · 1 line
2.47.3
PATCH 21/25 man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type)
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
wchar_t(3type) first appeared in SUSv1.[1]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 803.
--- man/man3type/wchar_t.3type | 1 + 1 file changed, 1 insertion(+)
man/man3type/wchar_t.3type +1 -0
@@ -31,6 +31,7 @@ .SH STANDARDS .SH HISTORY .TP .I wchar_t +SUSv1, C99, POSIX.1-2001. .TP
Signature · 1 line
2.47.3
Re: [PATCH v1 21/25] man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type)
Hi Seth,
Quoted 17 lines · Seth McDonald
From: Seth McDonald <[email protected]>
wchar_t(3type)first appeared in SUSv1.[1][1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", p. 803.
Signed-off-by Seth McDonald <[email protected]>--- man/man3type/wchar_t.3type | 1 + 1 file changed, 1 insertion(+)man/man3type/wchar_t.3type +0
-0
man/man3type/wchar_t.3type .SH STANDARDS · line 36
Quoted 6 lines
man/man3type/wchar_t.3type +1
-0@@ -31,6 +31,7 @@ .SH STANDARDS .SH HISTORY .TP .I wchar_t +SUSv1, C99, POSIX.1-2001.
I've recently learned that wchar_t and related APIs were introduced to ISO C in C95. If you are interested in them, you could check the C95 draft (there's a link in standards(7) --I added it a few weeks ago--). Otherwise, I'll have a look at it myself. Let me know.
I've applied the patch. Thanks!
Have a lovely day!
Alex
Quoted 4 lines
man/man3type/wchar_t.3type +0
-0.TPSignature · 1 line
2.47.3
Signature · 1 line
<https://www.alejandro-colomar.es>
Re: [PATCH v1 21/25] man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type)
Hi Alex,
Quoted 1 line · Alejandro Colomar
Hi Seth,
[...]
Quoted 4 lines
I've recently learned that
wchar_tand related APIs were introduced to ISO C in C95. If you are interested in them, you could check the C95 draft (there's a link in standards(7) --I added it a few weeks ago--). Otherwise, I'll have a look at it myself. Let me know.
I can include this in later patches, as long as citing the draft is sufficient justification. I personally tend to have a more 'final standard only' mindset, but if you're okay with the draft, then I'm all good to use it.
For the 3type section I've already covered, it'd probably be easier if you could patch up the few types that first appeared in C95. I'd rather not keep going back to refine previous patches, as I've found (from general experience) this mindset tends to cause me to *constantly* find new ways to polish what I've already done, preventing me from making much progress.
----
Seth McDonald.
sethmcmail at pm dot me (mailing lists) 2336 E8D2 FEB1 5300 692C 62A9 5839 6AD8 9243 D369
Alejandro Colomar
maintainerRe: [PATCH v1 21/25] man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type)
Hi Seth,
Quoted 10 lines · Seth McDonald
Hi Alex,
Quoted 1 line · Alejandro Colomar
Hi Seth,
[...]
Quoted 4 lines
I've recently learned that
wchar_tand related APIs were introduced to ISO C in C95. If you are interested in them, you could check the C95 draft (there's a link in standards(7) --I added it a few weeks ago--). Otherwise, I'll have a look at it myself. Let me know.
Quoted 4 lines
I can include this in later patches, as long as citing the draft is sufficient justification. I personally tend to have a more 'final standard only' mindset, but if you're okay with the draft, then I'm all good to use it.
For ISO C, unless you have the money to pay for the standard documents (usually, this is only done by companies that need certification), the drafts are the only available thing. The actual standards are behing a paywall, and most people never see one. I have never seen an ISO C standard (and I'm member of the C Committee).
The C Committee publishes drafts of what will become the standard, and usually, it's enough to consult the draft that's closest to the standard. See also:
<https://stackoverflow.com/questions/81656/where-do-i-find-the-current-c-or-c-standard-documents>
For C95, the draft n412 is, as far as I understand, identical to the standard (except for the ISO cover sheet, etc.). Draft n412 was an early draft for C99 published around the publication of C95, and even in the SUMMARY of the draft, it states that "This document represents C90 with Technical Corrigendum 1 and Amendment 1 applied". See
<https://www.open-std.org/jtc1/sc22/wg14/www/docs/n412.pdf>.
For C23, for example, the draft n3220 is identical to C23 except for one typo in C23 that was fixed in n3220. (n3220 is the first draft of C2y).
In other versions of ISO C, drafts may differ more from the actual standard.
Quoted 7 lines
For the 3type section I've already covered, it'd probably be easier if you could patch up the few types that first appeared in C95. I'd rather not keep going back to refine previous patches, as I've found (from general experience) this mindset tends to cause me to *constantly* find new ways to polish what I've already done, preventing me from making much progress.
Yes, I'm taking your patches as they already improve the pages. I was mentioning this in case you want to write patches in the future that also document C95. FWIW, I've applied the patches already.
Cheers,
Alex
Quoted 5 lines
----
Seth McDonald.
sethmcmail at pm dot me (mailing lists) 2336 E8D2 FEB1 5300 692C 62A9 5839 6AD8 9243 D369
Signature · 1 line
<https://www.alejandro-colomar.es>
PATCH 22/25 man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of WCHAR_M{AX,IN}
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
WCHAR_MAX and WCHAR_MIN first appeared in SUSv2.[1]
[1] CAE Specification, System Interfaces and Headers, Issue 5, Chapter 4 "Headers", p. 1213.
<https://pubs.opengroup.org/onlinepubs/7908799/xsh/wchar.h.html>
--- man/man3type/wchar_t.3type | 1 + 1 file changed, 1 insertion(+)
man/man3type/wchar_t.3type +1 -0
@@ -38,6 +38,7 @@ .SH HISTORY .B WCHAR_MAX .TQ .B WCHAR_MIN +SUSv2, C99, POSIX.1-2001. .P The
Signature · 1 line
2.47.3
PATCH 23/25 man/man3type/wint_t.3type: HISTORY: Split wint_t(3type) and WEOF from WINT_M{AX,IN}
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
--- man/man3type/wint_t.3type | 10 ++++++++++ 1 file changed, 10 insertions(+)
man/man3type/wint_t.3type +10 -0
@@ -40,6 +40,16 @@ .SH DESCRIPTION .SH STANDARDS C11, POSIX.1-2024. .SH HISTORY +.TP +.I wint_t +.TQ +.B WEOF +C99, +POSIX.1-2001. +.TP +.B WINT_MAX +.TQ +.B WINT_MIN C99, POSIX.1-2001. .P The
Signature · 1 line
2.47.3
PATCH 24/25 man/man3type/wint_t.3type: HISTORY: Update first SUS appearance of wint_t(3type) and WEOF
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
wint_t(3type) and WEOF first appeared in SUSv1.[1]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4, Version 2, Chapter 4 "Headers", pp. 867-668.
--- man/man3type/wint_t.3type | 1 + 1 file changed, 1 insertion(+)
man/man3type/wint_t.3type +1 -0
@@ -44,6 +44,7 @@ .SH HISTORY .I wint_t .TQ .B WEOF +SUSv1, C99, POSIX.1-2001. .TP
Signature · 1 line
2.47.3
PATCH 25/25 man/man3type/wint_t.3type: DESCRIPTION: ffix
In reply to Seth McDonaldFrom: Seth McDonald <[email protected]>
--- man/man3type/wint_t.3type | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
man/man3type/wint_t.3type +4 -1
@@ -28,7 +28,10 @@ .SH SYNOPSIS .SH DESCRIPTION .I wint_t is a type used in functions that work with wide characters. -It is capable of storing any valid wchar_t or WEOF. +It is capable of storing any valid +.IR wchar_t (3type) +or +.BR WEOF . It is an integer type. .P .B WEOF
Signature · 1 line
2.47.3
Alejandro Colomar
maintainerQuoted 1 line · Seth McDonald
G'day,
Gidday!
Quoted 11 lines
This patch set should account for all other man-page entries in the 3type section whose listed first POSIX/SUS appearance can be updated. As per Alex's request, any added POSIX/SUS versions are listed in chronological order with respect to any other listed standards.
I did make one "exception" though, regarding types that appeared in both C89 and POSIX.1-1988. Despite POSIX.1-1988 being published before C89, many (if not all) such types were included in POSIX.1-1988 primarily for compatibility with the then-upcoming C standard (i.e. C89). So it is likely more chronologically accurate to list C89 before POSIX.1-1988 in these cases.
Agree.
Quoted 1 line
Seth McDonald (25):
Thanks! I've applied all 25 patches. I'll push in a moment.
Have a lovely day!
Alex
Quoted 93 lines
man/man3type/div_t.3type: HISTORY: Update first SUS appearance of
[l]div_t(3type) man/man3type/id_t.3type: HISTORY: Update first POSIX appearance of id_t(3type) man/man3type/intptr_t.3type: HISTORY: Split types and macros man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [u]intptr_t(3type) man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [U]INTPTR_MAX and INTPTR_MIN man/man3type/intptr_t.3type: HISTORY: [U]INTPTR_WIDTH is not in POSIX. man/man3type/intptr_t.3type: DESCRIPTION: ffix man/man3type/iovec.3type: HISTORY: Update first POSIX appearance of iovec(3type) man/man3type/lconv.3type: HISTORY: Split lconv(3type) and int_[np]_{cs_precedes,sep_by_space,sign_posn} man/man3type/lconv.3type: HISTORY: Update first SUS appearance of lconv(3type) man/man3type/mbstate_t.3type: HISTORY: Update first SUS appearance of mbstate_t(3type) man/man3type/ptrdiff_t.3type: HISTORY: Update first SUS appearance of ptrdiff_t(3type) man/man3type/size_t.3type: HISTORY: Update first POSIX appearance of [s]size_t(3type) man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of time_t(3type) man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of suseconds_t(3type) man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of useconds_t(3type) man/man3type/timeval.3type: HISTORY: Update first SUS appearance of timeval(3type) man/man3type/va_list.3type: HISTORY: Update first SUS appearance of va_list(3type) man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type) man/man3type/wchar_t.3type: HISTORY: Split wchar_t(3type) and WCHAR_M{AX,IN} man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type) man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of WCHAR_M{AX,IN} man/man3type/wint_t.3type: HISTORY: Split wint_t(3type) and WEOF from WINT_M{AX,IN}man/man3type/wint_t.3type: HISTORY: Update first SUS appearance of
wint_t(3type)and WEOF
man/man3type/wint_t.3type: DESCRIPTION: ffixman/man3type/div_t.3type | 1 + man/man3type/id_t.3type | 4 +++- man/man3type/intptr_t.3type | 17 +++++++++++++++-- man/man3type/iovec.3type | 3 ++- man/man3type/lconv.3type | 16 ++++++++++++++++ man/man3type/mbstate_t.3type | 1 + man/man3type/ptrdiff_t.3type | 4 +++- man/man3type/size_t.3type | 5 +++-- man/man3type/time_t.3type | 10 +++++++--- man/man3type/timeval.3type | 1 + man/man3type/va_list.3type | 4 +++- man/man3type/void.3type | 3 ++- man/man3type/wchar_t.3type | 10 ++++++++++ man/man3type/wint_t.3type | 16 +++++++++++++++- 14 files changed, 82 insertions(+), 13 deletions(-)Range-diff against v0:
-: ------------ > 1: a6650fa27290 man/man3type/div_t.3type: HISTORY: Update first SUS appearance of [l]div_t(3type) -: ------------ > 2: 963da2474e6d man/man3type/id_t.3type: HISTORY: Update first POSIX appearance of id_t(3type) -: ------------ > 3: 3a8217dd1508 man/man3type/intptr_t.3type: HISTORY: Split types and macros -: ------------ > 4: c587540f97c4 man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [u]intptr_t(3type) -: ------------ > 5: 455e106a5e0d man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [U]INTPTR_MAX and INTPTR_MIN -: ------------ > 6: 26e1b48d4721 man/man3type/intptr_t.3type: HISTORY: [U]INTPTR_WIDTH is not in POSIX. -: ------------ > 7: c5e354f0878c man/man3type/intptr_t.3type: DESCRIPTION: ffix -: ------------ > 8: 0cf31543f6d2 man/man3type/iovec.3type: HISTORY: Update first POSIX appearance of iovec(3type) -: ------------ > 9: fb168b7dee6d man/man3type/lconv.3type: HISTORY: Split lconv(3type) and int_[np]_{cs_precedes,sep_by_space,sign_posn} -: ------------ > 10: ca58744440b0 man/man3type/lconv.3type: HISTORY: Update first SUS appearance of lconv(3type) -: ------------ > 11: b4bba25be7df man/man3type/mbstate_t.3type: HISTORY: Update first SUS appearance of mbstate_t(3type) -: ------------ > 12: 741cd602cffb man/man3type/ptrdiff_t.3type: HISTORY: Update first SUS appearance of ptrdiff_t(3type) -: ------------ > 13: 3cf622ba3c3c man/man3type/size_t.3type: HISTORY: Update first POSIX appearance of [s]size_t(3type) -: ------------ > 14: d1a047ff7ec8 man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of time_t(3type) -: ------------ > 15: 7f54dbc4481d man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of suseconds_t(3type) -: ------------ > 16: d8cf35e1cf3e man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of useconds_t(3type) -: ------------ > 17: 47c6b50cf1a1 man/man3type/timeval.3type: HISTORY: Update first SUS appearance of timeval(3type) -: ------------ > 18: 9a9b76c452fe man/man3type/va_list.3type: HISTORY: Update first SUS appearance of va_list(3type) -: ------------ > 19: efe8112034e9 man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type) -: ------------ > 20: 87a39e047c0e man/man3type/wchar_t.3type: HISTORY: Split wchar_t(3type) and WCHAR_M{AX,IN} -: ------------ > 21: a7d237cd5287 man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type) -: ------------ > 22: fb806a50acd6 man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of WCHAR_M{AX,IN} -: ------------ > 23: 730e0c713039 man/man3type/wint_t.3type: HISTORY: Split wint_t(3type) and WEOF from WINT_M{AX,IN} -: ------------ > 24: a9ac764ac283 man/man3type/wint_t.3type: HISTORY: Update first SUS appearance of wint_t(3type) and WEOF -: ------------ > 25: 694ea5baaddc man/man3type/wint_t.3type: DESCRIPTION: ffixSignature · 1 line
2.47.3
Signature · 1 line
<https://www.alejandro-colomar.es>