]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/tabs.1.html
ncurses 6.2 - patch 20211016
[ncurses.git] / doc / html / man / tabs.1.html
index af46c4139aeb8219c5181ca3e3793fad522d99f7..e46f3a735a66e672967a20c0d5d14ed3ed1035e6 100644 (file)
@@ -1,6 +1,6 @@
-<!-- 
+<!--
   ****************************************************************************
-  * Copyright 2018-2019,2020 Thomas E. Dickey                                *
+  * Copyright 2018-2020,2021 Thomas E. Dickey                                *
   * Copyright 2008-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tabs.1,v 1.27 2020/02/02 23:34:34 tom Exp @
+  * @Id: tabs.1,v 1.32 2021/10/16 13:37:43 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
            stty tab0
 
        Like <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>tabs</STRONG> writes to the standard output.   You  can  redirect
-       the standard output to a file (which prevents <STRONG>tabs</STRONG> from actually chang-
-       ing the tabstops), and later <STRONG>cat</STRONG> the file to the screen,  setting  tab-
-       stops at that point.
-
-       These  are  hardware  tabs, which cannot be queried rapidly by applica-
-       tions running in the terminal, if at all.  Curses and other full-screen
-       applications  may  use  hardware tabs in optimizing their output to the
-       terminal.  If the hardware tabstops differ from the information in  the
-       terminal  database, the result is unpredictable.  Before running curses
-       programs, you should either reset tab-stops to the standard interval
+       the  standard  output  to  a  file  (which  prevents <STRONG>tabs</STRONG> from actually
+       changing the tabstops), and later <STRONG>cat</STRONG> the file to the  screen,  setting
+       tabstops at that point.
+
+       These   are   hardware   tabs,  which  cannot  be  queried  rapidly  by
+       applications running in the terminal, if  at  all.   Curses  and  other
+       full-screen  applications  may  use  hardware  tabs in optimizing their
+       output to the terminal.  If  the  hardware  tabstops  differ  from  the
+       information  in  the  terminal  database,  the result is unpredictable.
+       Before running curses programs, you should either  reset  tab-stops  to
+       the standard interval
 
            tabs -8
 
-       or use the <STRONG>reset</STRONG> program, since the normal initialization sequences  do
+       or  use the <STRONG>reset</STRONG> program, since the normal initialization sequences do
        not ensure that tab-stops are reset.
 
 
 
 </PRE><H3><a name="h3-General-Options">General Options</a></H3><PRE>
        <STRONG>-T</STRONG><EM>name</EM>
-            Tell  <STRONG>tabs</STRONG>  which  terminal  type  to  use.  If this option is not
-            given, <STRONG>tabs</STRONG> will use the <STRONG>$TERM</STRONG> environment variable.  If  that  is
+            Tell <STRONG>tabs</STRONG> which terminal type to  use.   If  this  option  is  not
+            given,  <STRONG>tabs</STRONG>  will use the <STRONG>$TERM</STRONG> environment variable.  If that is
             not set, it will use the <EM>ansi+tabs</EM> entry.
 
-       <STRONG>-d</STRONG>   The  debugging  option  shows  a  ruler line, followed by two data
-            lines.  The first data line shows the  expected  tab-stops  marked
-            with  asterisks.  The second data line shows the actual tab-stops,
+       <STRONG>-d</STRONG>   The debugging option shows a ruler  line,  followed  by  two  data
+            lines.   The  first  data line shows the expected tab-stops marked
+            with asterisks.  The second data line shows the actual  tab-stops,
             marked with asterisks.
 
-       <STRONG>-n</STRONG>   This option tells <STRONG>tabs</STRONG> to check the options and run any  debugging
+       <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
             exits.
 
        The <STRONG>tabs</STRONG> program processes a single list of tab stops.  The last option
-       to  be  processed  which  defines a list is the one that determines the
+       to be processed which defines a list is the  one  that  determines  the
        list to be processed.
 
 
 </PRE><H3><a name="h3-Implicit-Lists">Implicit Lists</a></H3><PRE>
-       Use a single number as an option, e.g., "<STRONG>-5</STRONG>" to set tabs at  the  given
-       interval  (in  this case 1, 6, 11, 16, 21, etc.).  Tabs are repeated up
+       Use  a  single number as an option, e.g., "<STRONG>-5</STRONG>" to set tabs at the given
+       interval (in this case 1, 6, 11, 16, 21, etc.).  Tabs are  repeated  up
        to the right margin of the screen.
 
        Use "<STRONG>-0</STRONG>" to clear all tabs.
 
 
 </PRE><H3><a name="h3-Explicit-Lists">Explicit Lists</a></H3><PRE>
-       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, and
-       greater than zero.  They are separated by a comma or a blank, for exam-
-       ple,
+       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,  and
+       greater  than  zero.   They  are  separated  by a comma or a blank, for
+       example,
 
            tabs 1,6,11,16,21
            tabs 1 6 11 16 21
 
-       Use  a  "+"  to treat a number as an increment relative to the previous
+       Use a "+" to treat a number as an increment relative  to  the  previous
        value, e.g.,
 
            tabs 1,+5,+5,+5,+5
 
 
 </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>
-       <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>
+       <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
 
-       <STRONG>o</STRONG>   This  standard describes a <STRONG>+m</STRONG> option, to set a terminal's left-mar-
-           gin.  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>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>   There is no counterpart in X/Open Curses Issue 7 for this  utility,
-           unlike <STRONG>tput(1)</STRONG>.
+       <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
+       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
+       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  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.
-
-       Later  versions  of  Unix,  e.g.,  SVr4, added support for the terminal
-       database, but kept the tables, as a fallback.  In an  earlier  develop-
-       ment  effort,  the  tab-stop initialization provided by <STRONG>tset</STRONG> (1982) and
-       incorporated into <STRONG>tput</STRONG> uses the terminal database,
+       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
             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  imple-
-       mented  in  PWB/Unix.  Those provide the capability of setting abitrary
-       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.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-       <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+       <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 20200321).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20211016).
 
 
 
 <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>