]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/tabs.1.html
ncurses 6.1 - patch 20191026
[ncurses.git] / doc / html / man / tabs.1.html
index 27db64bb0739bb4c3389507a7ac4ab268974dbc6..ccdf6d5633d86d95e021ef012f15736754eaaa77 100644 (file)
@@ -1,6 +1,6 @@
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2008-2013,2016 Free Software Foundation, Inc.              *
+  * Copyright (c) 2008-2018,2019 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tabs.1,v 1.12 2016/04/02 23:40:46 tom Exp @
+  * @Id: tabs.1,v 1.26 2019/06/23 21:01:12 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 http://invisible-island.net/scripts/readme.html#others_scripts">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
 <TITLE>tabs 1</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<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>
 <PRE>
-<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>                                                         <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>                     General Commands Manual                    <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 termi-
-       nal.  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  absent,  <STRONG>tabs</STRONG> is unable to
-       clear/set tab-stops.  The terminal should be configured to
-       use hard tabs, e.g.,
+       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
+       absent,  <STRONG>tabs</STRONG> is unable to clear/set tab-stops.  The terminal should be
+       configured to use hard tabs, e.g.,
 
-              stty tab0
+           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
+
+           tabs -8
+
+       or use the <STRONG>reset</STRONG> program, since the normal initialization sequences  do
+       not ensure that tab-stops are reset.
 
 
 </PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
 
 </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  not  set,  it  will use the
-            <EM>ansi+tabs</EM> entry.
+            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, marked with
-            asterisks.
+       <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 option, but not to modify the terminal
-            settings.
+       <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.
+       <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 list to be processed.
+       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
+       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 to the right margin of the
-       screen.
+       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 example,
+       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,
+
+           tabs 1,6,11,16,21
+           tabs 1 6 11 16 21
 
-              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 value, e.g.,
+       Use  a  "+"  to treat a number as an increment relative to the previous
+       value, e.g.,
 
-              tabs 1,+5,+5,+5,+5
+           tabs 1,+5,+5,+5,+5
 
        which is equivalent to the 1,6,11,16,21 example.
 
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       IEEE Std 1003.1/The Open Group  Base Specifications  Issue
-       7 (POSIX.1-2008) describes a <STRONG>tabs</STRONG> utility.  However
+       <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>   There is no counterpart in X/Open Curses Issue 7 for this  utility,
+           unlike <STRONG>tput(1)</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  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,
 
-       <STRONG>o</STRONG>   This  standard  describes a <STRONG>+m</STRONG> option, to set a termi-
-           nal's left-margin.  Very few of  the  entries  in  the
-           terminal database provide this capability.
+       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.
 
-       <STRONG>o</STRONG>   There  is  no counterpart in X/Open Curses Issue 7 for
-           this utility, unlike <STRONG><A HREF="tput.3x.html">tput(3x)</A></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
 
-       The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are  extensions  not
-       provided by other implementations.
+            no  known  historical  version  of tabs supports the capability of
+            setting arbitrary tab stops.
 
-       Documentation  for other implementations states that there
-       is a limit on the number of tab stops.  While some  termi-
-       nals 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.
+       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.
 
 
 </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>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20160611).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191026).
 
 
 
-                                                                <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+                                                                       <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>