Hi Alex, On 9/25/20 10:03 AM, Alejandro Colomar wrote: > The contents of each type are a logic block that is indented as a block. > They are not separate paragraphs that happen to be indented separately, > but a set of continuous paragraphs, all in the same level, > indented as a block from the list entry--the name of the type--. > Therefore, it makes more sense to use block indentation, represented by > .RS/.RE, rather than indenting each paragraph separately. > That way it's also easier to further indent a separate paragraph inside > a block, which happens for example in the case of float_t & double_t. > It's simply much easier now to use .IP specifically in those cases where > you want to indent just a single paragraph. > > Also added an ending separator comment line just after the last type. > > Signed-off-by: Alejandro Colomar <colomar.6.4.3@xxxxxxxxx> Just to confirm: I think I'm supposed to waiting on a revised version of this patch, right? (This version of the patch doesn't apply in my tree.) Thanks, Michael > --- > > Hi Michael, > > Please, apply after float_t patches. > > Thanks, > > Alex > > man7/system_data_types.7 | 331 +++++++++++++++++++++++---------------- > 1 file changed, 192 insertions(+), 139 deletions(-) > > diff --git a/man7/system_data_types.7 b/man7/system_data_types.7 > index caca5bb3c..e07ddb468 100644 > --- a/man7/system_data_types.7 > +++ b/man7/system_data_types.7 > @@ -65,10 +65,11 @@ system_data_types \- overview of system data types > .\"------------------------------------- aiocb ------------------------/ > .TP > .I aiocb > -.IP > +.RS > +.PP > Include: > .IR <aio.h> . > -.IP > +.PP > .EX > struct aiocb { > int aio_fildes; /* File descriptor */ > @@ -80,12 +81,12 @@ struct aiocb { > int aio_lio_opcode;/* Operation to be performed */ > }; > .EE > -.IP > +.PP > For further information about this structure, see > .BR aio (7). > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR aio_cancel (3), > .BR aio_error (3), > @@ -95,40 +96,43 @@ See also: > .BR aio_suspend (3), > .BR aio_write (3), > .BR lio_listio (3) > +.RE > .\"------------------------------------- div_t ------------------------/ > .TP > .I div_t > -.IP > +.RS > +.PP > Include: > .IR <stdlib.h> . > -.IP > +.PP > .EX > typedef struct { > int quot; /* Quotient */ > int rem; /* Remainder */ > } div_t; > .EE > -.IP > +.PP > It is the type of the value returned by the > .BR div (3) > function. > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR div (3) > +.RE > .\"------------------------------------- double_t ---------------------/ > .TP > .I double_t > -.IP > +.RS > +.PP > Include: > .IR <math.h> . > -.IP > +.PP > The implementation's most efficient floating type at least as wide as > .IR double . > Its type depends on the value of the macro > .BR FLT_EVAL_METHOD : > -.RS > .IP * > 0; > .I double_t > @@ -146,55 +150,59 @@ is > .IR "long double" . > .IP * > Other implementation-defined values. > -.RE > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also the > .I float_t > type in this page. > +.RE > .\"------------------------------------- fenv_t -----------------------/ > .TP > .I fenv_t > -.IP > +.RS > +.PP > Include: > .IR <fenv.h> . > -.IP > +.PP > This type represents the entire floating-point environment, > including control modes and status flags; for further details, see > .BR fenv (3). > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR fenv (3) > +.RE > .\"------------------------------------- fexcept_t --------------------/ > .TP > .I fexcept_t > -.IP > +.RS > +.PP > Include: > .IR <fenv.h> . > -.IP > +.PP > This type represents the floating-point status flags collectively; > for further details see > .BR fenv (3). > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR fenv (3) > +.RE > .\"------------------------------------- float_t ----------------------/ > .TP > .I float_t > -.IP > +.RS > +.PP > Include: > .IR <math.h> . > -.IP > +.PP > The implementation's most efficient floating type at least as wide as > .IR float . > Its type depends on the value of the macro > .BR FLT_EVAL_METHOD : > -.RS > .IP * > 0; > .I float_t > @@ -212,17 +220,18 @@ is > .IR "long double" . > .IP * > Other implementation-defined values. > -.RE > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also the > .I double_t > type in this page. > +.RE > .\"------------------------------------- gid_t ------------------------/ > .TP > .I gid_t > -.IP > +.RS > +.PP > Include: > .IR <sys/types.h> ; > or > @@ -239,13 +248,13 @@ or > .I <sys/stat.h> > or > .IR <unistd.h> . > -.IP > +.PP > A type used to hold group IDs. > According to POSIX, > this shall be an integer type. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR chown (2), > .BR getgid (2), > @@ -254,15 +263,17 @@ See also: > .BR getresgid (2), > .BR getgrnam (2), > .BR credentials (7) > +.RE > .\"------------------------------------- id_t -------------------------/ > .TP > .I id_t > -.IP > +.RS > +.PP > Include: > .IR <sys/types.h> ; > or > .IR <sys/resource.h> . > -.IP > +.PP > A type used to hold a general identifier. > According to POSIX, > this shall be an integer type that can be used to contain a > @@ -270,41 +281,45 @@ this shall be an integer type that can be used to contain a > .IR uid_t , > or > .IR gid_t . > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR getpriority (2), > .BR waitid (2) > +.RE > .\"------------------------------------- imaxdiv_t --------------------/ > .TP > .I imaxdiv_t > -.IP > +.RS > +.PP > Include: > .IR <inttypes.h> . > -.IP > +.PP > .EX > typedef struct { > intmax_t quot; /* Quotient */ > intmax_t rem; /* Remainder */ > } imaxdiv_t; > .EE > -.IP > +.PP > It is the type of the value returned by the > .BR imaxdiv (3) > function. > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR imaxdiv (3) > +.RE > .\"------------------------------------- lconv ------------------------/ > .TP > .I lconv > -.IP > +.RS > +.PP > Include: > .IR <locale.h> . > -.IP > +.PP > .EX > struct lconv { /* Values in the "C" locale: */ > char *decimal_point; /* "." */ > @@ -333,66 +348,72 @@ struct lconv { /* Values in the "C" locale: */ > char int_n_sign_posn; /* CHAR_MAX */ > }; > .EE > -.IP > +.PP > Contains members related to the formatting of numeric values. > In the "C" locale, its members have the values > shown in the comments above. > -.IP > +.PP > Conforming to: C11 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR setlocale (3), > .BR localeconv (3), > .BR charsets (5), > .BR locale (7) > +.RE > .\"------------------------------------- ldiv_t -----------------------/ > .TP > .I ldiv_t > -.IP > +.RS > +.PP > Include: > .IR <stdlib.h> . > -.IP > +.PP > .EX > typedef struct { > long quot; /* Quotient */ > long rem; /* Remainder */ > } ldiv_t; > .EE > -.IP > +.PP > It is the type of the value returned by the > .BR ldiv (3) > function. > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR ldiv (3) > +.RE > .\"------------------------------------- lldiv_t ----------------------/ > .TP > .I lldiv_t > -.IP > +.RS > +.PP > Include: > .IR <stdlib.h> . > -.IP > +.PP > .EX > typedef struct { > long long quot; /* Quotient */ > long long rem; /* Remainder */ > } lldiv_t; > .EE > -.IP > +.PP > It is the type of the value returned by the > .BR lldiv (3) > function. > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR lldiv (3) > +.RE > .\"------------------------------------- pid_t ------------------------/ > .TP > .I pid_t > -.IP > +.RS > +.PP > Include > .IR <sys/types.h> ; > or > @@ -419,7 +440,7 @@ or > .I <unistd.h> > or > .IR <utmpx.h> . > -.IP > +.PP > This type is used for storing process IDs, process group IDs, and session IDs. > According to POSIX, it shall be a signed integer type, > and the implementation shall support one or more programming environments > @@ -427,9 +448,9 @@ where the width of > .I pid_t > is no greater than the width of the type > .IR long . > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR fork (2), > .BR getpid (2), > @@ -443,20 +464,22 @@ See also: > .BR waitpid (2), > .BR sigqueue (3), > .BR credentials (7), > +.RE > .\"------------------------------------- ptrdiff_t --------------------/ > .TP > .I ptrdiff_t > -.IP > +.RS > +.PP > Include: > .IR <stddef.h> . > -.IP > +.PP > Used for a count of elements, and array indices. > It is the result of subtracting two pointers. > According to the C language standard, it shall be a signed integer type > capable of storing values in the range > .RB [ PTRDIFF_MIN , > .BR PTRDIFF_MAX ]. > -.IP > +.PP > The length modifier for > .I ptrdiff_t > for the > @@ -472,21 +495,23 @@ or > for printing > .I ptrdiff_t > values. > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also the > .I size_t > and > .I ssize_t > types in this page. > +.RE > .\"------------------------------------- regmatch_t -------------------/ > .TP > .I regmatch_t > -.IP > +.RS > +.PP > Include: > .IR <regex.h> . > -.IP > +.PP > .EX > typedef struct { > regoff_t rm_so; /* Byte offset from start of string > @@ -496,36 +521,38 @@ typedef struct { > substring */ > } regmatch_t; > .EE > -.IP > +.PP > This is a structure type used in regular expression matching. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR regexec (3) > +.RE > .\"------------------------------------- regoff_t ---------------------/ > .TP > .I regoff_t > -.IP > +.RS > +.PP > Include: > .IR <regex.h> . > -.IP > +.PP > According to POSIX, it shall be a signed integer type > capable of storing the largest value that can be stored in either a > .I ptrdiff_t > type or a > .I ssize_t > type. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > Notes: Prior to POSIX.1-2008, the type was capable of storing > the largest value that can be stored in either an > .I off_t > type or a > .I ssize_t > type. > -.IP > +.PP > See also the > .I regmatch_t > structure and the > @@ -533,10 +560,12 @@ structure and the > and > .I ssize_t > types in this page. > +.RE > .\"------------------------------------- sigevent ---------------------/ > .TP > .I sigevent > -.IP > +.RS > +.PP > Include: > .IR <signal.h> ; > or > @@ -545,7 +574,7 @@ or > .I <mqueue.h> > or > .IR <time.h> . > -.IP > +.PP > .EX > struct sigevent { > int sigev_notify; /* Notification type */ > @@ -557,12 +586,12 @@ struct sigevent { > /* Notification attributes */ > }; > .EE > -.IP > +.PP > For further details about this type, see > .BR sigevent (7). > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > Notes: > .I <aio.h> > and > @@ -570,25 +599,27 @@ and > define > .I sigevent > since POSIX.1-2008. > -.IP > +.PP > See also: > .BR timer_create (2), > .BR getaddrinfo_a (3), > .BR lio_listio (3), > .BR mq_notify (3) > -.IP > +.PP > See also the > .I aiocb > structure in this page. > +.RE > .\"------------------------------------- siginfo_t --------------------/ > .TP > .I siginfo_t > -.IP > +.RS > +.PP > Include: > .IR <signal.h> ; > or > .IR <sys/wait.h> . > -.IP > +.PP > .EX > typedef struct { > int si_signo; /* Signal number */ > @@ -600,36 +631,38 @@ typedef struct { > union sigval si_value; /* Signal value */ > } siginfo_t; > .EE > -.IP > +.PP > Information associated with a signal. > For further details on this structure > (including additional, Linux-specific fields), see > .BR sigaction (2). > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR pidfd_send_signal (2), > .BR rt_sigqueueinfo (2), > .BR sigaction (2), > .BR sigwaitinfo (2), > .BR psiginfo (3) > +.RE > .\"------------------------------------- sigset_t ---------------------/ > .TP > .I sigset_t > -.IP > +.RS > +.PP > Include: > .IR <signal.h> ; > or > .I <spawn.h> > or > .IR <sys/select.h> . > -.IP > +.PP > This is a type that represents a set of signals. > According to POSIX, this shall be an integer or structure type. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR epoll_pwait (2), > .BR ppoll (2), > @@ -641,29 +674,31 @@ See also: > .BR sigsuspend (2), > .BR sigwaitinfo (2), > .BR signal (7) > +.RE > .\"------------------------------------- sigval -----------------------/ > .TP > .I sigval > -.IP > +.RS > +.PP > Include: > .IR <signal.h> . > -.IP > +.PP > .EX > union sigval { > int sigval_int; /* Integer value */ > void *sigval_ptr; /* Pointer value */ > }; > .EE > -.IP > +.PP > Data passed with a signal. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR pthread_sigqueue (3), > .BR sigqueue (3), > .BR sigevent (7) > -.IP > +.PP > See also the > .I sigevent > structure > @@ -671,10 +706,12 @@ and the > .I siginfo_t > type > in this page. > +.RE > .\"------------------------------------- size_t -----------------------/ > .TP > .I size_t > -.IP > +.RS > +.PP > Include: > .I <stddef.h> > or > @@ -729,7 +766,7 @@ or > .I <wchar.h> > or > .IR <wordexp.h> . > -.IP > +.PP > Used for a count of bytes. It is the result of the > .I sizeof > operator. > @@ -743,7 +780,7 @@ where the width of > .I size_t > is no greater than the width of the type > .IR long . > -.IP > +.PP > The length modifier for > .I size_t > for the > @@ -759,9 +796,9 @@ or > for printing > .I size_t > values. > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > Notes: > .IR <aio.h> , > .IR <glob.h> , > @@ -775,7 +812,7 @@ and > define > .I size_t > since POSIX.1-2008. > -.IP > +.PP > See also: > .BR read (2), > .BR write (2), > @@ -786,16 +823,18 @@ See also: > .BR memcpy (3), > .BR memset (3), > .BR offsetof (3) > -.IP > +.PP > See also the > .I ptrdiff_t > and > .I ssize_t > types in this page. > +.RE > .\"------------------------------------- ssize_t ----------------------/ > .TP > .I ssize_t > -.IP > +.RS > +.PP > Include: > .IR <sys/types.h> ; > or > @@ -814,7 +853,7 @@ or > .I <sys/uio.h> > or > .IR <unistd.h> . > -.IP > +.PP > Used for a count of bytes or an error indication. > According to POSIX, it shall be a signed integer type > capable of storing values at least in the range [-1, > @@ -824,7 +863,7 @@ where the width of > .I ssize_t > is no greater than the width of the type > .IR long . > -.IP > +.PP > Glibc and most other implementations provide a length modifier for > .I ssize_t > for the > @@ -850,9 +889,9 @@ by converting the value to > .I intmax_t > and using its length modifier > .RB ( j ). > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR read (2), > .BR readlink (2), > @@ -860,23 +899,25 @@ See also: > .BR recv (2), > .BR send (2), > .BR write (2) > -.IP > +.PP > See also the > .I ptrdiff_t > and > .I size_t > types in this page. > +.RE > .\"------------------------------------- suseconds_t ------------------/ > .TP > .I suseconds_t > -.IP > +.RS > +.PP > Include: > .IR <sys/types.h> ; > or > .I <sys/select.h> > or > .IR <sys/time.h> . > -.IP > +.PP > Used for time in microseconds. > According to POSIX, it shall be a signed integer type > capable of storing values at least in the range [-1, 1000000], > @@ -885,16 +926,18 @@ where the width of > .I suseconds_t > is no greater than the width of the type > .IR long . > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also the > .I timeval > structure in this page. > +.RE > .\"------------------------------------- time_t -----------------------/ > .TP > .I time_t > -.IP > +.RS > +.PP > Include: > .I <sys/types.h> > or > @@ -915,48 +958,52 @@ or > .I <sys/time.h> > or > .IR <utime.h> . > -.IP > +.PP > Used for time in seconds. > According to POSIX, it shall be an integer type. > -.IP > +.PP > Conforming to: C99 and later; POSIX.1-2001 and later. > -.IP > +.PP > Notes: > .I <sched.h> > defines > .I time_t > since POSIX.1-2008. > -.IP > +.PP > See also: > .BR stime (2), > .BR time (2), > .BR ctime (3), > .BR difftime (3) > +.RE > .\"------------------------------------- timer_t ----------------------/ > .TP > .I timer_t > -.IP > +.RS > +.PP > Include: > .IR <sys/types.h> ; > or > .IR <time.h> . > -.IP > +.PP > Used for timer ID returned by > .BR timer_create (2). > According to POSIX, > there are no defined comparison or assignment operators for this type. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR timer_create (2), > .BR timer_delete (2), > .BR timer_getoverrun (2), > .BR timer_settime (2) > +.RE > .\"------------------------------------- timespec ---------------------/ > .TP > .I timespec > -.IP > +.RS > +.PP > Include: > .IR <time.h> ; > or > @@ -971,28 +1018,30 @@ or > .I <sys/select.h> > or > .IR <sys/stat.h> . > -.IP > +.PP > .EX > struct timespec { > time_t tv_sec; /* Seconds */ > long tv_nsec; /* Nanoseconds */ > }; > .EE > -.IP > +.PP > Describes times in seconds and nanoseconds. > -.IP > +.PP > Conforming to: C11 and later; POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR clock_gettime (2), > .BR clock_nanosleep (2), > .BR nanosleep (2), > .BR timerfd_gettime (2), > .BR timer_gettime (2) > +.RE > .\"------------------------------------- timeval ----------------------/ > .TP > .I timeval > -.IP > +.RS > +.PP > Include: > .IR <sys/time.h> ; > or > @@ -1001,18 +1050,18 @@ or > .I <sys/select.h> > or > .IR <utmpx.h> . > -.IP > +.PP > .EX > struct timeval { > time_t tv_sec; /* Seconds */ > suseconds_t tv_usec; /* Microseconds */ > }; > .EE > -.IP > +.PP > Describes times in seconds and microseconds. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR gettimeofday (2), > .BR select (2), > @@ -1020,10 +1069,12 @@ See also: > .BR adjtime (3), > .BR futimes (3), > .BR timeradd (3) > +.RE > .\"------------------------------------- uid_t ----------------------/ > .TP > .I uid_t > -.IP > +.RS > +.PP > Include: > .IR <sys/types.h> ; > or > @@ -1038,13 +1089,13 @@ or > .I <sys/stat.h> > or > .IR <unistd.h> . > -.IP > +.PP > A type used to hold user IDs. > According to POSIX, > this shall be an integer type. > -.IP > +.PP > Conforming to: POSIX.1-2001 and later. > -.IP > +.PP > See also: > .BR chown (2), > .BR getuid (2), > @@ -1052,6 +1103,8 @@ See also: > .BR getresuid (2), > .BR getpwnam (2), > .BR credentials (7) > +.RE > +.\"--------------------------------------------------------------------/ > .SH NOTES > The structures described in this manual page shall contain, > at least, the members shown in their definition, in no particular order. > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/