]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/tabs.1.html
ncurses 6.2 - patch 20210821
[ncurses.git] / doc / html / man / tabs.1.html
index 27db64bb0739bb4c3389507a7ac4ab268974dbc6..bbd29aaa977b04bb877e5fcce535aa796001dc37 100644 (file)
@@ -1,6 +1,7 @@
-<!-- 
+<!--
   ****************************************************************************
-  * Copyright (c) 2008-2013,2016 Free Software Foundation, Inc.              *
+  * Copyright 2018-2019,2020 Thomas E. Dickey                                *
+  * Copyright 2008-2016,2017 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.28 2020/12/19 21:50:22 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
+       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
+       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
+       example,
+
+           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-
+           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>.
+
+       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
+       development 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
+       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.0 (patch 20160611).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210821).
 
 
 
-                                                                <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>