<!--
****************************************************************************
- * Copyright 2018-2019,2020 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 *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tabs.1,v 1.28 2020/12/19 21:50:22 tom Exp @
+ * @Id: tabs.1,v 1.39 2023/07/01 15:46:10 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tabs 1</TITLE>
+<TITLE>tabs 1 2023-07-01 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">tabs 1</H1>
+<H1 class="no-header">tabs 1 2023-07-01 ncurses 6.4 User commands</H1>
<PRE>
-<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> General Commands Manual <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> User commands <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
The <STRONG>tabs</STRONG> program clears and sets tab-stops on the terminal. This uses
- the terminfo <EM>clear</EM><STRONG>_</STRONG><EM>all</EM><STRONG>_</STRONG><EM>tabs</EM> and <EM>set</EM><STRONG>_</STRONG><EM>tab</EM> capabilities. If either is
+ the terminfo <STRONG>clear_all_tabs</STRONG> and <STRONG>set_tab</STRONG> capabilities. If either is
absent, <STRONG>tabs</STRONG> is unable to clear/set tab-stops. The terminal should be
configured to use hard tabs, e.g.,
</PRE><H3><a name="h3-Predefined-Tab-Stops">Predefined Tab-Stops</a></H3><PRE>
- X/Open defines several predefined lists of tab stops.
+ POSIX defines several predefined lists of tab stops.
<STRONG>-a</STRONG> Assembler, IBM S/370, first format
+ 1,10,16,36,72
<STRONG>-a2</STRONG> Assembler, IBM S/370, second format
+ 1,10,16,40,72
<STRONG>-c</STRONG> COBOL, normal format
+ 1,8,12,16,20,55
<STRONG>-c2</STRONG> COBOL compact format
+ 1,6,10,14,49
<STRONG>-c3</STRONG> COBOL compact format extended
+ 1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67
<STRONG>-f</STRONG> FORTRAN
+ 1,7,11,15,19,23
<STRONG>-p</STRONG> PL/I
+ 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61
<STRONG>-s</STRONG> SNOBOL
+ 1,10,55
<STRONG>-u</STRONG> UNIVAC 1100 Assembler
+ 1,12,20,44
+
+
+</PRE><H3><a name="h3-Margins">Margins</a></H3><PRE>
+ A few terminals provide the capability for changing their left/right
+ margins. The tabs program has an option to use this feature:
+
+ <STRONG>+m</STRONG> <EM>margin</EM>
+ The effect depends on whether the terminal has the margin
+ capabilities:
+
+ <STRONG>o</STRONG> If the terminal provides the capability for setting the left
+ margin, tabs uses this, and adjusts the available width for
+ tab-stops.
+
+ <STRONG>o</STRONG> 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.
+
+ If the <EM>margin</EM> parameter is omitted, the default is 10. Use <STRONG>+m0</STRONG> 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.
+
+ When setting or resetting the left-margin, tabs may reset the right-
+ margin.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
capability needed to support the feature.
<STRONG>o</STRONG> There is no counterpart in X/Open Curses Issue 7 for this utility,
- unlike <STRONG>tput(1)</STRONG>.
+ unlike <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>.
The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are extensions not provided by
other implementations.
The PWB/Unix <STRONG>tabs</STRONG> utility, which was included in System III (1980),
used built-in tables rather than the terminal database, to support a
- half-dozen terminal types. It also had built-in logic to support the
- left-margin, as well as a feature for copying the tab settings from a
- file.
+ half-dozen hardcopy terminal (printer) types. It also had built-in
+ logic to support the left-margin, as well as a feature for copying the
+ tab settings from a file.
Later versions of Unix, e.g., SVr4, added support for the terminal
- database, but kept the tables, as a fallback. In an earlier
+ database, but kept the tables to support the printers. In an earlier
development effort, the tab-stop initialization provided by <STRONG>tset</STRONG> (1982)
and incorporated into <STRONG>tput</STRONG> uses the terminal database,
- POSIX documents no limits on the number of tab stops. Documentation
+ The <STRONG>+m</STRONG> 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 <EM>"and</EM>
+ <EM>optionally</EM> <EM>adjusts</EM> <EM>the</EM> <EM>margin"</EM> remains, overlooked in the removal. The
+ documented <STRONG>tabs</STRONG> utility in Issues 6 and later has no mechanism for
+ setting margins. The <STRONG>+m</STRONG> option in this implementation differs from the
+ feature in SVr4 by using terminal capabilities rather than built-in
+ tables.
+
+ 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 <STRONG>tabs</STRONG> 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
+ tab stops (e.g., 20 in PWB/Unix's <STRONG>tabs</STRONG> 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.
- The <EM>Rationale</EM> section of the POSIX documentation goes into some detail
- about the ways the committee considered redesigning the <STRONG>tabs</STRONG> and <STRONG>tput</STRONG>
+ The <EM>Rationale</EM> section of the POSIX documentation goes into some detail
+ about the ways the committee considered redesigning the <STRONG>tabs</STRONG> and <STRONG>tput</STRONG>
utilities, without proposing an improved solution. It comments that
- no known historical version of tabs supports the capability of
+ no known historical version of tabs supports the capability of
setting arbitrary tab stops.
However, the <EM>Explicit</EM> <EM>Lists</EM> described in this manual page were
- implemented in PWB/Unix. Those provide the capability of setting
+ implemented in PWB/Unix. Those provide the capability of setting
abitrary tab stops.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210710).
+ This describes <STRONG>ncurses</STRONG> version 6.4 (patch 20230715).
- <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+ncurses 6.4 2023-07-01 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h3-Implicit-Lists">Implicit Lists</a></li>
<li><a href="#h3-Explicit-Lists">Explicit Lists</a></li>
<li><a href="#h3-Predefined-Tab-Stops">Predefined Tab-Stops</a></li>
+<li><a href="#h3-Margins">Margins</a></li>
</ul>
</li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>