Make stty(1) use tab0 and tab3 to handle tab completion.

After the MPSAFE TTY import, we have support for the TAB0 and TAB3 flags
to handle tab expansion, while we only used to support OXTABS. Switch
stty(1) to use tab0 and tab3 to print whether tab expansion is turned on
or off. Implement the oxtabs and tabs switches by setting the
appropriate TABx value.

Even though POSIX only lists this as being XSI, we'd better follow it.
This commit is contained in:
Ed Schouten 2008-08-23 13:28:55 +00:00
parent aa22af9438
commit f8f8c9f0d6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=182052
3 changed files with 23 additions and 8 deletions

View File

@ -191,10 +191,12 @@ struct modes omodes[] = {
{ "-onlcr", 0, ONLCR },
{ "ocrnl", OCRNL, 0 },
{ "-ocrnl", 0, OCRNL },
{ "tabs", 0, OXTABS }, /* "preserve" tabs */
{ "-tabs", OXTABS, 0 },
{ "oxtabs", OXTABS, 0 },
{ "-oxtabs", 0, OXTABS },
{ "tabs", TAB0, TABDLY }, /* "preserve" tabs */
{ "-tabs", TAB3, TABDLY },
{ "oxtabs", TAB3, TABDLY },
{ "-oxtabs", TAB0, TABDLY },
{ "tab0", TAB0, TABDLY },
{ "tab3", TAB3, TABDLY },
{ "onocr", ONOCR, 0 },
{ "-onocr", 0, ONOCR },
{ "onlret", ONLRET, 0 },

View File

@ -136,7 +136,14 @@ print(struct termios *tp, struct winsize *wp, int ldisc, enum FMT fmt)
put("-opost", OPOST, 1);
put("-onlcr", ONLCR, 1);
put("-ocrnl", OCRNL, 0);
put("-oxtabs", OXTABS, 1);
switch(tmp&TABDLY) {
case TAB0:
bput("tab0");
break;
case TAB3:
bput("tab3");
break;
}
put("-onocr", ONOCR, 0);
put("-onlret", ONLRET, 0);

View File

@ -32,7 +32,7 @@
.\" @(#)stty.1 8.4 (Berkeley) 4/18/94
.\" $FreeBSD$
.\"
.Dd April 18, 1994
.Dd August 23, 2008
.Dt STTY 1
.Os
.Sh NAME
@ -244,8 +244,12 @@ Map (do not map)
to
.Dv NL
on output.
.It Cm oxtabs Pq Fl oxtabs
Expand (do not expand) tabs to spaces on output.
.It Cm tab0 tab3
Select tab expansion policy.
.Cm tab0
disables tab expansion, while
.Cm tab3
enables it.
.It Cm onocr Pq Fl onocr
Do not (do) output CRs at column zero.
.It Cm onlret Pq Fl onlret
@ -570,6 +574,8 @@ Same as
.It Cm litout Pq Fl litout
The converse of
.Cm opost .
.It Cm oxtabs Pq Fl oxtabs
Expand (do not expand) tabs to spaces on output.
.It Cm tabs Pq Fl tabs
The converse of
.Cm oxtabs .