aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2021-06-21 23:51:00 +0000
committerWarner Losh <imp@FreeBSD.org>2021-06-21 23:51:00 +0000
commit04751ecc44910c06dbd18133cf1d66b42c5ab938 (patch)
treeda0ed8fbb236b9d01a2dd401173f51e4125bcc72
parent584d8a41f5ad667e789703a32c1410247d601faf (diff)
downloadsrc-04751ecc44910c06dbd18133cf1d66b42c5ab938.tar.gz
src-04751ecc44910c06dbd18133cf1d66b42c5ab938.zip
Import vis(1) from NetBSD as of 20210621vendor/NetBSD/vis/20210621vendor/NetBSD/vis
-rw-r--r--vis.143
-rw-r--r--vis.c17
2 files changed, 52 insertions, 8 deletions
diff --git a/vis.1 b/vis.1
index 6f7c82ff7ab5..e39d20d4246e 100644
--- a/vis.1
+++ b/vis.1
@@ -1,4 +1,4 @@
-.\" $NetBSD: vis.1,v 1.19 2013/03/14 19:17:23 njoly Exp $
+.\" $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.
@@ -29,7 +29,7 @@
.\"
.\" @(#)vis.1 8.4 (Berkeley) 4/19/94
.\"
-.Dd February 19, 2013
+.Dd February 18, 2021
.Dt VIS 1
.Os
.Sh NAME
@@ -37,7 +37,7 @@
.Nd display non-printable characters in a visual format
.Sh SYNOPSIS
.Nm
-.Op Fl bcfhlmnostw
+.Op Fl bcfhlMmNnoSstw
.Op Fl e Ar extra
.Op Fl F Ar foldwidth
.Op Ar file ...
@@ -99,9 +99,22 @@ Encode using the URI encoding from RFC 1808.
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
@@ -123,6 +136,9 @@ That is, the output can be unfolded by running the output through
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
@@ -155,6 +171,25 @@ instead.
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
+$ printf "\\x10\\n\\t\\n" | 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
+$ printf "\\x10\\n\\t\\n" | vis -w -t -l
+\\^P\\$
+\\011\\$
+.Ed
+.Pp
+Visualize string using URI encoding:
+.Bd -literal -offset indent
+$ printf https://www.NetBSD.org | vis -h
+https%3a%2f%2fwww.NetBSD.org
+.Ed
.Sh SEE ALSO
.Xr unvis 1 ,
.Xr svis 3 ,
@@ -164,7 +199,7 @@ The
.Nm
command appears in
.Bx 4.4 .
-Myltibyte character support was added in
+Multibyte character support was added in
.Nx 7.0
and
.Fx 9.2 .
diff --git a/vis.c b/vis.c
index 1509c81c4123..6e3ea11a2782 100644
--- a/vis.c
+++ b/vis.c
@@ -1,4 +1,4 @@
-/* $NetBSD: vis.c,v 1.22 2013/02/20 17:04:45 christos Exp $ */
+/* $NetBSD: vis.c,v 1.25 2015/05/24 19:42:39 christos Exp $ */
/*-
* Copyright (c) 1989, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 1993\
#if 0
static char sccsid[] = "@(#)vis.c 8.1 (Berkeley) 6/6/93";
#endif
-__RCSID("$NetBSD: vis.c,v 1.22 2013/02/20 17:04:45 christos Exp $");
+__RCSID("$NetBSD: vis.c,v 1.25 2015/05/24 19:42:39 christos Exp $");
#endif /* not lint */
#include <stdio.h>
@@ -70,7 +70,7 @@ main(int argc, char *argv[])
int ch;
int rval;
- while ((ch = getopt(argc, argv, "bcde:F:fhlmnostw")) != -1)
+ while ((ch = getopt(argc, argv, "bcde:F:fhlMmNnoSstw")) != -1)
switch((char)ch) {
case 'b':
eflags |= VIS_NOSLASH;
@@ -102,17 +102,26 @@ main(int argc, char *argv[])
case 'l':
markeol++; /* mark end of line with \$ */
break;
+ case 'M':
+ eflags |= VIS_META;
+ break;
case 'm':
eflags |= VIS_MIMESTYLE;
if (foldwidth == 80)
foldwidth = 76;
break;
+ case 'N':
+ eflags |= VIS_NOLOCALE;
+ break;
case 'n':
none++;
break;
case 'o':
eflags |= VIS_OCTAL;
break;
+ case 'S':
+ eflags |= VIS_SHELL;
+ break;
case 's':
eflags |= VIS_SAFE;
break;
@@ -125,7 +134,7 @@ main(int argc, char *argv[])
case '?':
default:
(void)fprintf(stderr,
- "Usage: %s [-bcfhlmnostw] [-e extra]"
+ "Usage: %s [-bcfhlMmNnoSstw] [-e extra]"
" [-F foldwidth] [file ...]\n", getprogname());
return 1;
}