diff --git a/man/term.7 b/man/term.7
index cee8a01..84d100d 100644
--- a/man/term.7
+++ b/man/term.7
@@ -1,5 +1,6 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
+.\" Copyright 1998-2011,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,112 +27,147 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp $
-.TH term 7
-.ds n 5
+.\" $Id: term.7,v 1.48 2024/03/16 15:35:01 tom Exp $
+.TH term 7 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" Miscellaneous
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el   .ds `` ""
+.ie t .ds '' ''
+.el   .ds '' ""
+.\}
+.
 .ds d @TERMINFO@
 .SH NAME
-term \- conventions for naming terminal types
+term \-
+conventions for naming terminal types
+.\"SH SYNOPSIS
 .SH DESCRIPTION
-.PP
-The environment variable \fBTERM\fR should normally contain the type name of
-the terminal, console or display-device type you are using.  This information
+The environment variable \fITERM\fP should normally contain the type
+name of the terminal,
+console or display-device type you are using.
+This information
 is critical for all screen-oriented programs, including your editor and mailer.
 .PP
-A default \fBTERM\fR value will be set on a per-line basis by either
-\fB/etc/inittab\fR (e.g., System\-V-like UNIXes)
-or \fB/etc/ttys\fR (BSD UNIXes).
+A default \fITERM\fP value will be set on a per-line basis by either
+\fB/etc/inittab\fP (e.g., System\-V-like Unices)
+or \fB/etc/ttys\fP (BSD Unices).
 This will nearly always suffice for workstation and microcomputer consoles.
 .PP
-If you use a dialup line, the type of device attached to it may vary.  Older
-UNIX systems pre-set a very dumb terminal type like `dumb' or `dialup' on
-dialup lines.  Newer ones may pre-set `vt100', reflecting the prevalence of DEC
+If you use a dialup line, the type of device attached to it may vary.
+Older Unix systems pre-set a very dumb terminal type
+like \*(``dumb\*('' or \*(``dialup\*('' on dialup lines.
+Newer ones may pre-set \*(``vt100\*('', reflecting the prevalence of DEC
 VT100-compatible terminals and personal-computer emulators.
 .PP
-Modern telnets pass your \fBTERM\fR environment variable from the local side to
-the remote one.  There can be problems if the remote terminfo or termcap entry
+Modern telnets pass your \fITERM\fP environment variable from the local
+side to the remote one.
+There can be problems if the remote terminfo or termcap entry
 for your type is not compatible with yours, but this situation is rare and
-can almost always be avoided by explicitly exporting `vt100' (assuming you
-are in fact using a VT100-superset console, terminal, or terminal emulator.)
+can almost always be avoided by explicitly exporting \*(``vt100\*(''
+(assuming you are in fact using a VT100-superset console,
+terminal, or terminal emulator).
 .PP
-In any case, you are free to override the system \fBTERM\fR setting to your
-taste in your shell profile.  The \fB@TSET@\fP(1) utility may be of assistance;
+In any case, you are free to override the system \fITERM\fP setting to
+your taste in your shell profile.
+The \fB@TSET@\fP(1) utility may be of assistance;
 you can give it a set of rules for deducing or requesting a terminal type based
 on the tty device and baud rate.
 .PP
-Setting your own \fBTERM\fR value may also be useful if you have created a
-custom entry incorporating options (such as visual bell or reverse-video)
+Setting your own \fITERM\fP value may also be useful if you have created
+a custom entry incorporating options
+(such as visual bell or reverse-video)
 which you wish to override the system default type for your line.
 .PP
 Terminal type descriptions are stored as files of capability data underneath
-\*d.  To browse a list of all terminal names recognized by the system, do
+\*d.
+To browse a list of all terminal names recognized by the system, do
 .sp
-	@TOE@ | more
+        @TOE@ | more
 .sp
-from your shell.  These capability files are in a binary format optimized for
-retrieval speed (unlike the old text-based \fBtermcap\fR format they replace);
-to examine an entry, you must use the \fB@INFOCMP@\fR(1M) command.
+from your shell.
+These capability files are in a binary format optimized for
+retrieval speed (unlike the old text-based \fBtermcap\fP format they replace);
+to examine an entry, you must use the \fB@INFOCMP@\fP(1M) command.
 Invoke it as follows:
 .sp
-	@INFOCMP@ \fIentry_name\fR
+        @INFOCMP@ \fIentry_name\fP
 .sp
-where \fIentry_name\fR is the name of the type you wish to examine (and the
+where \fIentry_name\fP is the name of the type you wish to examine (and the
 name of its capability file the subdirectory of \*d named for its first
-letter).  This command dumps a capability file in the text format described by
-\fBterminfo\fR(\*n).
+letter).
+This command dumps a capability file in the text format described by
+\fBterminfo\fP(5).
 .PP
-The first line of a \fBterminfo\fR(\*n) description gives the names by which
-terminfo knows a terminal, separated by `|' (pipe-bar) characters with the last
-name field terminated by a comma.  The first name field is the type's
-\fIprimary name\fR, and is the one to use when setting \fBTERM\fR.  The last
-name field (if distinct from the first) is actually a description of the
-terminal type (it may contain blanks; the others must be single words).  Name
+The first line of a \fBterminfo\fP(5) description gives the names by which
+terminfo knows a terminal,
+separated by \*(``|\*('' (pipe-bar) characters with the last
+name field terminated by a comma.
+The first name field is the type's
+\fIprimary name\fP,
+and is the one to use when setting \fITERM\fP.
+The last name field
+(if distinct from the first)
+is actually a description of the
+terminal type (it may contain blanks; the others must be single words).
+Name
 fields between the first and last (if present) are aliases for the terminal,
 usually historical names retained for compatibility.
 .PP
 There are some conventions for how to choose terminal primary names that help
-keep them informative and unique.  Here is a step-by-step guide to naming
+keep them informative and unique.
+Here is a step-by-step guide to naming
 terminals that also explains how to parse them:
 .PP
-First, choose a root name.  The root will consist of a lower-case letter
-followed by up to seven lower-case letters or digits.  You need to avoid using
+First, choose a root name.
+The root will consist of a lower-case letter
+followed by up to seven lower-case letters or digits.
+You need to avoid using
 punctuation characters in root names, because they are used and interpreted as
 filenames and shell meta-characters (such as !, $, *, ?, etc.) embedded in them
-may cause odd and unhelpful behavior.  The slash (/), or any other character
+may cause odd and unhelpful behavior.
+The slash (/), or any other character
 that may be interpreted by anyone's file system (\e, $, [, ]), is especially
 dangerous (terminfo is platform-independent, and choosing names with special
-characters could someday make life difficult for users of a future port).  The
+characters could someday make life difficult for users of a future port).
+The
 dot (.) character is relatively safe as long as there is at most one per root
 name; some historical terminfo names use it.
 .PP
 The root name for a terminal or workstation console type should almost always
-begin with a vendor prefix (such as \fBhp\fR for Hewlett-Packard, \fBwy\fR for
-Wyse, or \fBatt\fR for AT&T terminals), or a common name of the terminal line
-(\fBvt\fR for the VT series of terminals from DEC, or \fBsun\fR for Sun
-Microsystems workstation consoles, or \fBregent\fR for the ADDS Regent series.
+begin with a vendor prefix (such as \fBhp\fP for Hewlett-Packard, \fBwy\fP for
+Wyse, or \fBatt\fP for AT&T terminals), or a common name of the terminal line
+(\fBvt\fP for the VT series of terminals from DEC, or \fBsun\fP for Sun
+Microsystems workstation consoles, or \fBregent\fP for the ADDS Regent series.
 You can list the terminfo tree to see what prefixes are already in common use.
 The root name prefix should be followed when appropriate by a model number;
-thus \fBvt100\fR, \fBhp2621\fR, \fBwy50\fR.
+thus \fBvt100\fP, \fBhp2621\fP, \fBwy50\fP.
 .PP
 The root name for a PC-Unix console type should be the OS name,
-i.e., \fBlinux\fR, \fBbsdos\fR, \fBfreebsd\fR, \fBnetbsd\fR.  It should
-\fInot\fR be \fBconsole\fR or any other generic that might cause confusion in a
+i.e., \fBlinux\fP, \fBbsdos\fP, \fBfreebsd\fP, \fBnetbsd\fP.  It should
+\fInot\fP be \fBconsole\fP or any other generic that might cause confusion in a
 multi-platform environment!  If a model number follows, it should indicate
 either the OS release level or the console driver release level.
 .PP
 The root name for a terminal emulator (assuming it does not fit one of the
 standard ANSI or vt100 types) should be the program name or a readily
-recognizable abbreviation of it (i.e., \fBversaterm\fR, \fBctrm\fR).
+recognizable abbreviation of it (i.e., \fBversaterm\fP, \fBctrm\fP).
 .PP
 Following the root name, you may add any reasonable number of hyphen-separated
 feature suffixes.
 .TP 5
 2p
-Has two pages of memory.  Likewise 4p, 8p, etc.
+Has two pages of memory.
+Likewise 4p, 8p, etc.
 .TP 5
 mc
-Magic-cookie.  Some terminals (notably older Wyses) can only support one
-attribute without magic-cookie lossage.  Their base entry is usually paired
+Magic-cookie.
+Some terminals (notably older Wyses) can only support one
+attribute without magic-cookie lossage.
+Their base entry is usually paired
 with another that has this suffix and uses magic cookies to support multiple
 attributes.
 .TP 5
@@ -167,32 +203,36 @@
 Use visible bell (flash) rather than beep.
 .TP 5
 \-w
-Wide; terminal is in 132 column mode.
+Wide; terminal is in 132-column mode.
 .PP
 Conventionally, if your terminal type is a variant intended to specify a
-line height, that suffix should go first.  So, for a hypothetical FuBarCo
+line height, that suffix should go first.
+So, for a hypothetical FuBarCo
 model 2317 terminal in 30-line mode with reverse video, best form would be
-\fBfubar\-30\-rv\fR (rather than, say, `fubar\-rv\-30').
+\fBfubar\-30\-rv\fP (rather than, say, \*(``fubar\-rv\-30\*('').
 .PP
 Terminal types that are written not as standalone entries, but rather as
 components to be plugged into other entries via \fBuse\fP capabilities,
 are distinguished by using embedded plus signs rather than dashes.
 .PP
 Commands which use a terminal type to control display often accept a \-T
-option that accepts a terminal name argument.  Such programs should fall back
-on the \fBTERM\fR environment variable when no \-T option is specified.
-.SH PORTABILITY
-For maximum compatibility with older System V UNIXes, names and aliases
-should be unique within the first 14 characters.
+option that accepts a terminal name argument.
+Such programs should fall back
+on the \fITERM\fP environment variable when no \-T option is specified.
 .SH FILES
-.TP 5
-\*d/?/*
-compiled terminal capability data base
-.TP 5
-/etc/inittab
-tty line initialization (AT&T-like UNIXes)
-.TP 5
-/etc/ttys
-tty line initialization (BSD-like UNIXes)
+.TP
+.I \*d
+compiled terminal description database
+.TP
+.I /etc/inittab
+tty line initialization (AT&T-like Unices)
+.TP
+.I /etc/ttys
+tty line initialization (BSD-like Unices)
+.SH PORTABILITY
+For maximum compatibility with older System V Unices, names and aliases
+should be unique within the first 14 characters.
 .SH SEE ALSO
-\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
+\fB\%curses\fP(3X),
+\fB\%term\fP(5),
+\fB\%terminfo\fP(5)
