X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Ftabs.1;h=9c891f1bfde66cb093fa8064386e8d0bc57d1321;hb=HEAD;hp=86fc74fcb29cdf42e33f95d48982dfe2783971f6;hpb=894a177fd5228cdbe790bd1dc9435bd435c29681;p=ncurses.git diff --git a/man/tabs.1 b/man/tabs.1 index 86fc74fc..059bc1ec 100644 --- a/man/tabs.1 +++ b/man/tabs.1 @@ -1,5 +1,5 @@ .\"*************************************************************************** -.\" 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 * @@ -27,8 +27,8 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: tabs.1,v 1.47 2023/10/07 21:19:07 tom Exp $ -.TH @TABS@ 1 2023-10-07 "ncurses 6.4" "User commands" +.\" $Id: tabs.1,v 1.59 2024/04/20 19:08:15 tom Exp $ +.TH @TABS@ 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq @@ -45,12 +45,11 @@ .el .IP \(bu 2 .. . -.ds n 5 .SH NAME \fB\%@TABS@\fP \- set terminal tab stops .SH SYNOPSIS -\fB@TABS@\fP [\fIoptions\fP]] \fI[tabstop-list]\fP +\fB@TABS@\fP [\fIoptions\fP] [\fItabstop-list\fP] .SH DESCRIPTION The \fB@TABS@\fP program clears and sets tab-stops on the terminal. This uses the terminfo \fBclear_all_tabs\fP and \fBset_tab\fP capabilities. @@ -87,7 +86,7 @@ or use the \fB@RESET@\fP program, since the normal initialization sequences do not ensure that tab-stops are reset. .SH OPTIONS -.SS General Options +.SS "General Options" .TP 5 .BI \-T "name" Tell \fB@TABS@\fP which terminal type to use. @@ -105,12 +104,13 @@ 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\fP -reports the version of ncurses which was used in this program, and exits. +reports the version of \fI\%ncurses\fP which was used in this program, +and exits. .PP The \fB@TABS@\fP program processes a single list of tab stops. The last option to be processed which defines a list is the one that determines the list to be processed. -.SS Implicit Lists +.SS "Implicit Lists" Use a single number as an option, e.g., \*(``\fB\-5\fP\*('' to set tabs at the given interval (in this case 1, 6, 11, 16, 21, etc.). @@ -119,7 +119,7 @@ Tabs are repeated up to the right margin of the screen. Use \*(``\fB\-0\fP\*('' to clear all tabs. .PP Use \*(``\fB\-8\fP\*('' to set tabs to the standard interval. -.SS Explicit Lists +.SS "Explicit Lists" An explicit list can be defined after the options (this does not use a \*(``\-\*(''). The values in the list must be in increasing numeric order, @@ -144,7 +144,7 @@ tabs 1,+5,+5,+5,+5 .RE .PP which is equivalent to the 1,6,11,16,21 example. -.SS Predefined Tab-Stops +.SS "Predefined Tab Stops" POSIX defines several predefined lists of tab stops. .TP 5 .B \-a @@ -192,103 +192,166 @@ UNIVAC 1100 Assembler .br 1,12,20,44 .SS Margins -A few terminals provide the capability for changing their left/right margins. -The @TABS@ program has an option to use this feature: +A few terminals expose a means of changing their left and right margins. +\fB@TABS@\fP supports this feature with an option. .TP 5 .BI +m \ margin The effect depends on whether the terminal has the margin capabilities: .RS .bP If the terminal provides the capability for setting the left margin, -@TABS@ uses this, and adjusts the available width for tab-stops. +\fB@TABS@\fP uses this, +and adjusts the available tab stop widths. .bP If the terminal does not provide the margin capabilities, -@TABS@ imitates the effect, putting the tab stops at the appropriate -place on each line. -The terminal's left-margin is not modified. +\fB@TABS@\fP imitates their effect, +putting tab stops at appropriate places on each line. +The terminal's left margin is not modified. .RE .IP -If the \fImargin\fP parameter is omitted, the default is 10. -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 -on moving the cursor before the current left-margin. +If the +.I margin +parameter is omitted, +the default is 10. +Use +.B +m0 +to reset the left margin, +that is, +to make it the left edge of the terminal's display. +Before setting a left margin, +\fB@TABS@\fP resets the margin to reduce problems that might arise +from moving the cursor to the left of the current left margin. .PP -When setting or resetting the left-margin, -@TABS@ may reset the right-margin. +When setting or resetting the left margin, +\fB@TABS@\fP may also reset the right margin. +.SH FILES +.TP +.I @DATADIR@/tabset +tab stop initialization database .SH PORTABILITY -\fIIEEE Std 1003.1/The Open Group Base Specifications Issue 7\fP (POSIX.1-2008) -describes a \fBtabs\fP utility. -However +IEEE Std 1003.1/The Open Group Base Specifications Issue 7 +(POSIX.1-2008) +describes a +.B tabs +utility. +However, .bP -This standard describes a \fB+m\fP option, to set a terminal's left-margin. +this standard describes a +.B +m +option to set a terminal's left margin. Very few of the entries in the terminal database provide the -\fBsmgl\fP (\fBset_left_margin\fP) or -\fBsmglp\fP (\fBset_left_margin_parm\fP) -capability needed to support the feature. +.B \%set_left_margin +.RB ( smgl ) +or +.B \%set_left_margin_parm +.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). .PP -The \fB\-d\fP (debug) and \fB\-n\fP (no-op) options are extensions not provided -by other implementations. -.PP -A \fBtabs\fP utility appeared in PWB/Unix 1.0 (1977). -There was a reduced version of the \fBtabs\fP utility -in Unix 7th edition and in 3BSD (1979). -The latter supported a single \*(``\-n\*('' option -(to cause the first tab stop to be set on the left margin). -That option is not documented by POSIX. +The +.B \-d +(debug) and +.B \-n +(no-op) options are +.I \%ncurses +extensions not provided by other implementations. +.SH HISTORY +A +.B tabs +utility appeared in PWB/Unix 1.0 (1977). +.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1/sys/source/s2/\ +.\" tabs.c +A reduced version shipped in Seventh Edition Unix +(early 1979) +.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/tabs.c +and in 3BSD +.\" 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 +left margin. +That option is not specified by POSIX. .PP -The PWB/Unix \fBtabs\fP utility, which was included in System III (1980), -used built-in tables rather than the terminal database, +The PWB/Unix +.B tabs +utility returned in System III (1980), +and used built-in tables to support a half-dozen hardcopy terminal (printer) types. -It also had built-in logic to support 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 -Later versions of Unix, e.g., SVr4, +Versions of the program in later releases of AT&T Unix, +such as SVr4, +.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=SysVR4/cmd/tabs/tabs.c added support for the terminal database, -but kept the tables to support the printers. -In an earlier development effort, -the tab-stop initialization provided by \fBtset\fP (1982) -and incorporated into \fBtput\fP uses the terminal database, +but retained the tables to support the printers. +By this time, +System\ V +.B tput +had incorporated the tab stop initialization feature of BSD's +.B tset +from 1982, +but employed the +.I \%term\%info +database to do so. .PP -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, +The +.B +m +option was documented in the POSIX Base Specifications Issue 5 +(Unix98, 1997), +then omitted in Issue 6 +(Unix03, 2004) +without express motivation, though an introductory comment -\fI\*(``and optionally adjusts the margin\*(''\fP remains, +\*(``and optionally adjusts the margin\*('' remains, 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 -in SVr4 by using terminal capabilities rather than built-in tables. +The +.B 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. .PP -POSIX documents no limits on the number of tab stops. -Documentation for other implementations states that there is a limit on the -number of tab stops -(e.g., 20 in PWB/Unix's \fBtabs\fP utility). -While some terminals may not accept an arbitrary number -of tab stops, this implementation will attempt to set tab stops up to the -right margin of the screen, if the given list happens to be that long. +POSIX documents no limit on the number of tab stops. +Other implementations impose one; +the limit is 20 in PWB/Unix's +.B 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. .PP -The \fIRationale\fP section of the POSIX documentation goes into some -detail about the ways the committee considered redesigning the -\fBtabs\fP and \fBtput\fP utilities, -without proposing an improved solution. -It comments that -.RS 5 +The \*(``Rationale\*('' section of the Issue 6 +.B tabs +reference page +.\" https://pubs.opengroup.org/onlinepubs/009604499/utilities/tabs.html +details how the committee considered redesigning the +.B tabs +and +.B tput +utilities, +without settling on an improved solution. +It claims that .PP -no known historical version of tabs supports the capability of setting -arbitrary tab stops. +.RS 4 +\*(``no known historical version of +.I tabs +supports the capability of setting arbitrary tab stops.\*('' .RE .PP -However, the \fIExplicit Lists\fP described in this manual page -were implemented in PWB/Unix. -Those provide the capability of setting abitrary tab stops. +The feature described in subsection \*(``Explicit Lists\*('' above was +implemented in PWB/Unix, +.\" see URL above +and permitted the setting of abitrary tab stops nevertheless. .SH SEE ALSO \fB\%@INFOCMP@\fP(1M), \fB\%@TSET@\fP(1), \fB\%curses\fP(3X), -\fB\%terminfo\fP(\*n) +\fB\%terminfo\fP(5)