mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-14 14:21:18 +01:00
15fccd86b9
Bring in NetBSD's vis as of 2021-06-21 Man page fixes, -M, -N and -S support for shell meta characters (all or some) and no locale. Discussed with: emaste@ Differential Revision: https://reviews.freebsd.org/D25358
206 lines
5.9 KiB
Groff
206 lines
5.9 KiB
Groff
.\" $NetBSD: vis.1,v 1.25 2021/02/20 09:31:51 nia Exp $
|
|
.\"
|
|
.\" Copyright (c) 1989, 1991, 1993, 1994
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)vis.1 8.4 (Berkeley) 4/19/94
|
|
.\"
|
|
.Dd February 18, 2021
|
|
.Dt VIS 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm vis
|
|
.Nd display non-printable characters in a visual format
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl bcfhlMmNnoSstw
|
|
.Op Fl e Ar extra
|
|
.Op Fl F Ar foldwidth
|
|
.Op Ar file ...
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is a filter for converting non-printable characters
|
|
into a visual representation.
|
|
It differs from
|
|
.Ql cat -v
|
|
in that
|
|
the form is unique and invertible.
|
|
By default, all non-graphic
|
|
characters except space, tab, and newline are encoded.
|
|
A detailed description of the
|
|
various visual formats is given in
|
|
.Xr vis 3 .
|
|
.Pp
|
|
The options are as follows:
|
|
.Bl -tag -width Ds
|
|
.It Fl b
|
|
Turns off prepending of backslash before up-arrow control sequences
|
|
and meta characters, and disables the doubling of backslashes.
|
|
This
|
|
produces output which is neither invertible or precise, but does
|
|
represent a minimum of change to the input.
|
|
It is similar to
|
|
.Dq Li cat -v .
|
|
.Pq Dv VIS_NOSLASH
|
|
.It Fl c
|
|
Request a format which displays a small subset of the
|
|
non-printable characters using C-style backslash sequences.
|
|
.Pq Dv VIS_CSTYLE
|
|
.It Fl e Ar extra
|
|
Also encode characters in
|
|
.Ar extra ,
|
|
per
|
|
.Xr svis 3 .
|
|
.It Fl F Ar foldwidth
|
|
Causes
|
|
.Nm
|
|
to fold output lines to foldwidth columns (default 80), like
|
|
.Xr fold 1 ,
|
|
except
|
|
that a hidden newline sequence is used, (which is removed
|
|
when inverting the file back to its original form with
|
|
.Xr unvis 1 ) .
|
|
If the last character in the encoded file does not end in a newline,
|
|
a hidden newline sequence is appended to the output.
|
|
This makes
|
|
the output usable with various editors and other utilities which
|
|
typically don't work with partial lines.
|
|
.It Fl f
|
|
Same as
|
|
.Fl F .
|
|
.It Fl h
|
|
Encode using the URI encoding from RFC 1808.
|
|
.Pq Dv VIS_HTTPSTYLE
|
|
.It Fl l
|
|
Mark newlines with the visible sequence
|
|
.Ql \e$ ,
|
|
followed by the newline.
|
|
.It Fl M
|
|
Encode all shell meta characters (implies
|
|
.Fl S ,
|
|
.Fl w ,
|
|
.Fl g )
|
|
.Pq Dv VIS_META
|
|
.It Fl m
|
|
Encode using the MIME Quoted-Printable encoding from RFC 2045.
|
|
.Pq Dv VIS_MIMESTYLE
|
|
.It Fl N
|
|
Turn on the
|
|
.Dv VIS_NOLOCALE
|
|
flag which encodes using the
|
|
.Dq C
|
|
locale, removing any encoding dependencies caused by the current
|
|
locale settings specified in the environment.
|
|
.It Fl n
|
|
Turns off any encoding, except for the fact that backslashes are
|
|
still doubled and hidden newline sequences inserted if
|
|
.Fl f
|
|
or
|
|
.Fl F
|
|
is selected.
|
|
When combined with the
|
|
.Fl f
|
|
flag,
|
|
.Nm
|
|
becomes like
|
|
an invertible version of the
|
|
.Xr fold 1
|
|
utility.
|
|
That is, the output can be unfolded by running the output through
|
|
.Xr unvis 1 .
|
|
.It Fl o
|
|
Request a format which displays non-printable characters as
|
|
an octal number, \eddd.
|
|
.Pq Dv VIS_OCTAL
|
|
.It Fl S
|
|
Encode shell meta-characters that are non-white space or glob.
|
|
.Pq Dv VIS_SHELL
|
|
.It Fl s
|
|
Only characters considered unsafe to send to a terminal are encoded.
|
|
This flag allows backspace, bell, and carriage return in addition
|
|
to the default space, tab and newline.
|
|
.Pq Dv VIS_SAFE
|
|
.It Fl t
|
|
Tabs are also encoded.
|
|
.Pq Dv VIS_TAB
|
|
.It Fl w
|
|
White space (space-tab-newline) is also encoded.
|
|
.Pq Dv VIS_WHITE
|
|
.El
|
|
.Sh MULTIBYTE CHARACTER SUPPORT
|
|
.Nm
|
|
supports multibyte character input.
|
|
The encoding conversion is influenced by the setting of the
|
|
.Ev LC_CTYPE
|
|
environment variable which defines the set of characters that can be
|
|
copied without encoding.
|
|
.Pp
|
|
When 8-bit data is present in the input,
|
|
.Ev LC_CTYPE
|
|
must be set to the correct locale or to the C locale.
|
|
If the locales of the data and the conversion are mismatched, multibyte
|
|
character recognition may fail and encoding will be performed byte-by-byte
|
|
instead.
|
|
.Sh ENVIRONMENT
|
|
.Bl -tag -width ".Ev LC_CTYPE"
|
|
.It Ev LC_CTYPE
|
|
Specify the locale of the input data.
|
|
Set to C if the input data locale is unknown.
|
|
.El
|
|
.Sh EXAMPLES
|
|
Visualize characters encoding white spaces and tabs:
|
|
.Bd -literal -offset indent
|
|
$ echo -e "\\x10\\n\\t" | vis -w -t
|
|
\\^P\\012\\011\\012
|
|
.Ed
|
|
.Pp
|
|
Same as above but using `\\$' for newline followed by an actual newline:
|
|
.Bd -literal -offset indent
|
|
$ echo -e "\\x10\\n\\t" | vis -w -t -l
|
|
\\^P\\$
|
|
\\011\\$
|
|
.Ed
|
|
.Pp
|
|
Visualize string using URI encoding:
|
|
.Bd -literal -offset indent
|
|
$ echo http://www.freebsd.org | vis -h
|
|
http%3a%2f%2fwww.freebsd.org%0a
|
|
.Ed
|
|
.Sh SEE ALSO
|
|
.Xr unvis 1 ,
|
|
.Xr svis 3 ,
|
|
.Xr vis 3
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
command appears in
|
|
.Bx 4.4 .
|
|
Multibyte character support was added in
|
|
.Nx 7.0
|
|
and
|
|
.Fx 9.2 .
|