]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/clear.1
ncurses 6.5 - patch 20240504
[ncurses.git] / man / clear.1
index 78001751278a1e3939b78bd03bf6c0344dba5e5d..a1034db7cb1a98ce34fc8a13063fc1e81d4b3e2a 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2020,2021 Thomas E. Dickey                                *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
 .\" Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: clear.1,v 1.24 2021/11/14 00:33:00 tom Exp $
-.TH @CLEAR@ 1 ""
-.\" these would be fallbacks for DS/DE,
-.\" but groff changed the meaning of the macros.
-.de NS
-.ie n  .sp
-.el    .sp .5
-.ie n  .in +4
-.el    .in +2
-.nf
-.ft C                  \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n  .in -4
-.el    .in -2
-..
-.ie \n(.g .ds `` \(lq
-.el       .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el       .ds '' ''
+.\" $Id: clear.1,v 1.48 2024/03/16 15:35:01 tom Exp $
+.TH @CLEAR@ 1 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds '  \(aq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el   .ds `` ""
+.ie t .ds '' ''
+.el   .ds '' ""
+.ie t .ds '  \(aq
+.el   .ds '  '
+.\}
+.
 .de bP
 .ie n  .IP \(bu 4
 .el    .IP \(bu 2
 ..
-.ds n 5
+.
 .SH NAME
-\fB@CLEAR@\fR \- clear the terminal screen
+\fB\%@CLEAR@\fP \-
+clear the terminal screen
 .SH SYNOPSIS
-\fB@CLEAR@\fR [\fB\-T\fR\fItype\fR] [\fB\-V\fP] [\fB\-x\fP]
-.br
+.B @CLEAR@
+.RB [ \-x ]
+.RB [ \-T\ \c
+.IR terminal-type ]
+.PP
+.B "@CLEAR@ \-V"
 .SH DESCRIPTION
-\fB@CLEAR@\fR clears your terminal's screen if this is possible,
-including the terminal's scrollback buffer
-(if the extended \*(``E3\*('' capability is defined).
-\fB@CLEAR@\fR looks in the environment for the terminal type
-given by the environment variable \fBTERM\fP,
-and then in the
-\fBterminfo\fR database to determine how to clear the screen.
+\fB\%@CLEAR@\fP clears your terminal's screen and its scrollback buffer,
+if any.
+\fB\%@CLEAR@\fP retrieves the terminal type from the environment
+variable \fITERM\fP,
+then consults the \fIterminfo\fP terminal capability database entry for
+that type to determine how to perform these actions.
 .PP
-\fB@CLEAR@\fR writes to the standard output.
-You can redirect the standard output to a file (which prevents
-\fB@CLEAR@\fR from actually clearing the screen),
-and later \fBcat\fP the file to the screen, clearing it at that point.
+The capabilities to clear the screen and scrollback buffer are named
+\*(``clear\*('' and \*(``E3\*('', respectively.
+The latter is a \fIuser-defined capability\fP,
+applying an extension mechanism introduced in \fI\%ncurses\fP 5.0
+(1999).
 .SH OPTIONS
-.PP
-.TP 5
+\fB\%@CLEAR@\fP recognizes the following options.
+.TP 9 \" "-T type" + 2n
 .B \-T \fItype\fP
-indicates the \fItype\fR of terminal.
-Normally this option is
-unnecessary, because the default is taken from the environment
-variable \fBTERM\fR.
-If \fB\-T\fR is specified, then the shell
-variables \fBLINES\fR and \fBCOLUMNS\fR will also be ignored.
+produces instructions suitable for the terminal \fItype\fP.
+Normally,
+this option is unnecessary,
+because the terminal type is inferred from the environment variable
+\fITERM\fP.
+If this option is specified,
+\fB\%@CLEAR@\fP ignores the environment variables \fILINES\fP and
+\fI\%COLUMNS\fP as well.
 .TP
 .B \-V
-reports the version of ncurses which was used in this program, and exits.
-The options are as follows:
+reports the version of \fI\%ncurses\fP associated with this program and
+exits with a successful status.
 .TP
 .B \-x
-do not attempt to clear the terminal's scrollback buffer
-using the extended \*(``E3\*('' capability.
+prevents \fB\%@CLEAR@\fP from attempting to clear the scrollback buffer.
+.SH PORTABILITY
+Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+(POSIX.1-2008) nor X/Open Curses Issue 7 documents \fB\%@CLEAR@\fP.
+.PP
+The latter documents \fBtput\fP,
+which could be used to replace this utility either via a shell script or
+by an alias
+(such as a symbolic link)
+to run \fB\%@TPUT@\fP as \fB\%@CLEAR@\fP.
 .SH HISTORY
-A \fBclear\fP command appeared in 2.79BSD dated February 24, 1979.
-Later that was provided in Unix 8th edition (1985).
+A \fBclear\fP command using the \fItermcap\fP database and library
+appeared in 2BSD (1979).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/clear.c
+Eighth Edition Unix (1985) later included it.
+.PP
+The commercial Unix arm of AT&T adapted a different BSD program
+(\fBtset\fP) to make a new command,
+\fBtput\fP,
+and replaced the \fBclear\fP program with a shell script that called
+\*(``\fBtput clear\fP\*(''.
 .PP
-AT&T adapted a different BSD program (\fBtset\fP) to make
-a new command (\fBtput\fP),
-and used this to replace the \fBclear\fP command with a shell script
-which calls \fBtput clear\fP, e.g.,
-.NS
-/usr/bin/tput ${1:+-T$1} clear 2> /dev/null
+.RS 4
+.EX
+/usr/bin/tput ${1:+\-T$1} clear 2> /dev/null
 exit
-.NE
+.EE
+.RE
 .PP
 In 1989, when Keith Bostic revised the BSD \fBtput\fP command
-to make it similar to the AT&T \fBtput\fP,
-he added a shell script for the \fBclear\fP command:
-.NS
+to make it similar to AT&T's \fBtput\fP,
+he added a \fBclear\fP shell script as well.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=Net2/usr/src/usr.bin/\
+.\"   tput/clear.sh
+.PP
+.RS 4
+.EX
 exec tput clear
-.NE
+.EE
+.RE
 .PP
 The remainder of the script in each case is a copyright notice.
 .PP
-The ncurses \fBclear\fP command began in 1995 by adapting the original
-BSD \fBclear\fP command (with terminfo, of course).
-.PP
-The \fBE3\fP extension came later:
+In 1995,
+\fI\%ncurses\fP's \fBclear\fP began by adapting BSD's original
+\fBclear\fP command to use \fIterminfo\fP.
+The \fBE3\fP extension came later.
 .bP
-In June 1999, xterm provided an extension to the standard control
+In June 1999, \fIxterm\fP provided an extension to the standard control
 sequence for clearing the screen.
 Rather than clearing just the visible part of the screen using
-.NS
-printf '\\033[2J'
-.NE
+.RS 8
+.PP
+.EX
+printf \*'\e033[2J\*'
+.EE
+.RE
 .IP
-one could clear the \fIscrollback\fP using
-.NS
-printf '\\033[\fB3\fPJ'
-.NE
+one could clear the scrollback buffer as well by using
+.RS 8
+.PP
+.EX
+printf \*'\e033[\fB3\fPJ\*'
+.EE
+.RE
 .IP
-This is documented in \fIXTerm Control Sequences\fP as a feature originating
-with xterm.
+instead.
+\*(``XTerm Control Sequences\fP\*('' documents this feature as
+originating with \fIxterm\fP.
 .bP
-A few other terminal developers adopted the feature, e.g., PuTTY in 2006.
+A few other terminal emulators adopted it,
+such as PuTTY in 2006.
 .bP
 In April 2011, a Red Hat developer submitted a patch to the Linux
 kernel, modifying its console driver to do the same thing.
-The Linux change, part of the 3.0 release, did not mention xterm,
-although it was cited in the Red Hat bug report (#683733)
-which led to the change.
+Documentation of this change,
+appearing in Linux 3.0,
+did not mention \fIxterm\fP,
+although that program was cited in the Red Hat bug report (#683733)
+motivating the feature.
 .bP
-Again, a few other terminal developers adopted the feature.
-But the
-next relevant step was a change to the \fBclear\fP program in 2013
-to incorporate this extension.
+Subsequently,
+more terminal developers adopted the feature.
+The next relevant step was to change the \fI\%ncurses\fP \fBclear\fP
+program in 2013 to incorporate this extension.
 .bP
-In 2013, the \fBE3\fP extension was overlooked in \fB@TPUT@\fP with
-the \*(``clear\*('' parameter.
-That was addressed in 2016 by reorganizing \fB@TPUT@\fP to share
-its logic with \fB@CLEAR@\fP and \fB@TSET@\fP.
-.SH PORTABILITY
-Neither IEEE Std 1003.1/The Open  Group  Base  Specifications  Issue  7
-(POSIX.1-2008) nor X/Open Curses Issue 7 documents @TSET@ or @RESET@.
-.PP
-The latter documents \fBtput\fP, which could be used to replace this utility
-either via a shell script or by an alias (such as a symbolic link) to
-run \fB@TPUT@\fP as \fB@CLEAR@\fP.
+In 2013,
+the \fBE3\fP capability was not exercised by
+\*(``\fB\%@TPUT@ clear\fP\*(''.
+That oversight was addressed in 2016 by reorganizing \fB\%@TPUT@\fP to
+share its logic with \fB\%@CLEAR@\fP and \fB\%@TSET@\fP.
 .SH SEE ALSO
-\fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fB\%@TPUT@\fP(1),
+\fB\%xterm\fP(1),
+\fB\%terminfo\fP(5)