.\"***************************************************************************
-.\" Copyright 2018-2020,2021 Thomas E. Dickey *
+.\" Copyright 2018-2021,2023 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.32 2021/10/16 13:37:43 tom Exp $
-.TH @TABS@ 1 ""
-.ds n 5
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: tabs.1,v 1.48 2023/10/14 19:29:06 tom Exp $
+.TH @TABS@ 1 2023-10-14 "ncurses 6.4" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.
+.ds n 5
.SH NAME
-\fB@TABS@\fR \- set tabs on a terminal
+\fB\%@TABS@\fP \-
+set terminal tab stops
.SH SYNOPSIS
-\fB@TABS@\fR [\fIoptions\fR]] \fI[tabstop-list]\fR
+\fB@TABS@\fP [\fIoptions\fP]] \fI[tabstop-list]\fP
.SH DESCRIPTION
-.PP
The \fB@TABS@\fP program clears and sets tab-stops on the terminal.
-This uses the terminfo \fIclear_all_tabs\fP and \fIset_tab\fP capabilities.
+This uses the terminfo \fBclear_all_tabs\fP and \fBset_tab\fP capabilities.
If either is absent, \fB@TABS@\fP is unable to clear/set tab-stops.
The terminal should be configured to use hard tabs, e.g.,
-.NS
+.PP
+.RS 4
+.EX
stty tab0
-.NE
+.EE
+.RE
.PP
-Like \fB@CLEAR@\fR(1), \fB@TABS@\fR writes to the standard output.
+Like \fB@CLEAR@\fP(1), \fB@TABS@\fP writes to the standard output.
You can redirect the standard output to a file (which prevents
-\fB@TABS@\fR from actually changing the tabstops),
+\fB@TABS@\fP from actually changing the tabstops),
and later \fBcat\fP the file to the screen, setting tabstops at that point.
.PP
These are hardware tabs, which cannot be queried rapidly by applications
database, the result is unpredictable.
Before running curses programs,
you should either reset tab-stops to the standard interval
-.NS
-tabs -8
-.NE
+.PP
+.RS 4
+.EX
+tabs \-8
+.EE
+.RE
.PP
or use the \fB@RESET@\fP program,
since the normal initialization sequences do not ensure that tab-stops
This option tells \fB@TABS@\fP to check the options and run any debugging
option, but not to modify the terminal settings.
.TP
-\fB\-V\fR
+\fB\-V\fP
reports the version of ncurses which was used in this program, and exits.
.PP
The \fB@TABS@\fP program processes a single list of tab stops.
The values in the list must be in increasing numeric order,
and greater than zero.
They are separated by a comma or a blank, for example,
-.NS
+.PP
+.RS 4
+.EX
tabs 1,6,11,16,21
-.br
tabs 1 6 11 16 21
-.NE
+.EE
+.RE
.PP
Use a \*(``+\*('' to treat a number
as an increment relative to the previous value,
e.g.,
-.NS
+.PP
+.RS 4
+.EX
tabs 1,+5,+5,+5,+5
-.NE
+.EE
+.RE
.PP
which is equivalent to the 1,6,11,16,21 example.
.SS Predefined Tab-Stops
A few terminals provide the capability for changing their left/right margins.
The @TABS@ program has an option to use this feature:
.TP 5
-.BI \+m \ margin
+.BI +m \ margin
The effect depends on whether the terminal has the margin capabilities:
.RS
.bP
.RE
.IP
If the \fImargin\fP parameter is omitted, the default is 10.
-Use \fB\+m0\fP to reset the left margin,
+Use \fB+m0\fP to reset the left margin,
i.e., to the left edge of the terminal's display.
Before setting a left-margin,
@TABS@ resets the margin to reduce problems which might arise
.PP
When setting or resetting the left-margin,
@TABS@ may reset the right-margin.
+.SH FILES
+.TP
+.I @DATADIR@/tabset
+tab stop initialization database
.SH PORTABILITY
-.PP
\fIIEEE Std 1003.1/The Open Group Base Specifications Issue 7\fP (POSIX.1-2008)
describes a \fBtabs\fP utility.
However
the tab-stop initialization provided by \fBtset\fP (1982)
and incorporated into \fBtput\fP uses the terminal database,
.PP
-The \fB\+m\fP option was documented
+The \fB+m\fP option was documented
in the Base Specifications Issue 5 (Unix98, 1997),
and omitted in Issue 6 (Unix03, 2004) without documenting the rationale,
though an introductory comment
overlooked in the removal.
The documented \fBtabs\fP utility in Issues 6 and later has no mechanism
for setting margins.
-The \fB\+m\fP option in this implementation differs from the feature
+The \fB+m\fP option in this implementation differs from the feature
in SVr4 by using terminal capabilities rather than built-in tables.
.PP
POSIX documents no limits on the number of tab stops.
were implemented in PWB/Unix.
Those provide the capability of setting abitrary tab stops.
.SH SEE ALSO
-\fB@INFOCMP@\fR(1M),
-\fB@TSET@\fR(1),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n).
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@TSET@\fP(1),
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(\*n)