]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/tabs.1.html
ncurses 6.4 - patch 20240420
[ncurses.git] / doc / html / man / tabs.1.html
index 1b78541cacfcbbf0c79236906bb2a040ac997161..5f4818826477829b7f619b0314d76c7dde3f21d0 100644 (file)
@@ -1,6 +1,6 @@
 <!--
   ****************************************************************************
-  * 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  *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tabs.1,v 1.47 2023/10/07 21:19:07 tom Exp @
+  * @Id: tabs.1,v 1.59 2024/04/20 19:08:15 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 2023-10-07 ncurses 6.4 User commands</TITLE>
+<TITLE>tabs 1 2024-04-20 ncurses 6.4 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">tabs 1 2023-10-07 ncurses 6.4 User commands</H1>
+<H1 class="no-header">tabs 1 2024-04-20 ncurses 6.4 User commands</H1>
 <PRE>
 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>                          User commands                         <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
 
@@ -51,7 +51,7 @@
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
-       <STRONG>tabs</STRONG> [<EM>options</EM>]] <EM>[tabstop-list]</EM>
+       <STRONG>tabs</STRONG> [<EM>options</EM>] [<EM>tabstop-list</EM>]
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -97,7 +97,7 @@
        <STRONG>-n</STRONG>   This  option tells <STRONG>tabs</STRONG> to check the options and run any debugging
             option, but not to modify the terminal settings.
 
-       <STRONG>-V</STRONG>   reports the version of ncurses which was used in this program, and
+       <STRONG>-V</STRONG>   reports the version of <EM>ncurses</EM> which was used in this program, and
             exits.
 
        The <STRONG>tabs</STRONG> program processes a single list of tab stops.  The last option
        which is equivalent to the 1,6,11,16,21 example.
 
 
-</PRE><H3><a name="h3-Predefined-Tab-Stops">Predefined Tab-Stops</a></H3><PRE>
+</PRE><H3><a name="h3-Predefined-Tab-Stops">Predefined Tab Stops</a></H3><PRE>
        POSIX defines several predefined lists of tab stops.
 
        <STRONG>-a</STRONG>   Assembler, IBM S/370, first format
 
 
 </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:
+       A  few  terminals  expose  a  means  of  changing  their left and right
+       margins.  <STRONG>tabs</STRONG> supports this feature with an option.
 
        <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.
+                margin, <STRONG>tabs</STRONG> uses this, and adjusts  the  available  tab  stop
+                widths.
 
-            <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.
+            <STRONG>o</STRONG>   If the terminal does not provide the margin capabilities, <STRONG>tabs</STRONG>
+                imitates their effect, putting tab stops at appropriate places
+                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.
+            reset the left margin, that is, to make it the left  edge  of  the
+            terminal's display.  Before setting a left margin, <STRONG>tabs</STRONG> resets the
+            margin to reduce problems that might arise from moving the  cursor
+            to the left of the current left margin.
 
-       When setting or resetting the left-margin, tabs may  reset  the  right-
-       margin.
+       When  setting  or  resetting  the  left margin, <STRONG>tabs</STRONG> may also reset the
+       right margin.
+
+
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+       <EM>/usr/share/tabset</EM>
+              tab stop initialization database
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       <EM>IEEE</EM>   <EM>Std</EM>   <EM>1003.1/The</EM>   <EM>Open</EM>   <EM>Group</EM>   <EM>Base</EM>  <EM>Specifications</EM>  <EM>Issue</EM>  <EM>7</EM>
-       (POSIX.1-2008) describes a <STRONG>tabs</STRONG> utility.  However
+       IEEE  Std  1003.1/The  Open   Group   Base   Specifications   Issue   7
+       (POSIX.1-2008) describes a <STRONG>tabs</STRONG> utility.  However,
 
-       <STRONG>o</STRONG>   This standard describes a <STRONG>+m</STRONG> option,  to  set  a  terminal's  left-
-           margin.   Very  few of the entries in the terminal database provide
-           the  <STRONG>smgl</STRONG>   (<STRONG>set_left_margin</STRONG>)   or   <STRONG>smglp</STRONG>   (<STRONG>set_left_margin_parm</STRONG>)
-           capability needed to support the feature.
+       <STRONG>o</STRONG>   this  standard  describes  a  <STRONG>+m</STRONG>  option  to  set a terminal's left
+           margin.  Very few of the entries in the terminal  database  provide
+           the   <STRONG>set_left_margin</STRONG>   (<STRONG>smgl</STRONG>)   or   <STRONG>set_left_margin_parm</STRONG>  (<STRONG>smglp</STRONG>)
+           capabilities needed to support the feature.
 
-       <STRONG>o</STRONG>   There  is no counterpart in X/Open Curses Issue 7 for this utility,
+       <STRONG>o</STRONG>   There is no counterpart in X/Open Curses Issue 7 for this  utility,
            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.
-
-       A  <STRONG>tabs</STRONG>  utility  appeared in PWB/Unix 1.0 (1977).  There was a reduced
-       version of the <STRONG>tabs</STRONG> 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 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 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 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,
-
-       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
-       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>
-       utilities, without proposing an improved solution.  It comments that
-
-            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
-       abitrary tab stops.
+       The  <STRONG>-d</STRONG>  (debug)  and  <STRONG>-n</STRONG>  (no-op)  options  are <EM>ncurses</EM> extensions not
+       provided by other implementations.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+       A <STRONG>tabs</STRONG> utility appeared in PWB/Unix  1.0  (1977).   A  reduced  version
+       shipped  in  Seventh  Edition  Unix (early 1979) and in 3BSD (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.
+
+       The  PWB/Unix  <STRONG>tabs</STRONG>  utility  returned  in  System III (1980), and used
+       built-in tables to support a  half-dozen  hardcopy  terminal  (printer)
+       types.   It  also had logic to support setting the left margin, as well
+       as a feature for copying the tab settings from a file.
+
+       Versions of the program in later releases of AT&amp;T Unix, such  as  SVr4,
+       added  support  for  the  terminal database, but retained the tables to
+       support the printers.  By this time, System V <STRONG>tput</STRONG> had incorporated the
+       tab  stop  initialization feature of BSD's <STRONG>tset</STRONG> from 1982, but employed
+       the <EM>terminfo</EM> database to do so.
+
+       The <STRONG>+m</STRONG> 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 "and optionally adjusts  the
+       margin"   remains,   overlooked  in  the  removal.   The  <STRONG>tabs</STRONG>  utility
+       documented in Issues 6 and later has no mechanism for setting  margins.
+       The  <STRONG>+m</STRONG>  option  in <EM>ncurses</EM> <STRONG>tabs</STRONG> differs from the SVr4 feature by using
+       terminal capabilities rather than built-in tables.
+
+       POSIX  documents  no  limit  on  the  number  of  tab   stops.    Other
+       implementations impose one; the limit is 20 in PWB/Unix's <STRONG>tabs</STRONG> utility.
+       While some terminals may not accept an arbitrary number of  tab  stops,
+       <EM>ncurses</EM>  <STRONG>tabs</STRONG>  attempts  to set tab stops up to the right margin if the
+       list thereof is sufficiently long.
+
+       The "Rationale" section of the Issue 6 <STRONG>tabs</STRONG> reference page details  how
+       the  committee  considered  redesigning  the  <STRONG>tabs</STRONG>  and <STRONG>tput</STRONG> utilities,
+       without settling on an improved solution.  It claims that
+
+           "no known historical version of <EM>tabs</EM>  supports  the  capability  of
+           setting arbitrary tab stops."
+
+       The   feature  described  in  subsection  "Explicit  Lists"  above  was
+       implemented in PWB/Unix, and permitted  the  setting  of  abitrary  tab
+       stops nevertheless.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 
 
-ncurses 6.4                       2023-10-07                           <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+ncurses 6.4                       2024-04-20                           <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
@@ -266,11 +270,13 @@ ncurses 6.4                       2023-10-07                           <STRONG><
 <li><a href="#h3-General-Options">General Options</a></li>
 <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-Predefined-Tab-Stops">Predefined Tab Stops</a></li>
 <li><a href="#h3-Margins">Margins</a></li>
 </ul>
 </li>
+<li><a href="#h2-FILES">FILES</a></li>
 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
 </ul>
 </div>