.\"***************************************************************************
-.\" Copyright 2018-2021,2023 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2008-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tabs.1,v 1.54 2024/01/20 16:54:03 tom Exp $
-.TH @TABS@ 1 2024-01-20 "ncurses 6.4" "User commands"
+.\" $Id: tabs.1,v 1.65 2024/09/21 18:04:07 tom Exp $
+.TH @TABS@ 1 2024-09-21 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.PP
.RS 4
.EX
-tabs \-8
+@TABS@ \-8
.EE
.RE
.PP
.PP
.RS 4
.EX
-tabs 1,6,11,16,21
-tabs 1 6 11 16 21
+@TABS@ 1,6,11,16,21
+@TABS@ 1 6 11 16 21
.EE
.RE
.PP
.PP
.RS 4
.EX
-tabs 1,+5,+5,+5,+5
+@TABS@ 1,+5,+5,+5,+5
.EE
.RE
.PP
.I @DATADIR@/tabset
tab stop initialization database
.SH PORTABILITY
-IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+IEEE Std 1003.1/The Open Group Base Specifications Issue\ 7
(POSIX.1-2008)
describes a
-.B tabs
+.I tabs
utility.
However,
.bP
.RB \%( smglp )
capabilities needed to support the feature.
.bP
-There is no counterpart in X/Open Curses Issue 7 for this utility,
-unlike \fB@TPUT@\fP(1).
+Unlike
+.IR tput ,
+.I tabs
+has no specification in X/Open Curses Issue\ 7.
.PP
The
.B \-d
extensions not provided by other implementations.
.SH HISTORY
A
-.B tabs
+.I tabs
utility appeared in PWB/Unix 1.0 (1977).
.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1/sys/source/s2/\
.\" tabs.c
.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\
.\" tabs.c
(later the same year);
-it supported a \*(``\-n\*('' option to set the first tab stop at the
+it supported an option \*(``\-n\*('' to set the first tab stop at the
left margin.
-That option is not documented by POSIX.
+That option is not specified by POSIX.
.PP
The PWB/Unix
-.B tabs
+.I tabs
utility returned in System III (1980),
-and used built-in tables,
-rather than the terminal database,
+and used built-in tables
to support a half-dozen hardcopy terminal (printer) types.
-It also had built-in logic to support setting the left margin,
+It also had logic to support setting the left margin,
as well as a feature for copying the tab settings from a file.
.PP
Versions of the program in later releases of AT&T Unix,
but retained the tables to support the printers.
By this time,
System\ V
-.B tput
+.I tput
had incorporated the tab stop initialization feature of BSD's
-.B tset
+.I tset
from 1982,
but employed the
.I \%term\%info
\*(``and optionally adjusts the margin\*('' remains,
overlooked in the removal.
The
-.B tabs
+.I tabs
utility documented in Issues 6 and later has no mechanism for setting
margins.
The
.B +m
option in
-.I \%ncurses
-\fB\%@TABS@\fP differs from the SVr4 feature by using terminal
-capabilities rather than built-in tables.
+.IR \%ncurses 's
+implementation
+differs from the SVr4 feature by using terminal capabilities
+rather than built-in tables.
.PP
POSIX documents no limit on the number of tab stops.
Other implementations impose one;
the limit is 20 in PWB/Unix's
-.B tabs
+.I tabs
utility.
While some terminals may not accept an arbitrary number of tab stops,
.I \%ncurses
-\fB\%@TABS@\fP attempts to set tab stops up to the right margin if the
-list thereof is sufficiently long.
+attempts to set tab stops up to the right margin
+if the list thereof is sufficiently long.
.PP
The \*(``Rationale\*('' section of the Issue 6
-.B tabs
+.I tabs
reference page
.\" https://pubs.opengroup.org/onlinepubs/009604499/utilities/tabs.html
details how the committee considered redesigning the
-.B tabs
+.I tabs
and
-.B tput
+.I tput
utilities,
without settling on an improved solution.
It claims that
.PP
.RS 4
-\*(``no known historical version of
+no known historical version of
.I tabs
-supports the capability of setting arbitrary tab stops.\*(''
+supports the capability of setting arbitrary tab stops.
.RE
.PP
The feature described in subsection \*(``Explicit Lists\*('' above was