man6dir := $(mandir)/man6
man7dir := $(mandir)/man7
man8dir := $(mandir)/man8
-manext := \.[0-9]
+manext := \.[0-9]\w*
man0ext := .0
man1ext := .1
man2ext := .2
man3ext := .3
+man3type_ext:= .3type
man4ext := .4
man5ext := .5
man6ext := .6
########################################################################
# man
-MANPAGES := $(sort $(shell find $(MANDIR)/man?/ -type f | grep '$(manext)$$'))
-LINTMAN := $(sort $(shell find $(MANDIR)/man?/ -type f | grep '$(manext)$$' \
+MANPAGES := $(sort $(shell find $(MANDIR)/man?/ -type f | grep '$(manext)'))
+LINTMAN := $(sort $(shell find $(MANDIR)/man?/ -type f | grep '$(manext)' \
| xargs grep -l '^\.TH '))
_HTMLPAGES := $(patsubst $(MANDIR)/%,$(_HTMLDIR)/%.html,$(MANPAGES))
_htmlpages := $(patsubst $(_HTMLDIR)/%,$(_htmldir)/%,$(_HTMLPAGES))
_man1pages := $(filter %$(man1ext),$(_manpages))
_man2pages := $(filter %$(man2ext),$(_manpages))
_man3pages := $(filter %$(man3ext),$(_manpages))
+_man3pages += $(filter %$(man3type_ext),$(_manpages))
_man4pages := $(filter %$(man4ext),$(_manpages))
_man5pages := $(filter %$(man5ext),$(_manpages))
_man6pages := $(filter %$(man6ext),$(_manpages))
_man8dir := $(filter %man8/.,$(_mandirs))
_htmlpages_rm := $(addsuffix -rm,$(wildcard $(_htmlpages)))
-_manpages_rm := $(addsuffix -rm,$(wildcard $(_manpages)))
-_man0pages_rm := $(filter %$(man0ext)-rm,$(_manpages_rm))
-_man1pages_rm := $(filter %$(man1ext)-rm,$(_manpages_rm))
-_man2pages_rm := $(filter %$(man2ext)-rm,$(_manpages_rm))
-_man3pages_rm := $(filter %$(man3ext)-rm,$(_manpages_rm))
-_man4pages_rm := $(filter %$(man4ext)-rm,$(_manpages_rm))
-_man5pages_rm := $(filter %$(man5ext)-rm,$(_manpages_rm))
-_man6pages_rm := $(filter %$(man6ext)-rm,$(_manpages_rm))
-_man7pages_rm := $(filter %$(man7ext)-rm,$(_manpages_rm))
-_man8pages_rm := $(filter %$(man8ext)-rm,$(_manpages_rm))
+_man0pages_rm := $(addsuffix -rm,$(wildcard $(_man0pages)))
+_man1pages_rm := $(addsuffix -rm,$(wildcard $(_man1pages)))
+_man2pages_rm := $(addsuffix -rm,$(wildcard $(_man2pages)))
+_man3pages_rm := $(addsuffix -rm,$(wildcard $(_man3pages)))
+_man4pages_rm := $(addsuffix -rm,$(wildcard $(_man4pages)))
+_man5pages_rm := $(addsuffix -rm,$(wildcard $(_man5pages)))
+_man6pages_rm := $(addsuffix -rm,$(wildcard $(_man6pages)))
+_man7pages_rm := $(addsuffix -rm,$(wildcard $(_man7pages)))
+_man8pages_rm := $(addsuffix -rm,$(wildcard $(_man8pages)))
_htmldirs_rmdir := $(addsuffix -rmdir,$(wildcard $(_htmldirs)))
_mandirs_rmdir := $(addsuffix -rmdir,$(wildcard $(_mandirs)))
All of these system calls return a
.I stat
structure (see
-.BR stat-struct (3)).
+.BR stat (3type)).
.PP
.\" Background: inode attributes are modified with i_mutex held, but
.\" read by stat() without taking the mutex.
.BR readlink (2),
.BR statx (2),
.BR utime (2),
-.BR stat-struct (3),
+.BR stat (3type),
.BR capabilities (7),
.BR inode (7),
.BR symlink (7)
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH AIOCB-STRUCT 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH AIOCB-STRUCT 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
aiocb-struct \- asynchronous I/O control block
.SH LIBRARY
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH BLKCNT_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH BLKCNT_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
blkcnt_t \- file block counts
.SH LIBRARY
The following header also provides this type:
.IR <sys/stat.h> .
.SH SEE ALSO
-.BR stat-struct (3)
+.BR stat (3type)
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH BLKSIZE_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH BLKSIZE_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
blksize_t \- file block sizes
.SH LIBRARY
The following header also provides this type:
.IR <sys/stat.h> .
.SH SEE ALSO
-.BR stat-struct (3)
+.BR stat (3type)
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH CC_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH CC_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
cc_t \- terminal special characters
.SH LIBRARY
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH CLOCK_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH CLOCK_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
clock_t \- system time
.SH LIBRARY
-.TH CLOCKID_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH CLOCKID_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
clockid_t \- clock ID for the clock and timer functions
.SH LIBRARY
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH DEV_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH DEV_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
dev_t \- devide ID
.SH LIBRARY
.IR <sys/stat.h> .
.SH SEE ALSO
.BR mknod (2),
-.BR stat-struct (3)
+.BR stat (3type)
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH DIV_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH DIV_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
div_t, ldiv_t, lldiv_t, imaxdiv_t \-
quotient and remainder of an integer division
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH DOUBLE_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH DOUBLE_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
float_t, double_t \- most efficient floating types
.SH LIBRARY
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH FENV_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH FENV_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
fenv_t, fexcept_t \- floating-point environment
.SH LIBRARY
+++ /dev/null
-.so man3/fenv_t.3
--- /dev/null
+.so man3/fenv_t.3type
+++ /dev/null
-.so man3/double_t.3
--- /dev/null
+.so man3/double_t.3type
+++ /dev/null
-.so man3/id_t.3
--- /dev/null
+.so man3/id_t.3type
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH ID_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH ID_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
pid_t, uid_t, gid_t, id_t \- process/user/group identifier
.SH LIBRARY
+++ /dev/null
-.so man3/div_t.3
--- /dev/null
+.so man3/div_t.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH INTN_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH INTN_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
intN_t, int8_t, int16_t, int32_t, int64_t,
uintN_t, uint8_t, uint16_t, uint32_t, uint64_t
and
.IR uint32_t .
.SH SEE ALSO
-.BR intmax_t (3),
-.BR intptr_t (3),
+.BR intmax_t (3type),
+.BR intptr_t (3type),
.BR printf (3)
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH INTMAX_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH INTMAX_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
intmax_t, uintmax_t \- greatest-width basic integer types
.SH LIBRARY
These types may not be as large as extended integer types, such as
.I __int128
.SH SEE ALSO
-.BR int64_t (3),
-.BR intptr_t (3),
+.BR int64_t (3type),
+.BR intptr_t (3type),
.BR printf (3),
.BR strtoimax (3)
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH INTPTR_T 3 2022-02-25 Linux "Linux Programmer's Manual"
+.TH INTPTR_T 3type 2022-02-25 Linux "Linux Programmer's Manual"
.SH NAME
intptr_t, uintptr_t \- integer types wide enough to hold pointers
.SH LIBRARY
The following header also provides these types:
.IR <inttypes.h> .
.SH SEE ALSO
-.BR intmax_t (3),
+.BR intmax_t (3type),
.BR void (3)
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH LCONV-STRUCT 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH LCONV-STRUCT 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
struct lconv \- numeric formatting information
.SH LIBRARY
+++ /dev/null
-.so man3/div_t.3
--- /dev/null
+.so man3/div_t.3type
+++ /dev/null
-.so man3/div_t.3
--- /dev/null
+.so man3/div_t.3type
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH MODE_T 3 2021-11-02 Linux "Linux Programmer's Manual"
+.TH MODE_T 3type 2021-11-02 Linux "Linux Programmer's Manual"
.SH NAME
mode_t \- file attributes
.SH LIBRARY
.BR mkdir (2),
.BR open (2),
.BR umask (2),
-.BR stat-struct (3)
+.BR stat (3type)
+++ /dev/null
-.so man3/id_t.3
--- /dev/null
+.so man3/id_t.3type
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"
-.TH SOCKADDR 3 2022-02-24 Linux "Linux Programmer's Manual"
+.TH SOCKADDR 3type 2022-02-24 Linux "Linux Programmer's Manual"
.SH NAME
sockaddr, sockaddr_storage, sockaddr_in, sockaddr_in6, sockaddr_un, socklen_t,
in_addr, in6_addr, in_addr_t, in_port_t,
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/sockaddr-struct.3
--- /dev/null
+.so man3/sockaddr.3type
+++ /dev/null
-.so man3/id_t.3
--- /dev/null
+.so man3/id_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intN_t.3
--- /dev/null
+.so man3/intN_t.3type
+++ /dev/null
-.so man3/intmax_t.3
--- /dev/null
+.so man3/intmax_t.3type
+++ /dev/null
-.so man3/intptr_t.3
--- /dev/null
+.so man3/intptr_t.3type
.BR setitimer (2),
.BR sleep (3),
.BR ualarm (3),
-.BR useconds_t (3),
+.BR useconds_t (3type),
.BR time (7)