man*/: ffix (un-bracket tables)
commit9e54434eade8afb70ed271b23643d020c1cb3402
authorG. Branden Robinson <g.branden.robinson@gmail.com>
Thu, 20 Jul 2023 02:06:12 +0000 (19 21:06 -0500)
committerAlejandro Colomar <alx@kernel.org>
Thu, 20 Jul 2023 13:27:21 +0000 (20 15:27 +0200)
treeb71900fc5a3fa130cdb0e9530015c880e6baa992
parent18a466700a3e7cd5ac8c3899c476676a0cd616c0
man*/: ffix (un-bracket tables)

*  Stop disabling adjustment and automatic hyphenation before tables,
   and incorrectly "restoring" it afterward.  In addition to repetitious
   boilerplate around tables, the `ad` and `hy` requests, when not given
   arguments, do not behave as many man page authors expect.  If
   adjustment was initially disabled when rendering the page, it was
   being activated after `TE` calls, frustrating the desire of the
   reader.  Furthermore, `hy` when given no argument enables automatic
   hyphenation in mode "1", which is not an appropriate value for the
   TeX-based hyphenation patterns for English that groff has used for
   over 30 years.  And analogously to `ad`, a simple `hy` request would
   reactivate automatic hyphenation even if the reader had disabled it.

   Moreover, such fiddling is often unnecessary.  tbl(1) from groff
   1.23.0 describes how tbl(1) has always worked, dating back to Michael
   Lesk's original implementation at Bell Labs in the 1970s.

   "Ordinarily, a table entry is typeset rigidly.  It is not filled,
   broken, hyphenated, adjusted, or populated with additional inter-
   sentence space.  ...  Text blocks are formatted as was the text prior
   to the table, modified by applicable column descriptors.  ...  Add na
   or ad requests to the beginning of a text block to alter its
   adjustment distinctly from other text in the document.  As with other
   table entries, when a text block ends, any alterations to formatting
   parameters are discarded.  They do not affect subsequent table
   entries, not even other text blocks."

*  Apropos of the foregoing, add `na` and `nh` requests to the
   "Interface" columns of MT-safety tables in pages' "ATTRIBUTES"
   sections, so that C function names are not inappropriately hyphenated.

I produced this change with the following GNU sed script.

:start
/^\.ad l/{N;/\n\.nh/{N;/\n\.TS/s/.*/.TS/}}
/^\.TE/{N;/\n\.hy/{N;/\n\.ad/s/.*/.TE/}}
/^Interface.*Attribute.*Value/{N;/\nT{/s/.*/&\n.na\n.nh/
:loop
n
/T{/s/.*/&\n.na\n.nh/
/^\.TE/b start;
b loop
}

Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
525 files changed:
man2/adjtimex.2
man2/clock_getres.2
man2/eventfd.2
man2/getrlimit.2
man2/getrusage.2
man2/mmap.2
man2/sigaltstack.2
man2/utimensat.2
man3/__ppc_set_ppr_med.3
man3/__ppc_yield.3
man3/a64l.3
man3/abort.3
man3/abs.3
man3/acos.3
man3/acosh.3
man3/addseverity.3
man3/adjtime.3
man3/aio_cancel.3
man3/aio_error.3
man3/aio_fsync.3
man3/aio_read.3
man3/aio_return.3
man3/aio_suspend.3
man3/aio_write.3
man3/alloca.3
man3/arc4random.3
man3/argz_add.3
man3/asin.3
man3/asinh.3
man3/asprintf.3
man3/assert.3
man3/assert_perror.3
man3/atan.3
man3/atan2.3
man3/atanh.3
man3/atexit.3
man3/atof.3
man3/atoi.3
man3/backtrace.3
man3/basename.3
man3/bcopy.3
man3/bindresvport.3
man3/bsd_signal.3
man3/bsearch.3
man3/btowc.3
man3/byteorder.3
man3/bzero.3
man3/cabs.3
man3/cacos.3
man3/cacosh.3
man3/canonicalize_file_name.3
man3/carg.3
man3/casin.3
man3/casinh.3
man3/catan.3
man3/catanh.3
man3/catgets.3
man3/catopen.3
man3/cbrt.3
man3/ccos.3
man3/ceil.3
man3/cexp.3
man3/cfree.3
man3/cimag.3
man3/clearenv.3
man3/clock.3
man3/clock_getcpuclockid.3
man3/clog.3
man3/clog10.3
man3/closedir.3
man3/confstr.3
man3/conj.3
man3/copysign.3
man3/cos.3
man3/cosh.3
man3/cpow.3
man3/cproj.3
man3/creal.3
man3/crypt.3
man3/csin.3
man3/csinh.3
man3/csqrt.3
man3/ctan.3
man3/ctanh.3
man3/ctermid.3
man3/ctime.3
man3/daemon.3
man3/des_crypt.3
man3/difftime.3
man3/dirfd.3
man3/div.3
man3/dl_iterate_phdr.3
man3/dladdr.3
man3/dlerror.3
man3/dlinfo.3
man3/dlopen.3
man3/dlsym.3
man3/drand48.3
man3/drand48_r.3
man3/dysize.3
man3/ecvt.3
man3/ecvt_r.3
man3/encrypt.3
man3/envz_add.3
man3/erf.3
man3/erfc.3
man3/err.3
man3/error.3
man3/ether_aton.3
man3/euidaccess.3
man3/exec.3
man3/exit.3
man3/exp.3
man3/exp10.3
man3/exp2.3
man3/expm1.3
man3/fabs.3
man3/fclose.3
man3/fcloseall.3
man3/fdim.3
man3/fenv.3
man3/ferror.3
man3/fexecve.3
man3/fflush.3
man3/ffs.3
man3/fgetc.3
man3/fgetgrent.3
man3/fgetpwent.3
man3/fgetwc.3
man3/fgetws.3
man3/fileno.3
man3/finite.3
man3/flockfile.3
man3/floor.3
man3/fma.3
man3/fmax.3
man3/fmemopen.3
man3/fmin.3
man3/fmod.3
man3/fmtmsg.3
man3/fnmatch.3
man3/fopen.3
man3/fopencookie.3
man3/fpathconf.3
man3/fpclassify.3
man3/fpurge.3
man3/fputwc.3
man3/fputws.3
man3/fread.3
man3/frexp.3
man3/fseek.3
man3/fseeko.3
man3/ftime.3
man3/ftok.3
man3/fts.3
man3/ftw.3
man3/futimes.3
man3/gamma.3
man3/gcvt.3
man3/get_nprocs.3
man3/getaddrinfo.3
man3/getaddrinfo_a.3
man3/getauxval.3
man3/getcontext.3
man3/getcwd.3
man3/getdate.3
man3/getdirentries.3
man3/getdtablesize.3
man3/getenv.3
man3/getfsent.3
man3/getgrent.3
man3/getgrent_r.3
man3/getgrnam.3
man3/getgrouplist.3
man3/gethostbyname.3
man3/gethostid.3
man3/getifaddrs.3
man3/getline.3
man3/getloadavg.3
man3/getlogin.3
man3/getmntent.3
man3/getnameinfo.3
man3/getnetent.3
man3/getnetent_r.3
man3/getopt.3
man3/getpass.3
man3/getprotoent.3
man3/getprotoent_r.3
man3/getpt.3
man3/getpw.3
man3/getpwent.3
man3/getpwent_r.3
man3/getpwnam.3
man3/getrpcent.3
man3/getrpcent_r.3
man3/getrpcport.3
man3/gets.3
man3/getservent.3
man3/getservent_r.3
man3/getspnam.3
man3/getsubopt.3
man3/getttyent.3
man3/getusershell.3
man3/getutent.3
man3/getutmp.3
man3/getw.3
man3/getwchar.3
man3/glob.3
man3/gnu_get_libc_version.3
man3/grantpt.3
man3/gsignal.3
man3/hsearch.3
man3/hypot.3
man3/iconv.3
man3/iconv_close.3
man3/iconv_open.3
man3/if_nameindex.3
man3/if_nametoindex.3
man3/ilogb.3
man3/inet.3
man3/inet_ntop.3
man3/inet_pton.3
man3/initgroups.3
man3/insque.3
man3/isalpha.3
man3/isatty.3
man3/isgreater.3
man3/iswalnum.3
man3/iswalpha.3
man3/iswblank.3
man3/iswcntrl.3
man3/iswctype.3
man3/iswdigit.3
man3/iswgraph.3
man3/iswlower.3
man3/iswprint.3
man3/iswpunct.3
man3/iswspace.3
man3/iswupper.3
man3/iswxdigit.3
man3/j0.3
man3/key_setsecret.3
man3/ldexp.3
man3/lio_listio.3
man3/localeconv.3
man3/lockf.3
man3/log.3
man3/log10.3
man3/log1p.3
man3/log2.3
man3/logb.3
man3/login.3
man3/lrint.3
man3/lround.3
man3/lsearch.3
man3/lseek64.3
man3/makecontext.3
man3/makedev.3
man3/mallinfo.3
man3/malloc.3
man3/malloc_get_state.3
man3/malloc_info.3
man3/malloc_stats.3
man3/malloc_trim.3
man3/malloc_usable_size.3
man3/matherr.3
man3/mblen.3
man3/mbrlen.3
man3/mbrtowc.3
man3/mbsinit.3
man3/mbsnrtowcs.3
man3/mbsrtowcs.3
man3/mbstowcs.3
man3/mbtowc.3
man3/mcheck.3
man3/memccpy.3
man3/memchr.3
man3/memcmp.3
man3/memcpy.3
man3/memfrob.3
man3/memmem.3
man3/memmove.3
man3/mempcpy.3
man3/memset.3
man3/mkdtemp.3
man3/mkfifo.3
man3/mkstemp.3
man3/mktemp.3
man3/modf.3
man3/mq_close.3
man3/mq_getattr.3
man3/mq_notify.3
man3/mq_open.3
man3/mq_receive.3
man3/mq_send.3
man3/mq_unlink.3
man3/mtrace.3
man3/nan.3
man3/nextafter.3
man3/nextup.3
man3/nl_langinfo.3
man3/ntp_gettime.3
man3/on_exit.3
man3/open_memstream.3
man3/opendir.3
man3/openpty.3
man3/perror.3
man3/popen.3
man3/posix_fallocate.3
man3/posix_memalign.3
man3/posix_openpt.3
man3/pow.3
man3/pow10.3
man3/printf.3
man3/profil.3
man3/psignal.3
man3/pthread_attr_init.3
man3/pthread_attr_setaffinity_np.3
man3/pthread_attr_setdetachstate.3
man3/pthread_attr_setguardsize.3
man3/pthread_attr_setinheritsched.3
man3/pthread_attr_setschedparam.3
man3/pthread_attr_setschedpolicy.3
man3/pthread_attr_setscope.3
man3/pthread_attr_setsigmask_np.3
man3/pthread_attr_setstack.3
man3/pthread_attr_setstackaddr.3
man3/pthread_attr_setstacksize.3
man3/pthread_cancel.3
man3/pthread_cleanup_push.3
man3/pthread_create.3
man3/pthread_detach.3
man3/pthread_equal.3
man3/pthread_exit.3
man3/pthread_getattr_default_np.3
man3/pthread_getattr_np.3
man3/pthread_getcpuclockid.3
man3/pthread_join.3
man3/pthread_kill.3
man3/pthread_kill_other_threads_np.3
man3/pthread_self.3
man3/pthread_setaffinity_np.3
man3/pthread_setcancelstate.3
man3/pthread_setconcurrency.3
man3/pthread_setname_np.3
man3/pthread_setschedparam.3
man3/pthread_setschedprio.3
man3/pthread_sigmask.3
man3/pthread_sigqueue.3
man3/pthread_testcancel.3
man3/pthread_tryjoin_np.3
man3/pthread_yield.3
man3/ptsname.3
man3/putenv.3
man3/putgrent.3
man3/putpwent.3
man3/puts.3
man3/putwchar.3
man3/qecvt.3
man3/qsort.3
man3/raise.3
man3/rand.3
man3/random.3
man3/random_r.3
man3/rcmd.3
man3/re_comp.3
man3/readdir.3
man3/readdir_r.3
man3/realpath.3
man3/regex.3
man3/remainder.3
man3/remove.3
man3/remquo.3
man3/resolver.3
man3/rewinddir.3
man3/rexec.3
man3/rint.3
man3/round.3
man3/rpc.3
man3/rpmatch.3
man3/rtime.3
man3/scalb.3
man3/scalbln.3
man3/scandir.3
man3/scanf.3
man3/sched_getcpu.3
man3/seekdir.3
man3/sem_close.3
man3/sem_destroy.3
man3/sem_getvalue.3
man3/sem_init.3
man3/sem_open.3
man3/sem_post.3
man3/sem_unlink.3
man3/sem_wait.3
man3/setaliasent.3
man3/setbuf.3
man3/setenv.3
man3/setjmp.3
man3/setlocale.3
man3/setlogmask.3
man3/setnetgrent.3
man3/shm_open.3
man3/siginterrupt.3
man3/signbit.3
man3/significand.3
man3/sigpause.3
man3/sigqueue.3
man3/sigset.3
man3/sigsetops.3
man3/sigvec.3
man3/sigwait.3
man3/sin.3
man3/sincos.3
man3/sinh.3
man3/sleep.3
man3/sockatmark.3
man3/sqrt.3
man3/sscanf.3
man3/statvfs.3
man3/stdarg.3
man3/stdio_ext.3
man3/stpncpy.3
man3/strcasecmp.3
man3/strchr.3
man3/strcmp.3
man3/strcoll.3
man3/strcpy.3
man3/strdup.3
man3/strerror.3
man3/strfmon.3
man3/strfromd.3
man3/strfry.3
man3/strftime.3
man3/strlen.3
man3/strncat.3
man3/strnlen.3
man3/strpbrk.3
man3/strptime.3
man3/strsep.3
man3/strsignal.3
man3/strspn.3
man3/strstr.3
man3/strtod.3
man3/strtoimax.3
man3/strtok.3
man3/strtol.3
man3/strtoul.3
man3/strverscmp.3
man3/strxfrm.3
man3/swab.3
man3/sysconf.3
man3/syslog.3
man3/system.3
man3/sysv_signal.3
man3/tan.3
man3/tanh.3
man3/tcgetpgrp.3
man3/tcgetsid.3
man3/telldir.3
man3/tempnam.3
man3/termios.3
man3/tgamma.3
man3/timegm.3
man3/tmpfile.3
man3/tmpnam.3
man3/toascii.3
man3/toupper.3
man3/towctrans.3
man3/towlower.3
man3/towupper.3
man3/trunc.3
man3/tsearch.3
man3/ttyname.3
man3/ttyslot.3
man3/tzset.3
man3/ualarm.3
man3/ulimit.3
man3/ungetwc.3
man3/unlocked_stdio.3
man3/unlockpt.3
man3/updwtmp.3
man3/usleep.3
man3/wcpcpy.3
man3/wcpncpy.3
man3/wcrtomb.3
man3/wcscasecmp.3
man3/wcscat.3
man3/wcschr.3
man3/wcscmp.3
man3/wcscpy.3
man3/wcscspn.3
man3/wcsdup.3
man3/wcslen.3
man3/wcsncasecmp.3
man3/wcsncat.3
man3/wcsncmp.3
man3/wcsncpy.3
man3/wcsnlen.3
man3/wcsnrtombs.3
man3/wcspbrk.3
man3/wcsrchr.3
man3/wcsrtombs.3
man3/wcsspn.3
man3/wcsstr.3
man3/wcstoimax.3
man3/wcstok.3
man3/wcstombs.3
man3/wcswidth.3
man3/wctob.3
man3/wctomb.3
man3/wctrans.3
man3/wctype.3
man3/wcwidth.3
man3/wmemchr.3
man3/wmemcmp.3
man3/wmemcpy.3
man3/wmemmove.3
man3/wmemset.3
man3/wordexp.3
man3/wprintf.3
man3/xcrypt.3
man3/xdr.3
man3/y0.3
man7/namespaces.7