Hello Kir, On 5/17/20 1:34 AM, Kir Kolyshkin wrote: > This is a sequel to commit baf17bc4f2a3f3b02d, addressing the issues > with missing commas in the middle of SEE ALSO lists that emerged since. > > The awk script from the original commit was not working and had to be > slightly modified (s/["]SEE ALSO["]/"?SEE ALSO/), otherwise it works > like a charm. Here's the fixed script and its output just before this > commit: > > for f in man*/*; do > awk ' > /^.SH "?SEE ALSO/ { > sa=1; print "== " FILENAME " =="; print; next > } > /^\.(PP|SH)/ { > sa=0; no=0; next > } > /^\.BR/ { > if (sa==1) { > print; > if (no == 1) > print "Missing comma in " FILENAME " +" FNR-1; no=0 > } > } > /^\.BR .*)$/ { > if (sa==1) > no=1; > next > } > /\.\\"/ {next} > /.*/ { > if (sa==1) { > print; next > } > } > ' $f; done | grep Missing > Missing comma in man1/memusage.1 +272 > Missing comma in man2/adjtimex.2 +597 > Missing comma in man2/adjtimex.2 +598 > Missing comma in man2/mkdir.2 +252 > Missing comma in man2/sigaction.2 +1045 > Missing comma in man2/sigaction.2 +1047 > Missing comma in man3/mbsnrtowcs.3 +198 > Missing comma in man3/ntp_gettime.3 +142 > Missing comma in man3/strcmp.3 +219 > Missing comma in man3/strtol.3 +302 > Missing comma in man3/wcstombs.3 +120 > Missing comma in man7/user_namespaces.7 +1378 > Missing comma in man7/xattr.7 +198 Thanks for that! Patch applied! Cheers, Michael > Signed-off-by: Kir Kolyshkin <kolyshkin@xxxxxxxxx> > --- > man1/memusage.1 | 2 +- > man2/adjtimex.2 | 4 ++-- > man2/mkdir.2 | 2 +- > man2/sigaction.2 | 4 ++-- > man3/mbsnrtowcs.3 | 2 +- > man3/ntp_gettime.3 | 2 +- > man3/strcmp.3 | 2 +- > man3/strtol.3 | 2 +- > man3/wcstombs.3 | 2 +- > man7/user_namespaces.7 | 2 +- > man7/xattr.7 | 2 +- > 11 files changed, 13 insertions(+), 13 deletions(-) > > diff --git a/man1/memusage.1 b/man1/memusage.1 > index 9cc06838b..aa5739eb0 100644 > --- a/man1/memusage.1 > +++ b/man1/memusage.1 > @@ -269,5 +269,5 @@ main(int argc, char *argv[]) > .EE > .SH SEE ALSO > .BR memusagestat (1), > -.BR mtrace (1) > +.BR mtrace (1), > .BR ld.so (8) > diff --git a/man2/adjtimex.2 b/man2/adjtimex.2 > index 1722369a1..d802d52f9 100644 > --- a/man2/adjtimex.2 > +++ b/man2/adjtimex.2 > @@ -594,8 +594,8 @@ is done by the kernel in timer context. > Thus, it will take one tick into the second > for the leap second to be inserted or deleted. > .SH SEE ALSO > -.BR clock_gettime (2) > -.BR clock_settime (2) > +.BR clock_gettime (2), > +.BR clock_settime (2), > .BR settimeofday (2), > .BR adjtime (3), > .BR ntp_gettime (3), > diff --git a/man2/mkdir.2 b/man2/mkdir.2 > index 12b131270..959169cad 100644 > --- a/man2/mkdir.2 > +++ b/man2/mkdir.2 > @@ -249,5 +249,5 @@ argument. > .BR stat (2), > .BR umask (2), > .BR unlink (2), > -.BR acl (5) > +.BR acl (5), > .BR path_resolution (7) > diff --git a/man2/sigaction.2 b/man2/sigaction.2 > index b4e630878..744cdfcc4 100644 > --- a/man2/sigaction.2 > +++ b/man2/sigaction.2 > @@ -1042,9 +1042,9 @@ See > .BR kill (1), > .BR kill (2), > .BR pause (2), > -.BR pidfd_send_signal (2) > +.BR pidfd_send_signal (2), > .BR restart_syscall (2), > -.BR seccomp (2) > +.BR seccomp (2), > .BR sigaltstack (2), > .BR signal (2), > .BR signalfd (2), > diff --git a/man3/mbsnrtowcs.3 b/man3/mbsnrtowcs.3 > index 2e5420305..2e447bac8 100644 > --- a/man3/mbsnrtowcs.3 > +++ b/man3/mbsnrtowcs.3 > @@ -195,6 +195,6 @@ Passing NULL as > is not multithread safe. > .SH SEE ALSO > .BR iconv (3), > -.BR mbrtowc (3) > +.BR mbrtowc (3), > .BR mbsinit (3), > .BR mbsrtowcs (3) > diff --git a/man3/ntp_gettime.3 b/man3/ntp_gettime.3 > index ff54a1ee0..be80b4801 100644 > --- a/man3/ntp_gettime.3 > +++ b/man3/ntp_gettime.3 > @@ -139,7 +139,7 @@ is described in the NTP Kernel Application Program Interface. > .BR ntp_gettimex () > is a GNU extension. > .SH SEE ALSO > -.BR adjtimex (2) > +.BR adjtimex (2), > .BR ntp_adjtime (3), > .BR time (7) > .PP > diff --git a/man3/strcmp.3 b/man3/strcmp.3 > index dd187be22..f1046f2e3 100644 > --- a/man3/strcmp.3 > +++ b/man3/strcmp.3 > @@ -216,5 +216,5 @@ main(int argc, char *argv[]) > .BR strncasecmp (3), > .BR strverscmp (3), > .BR wcscmp (3), > -.BR wcsncmp (3) > +.BR wcsncmp (3), > .BR ascii (7) > diff --git a/man3/strtol.3 b/man3/strtol.3 > index 960f61b3e..02598b983 100644 > --- a/man3/strtol.3 > +++ b/man3/strtol.3 > @@ -299,5 +299,5 @@ main(int argc, char *argv[]) > .BR atoi (3), > .BR atol (3), > .BR strtod (3), > -.BR strtoimax (3) > +.BR strtoimax (3), > .BR strtoul (3), > diff --git a/man3/wcstombs.3 b/man3/wcstombs.3 > index 8b3ca7d6f..749cc7b26 100644 > --- a/man3/wcstombs.3 > +++ b/man3/wcstombs.3 > @@ -117,5 +117,5 @@ provides a better interface to the same functionality. > .BR mblen (3), > .BR mbstowcs (3), > .BR mbtowc (3), > -.BR wcsrtombs (3) > +.BR wcsrtombs (3), > .BR wctomb (3) > diff --git a/man7/user_namespaces.7 b/man7/user_namespaces.7 > index 0f2c89184..1975daf5e 100644 > --- a/man7/user_namespaces.7 > +++ b/man7/user_namespaces.7 > @@ -1375,7 +1375,7 @@ main(int argc, char *argv[]) > .BR subgid (5), \" From the shadow package > .BR subuid (5), \" From the shadow package > .BR capabilities (7), > -.BR cgroup_namespaces (7) > +.BR cgroup_namespaces (7), > .BR credentials (7), > .BR namespaces (7), > .BR pid_namespaces (7) > diff --git a/man7/xattr.7 b/man7/xattr.7 > index 706dfa344..23a928c1b 100644 > --- a/man7/xattr.7 > +++ b/man7/xattr.7 > @@ -195,5 +195,5 @@ This page was formerly named > .BR removexattr (2), > .BR setxattr (2), > .BR acl (5), > -.BR capabilities (7) > +.BR capabilities (7), > .BR selinux (8) > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/