BSD 4_3_Net_2 release
[unix-history] / usr / src / lib / libc / gen / vis.3
index 3d22680..766cabd 100644 (file)
-.\" Copyright (c) 1989 The Regents of the University of California.
+.\" Copyright (c) 1989, 1991 The Regents of the University of California.
 .\" All rights reserved.
 .\"
 .\" All rights reserved.
 .\"
-.\" %sccs.include.redist.man%
+.\" 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. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. 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.
 .\"
 .\"
-.\"    @(#)vis.3       5.6 (Berkeley) %G%
+.\" 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.
 .\"
 .\"
-.TH VIS 3 ""
-.UC 7
-.SH NAME
-vis \- visually encode characters
-.SH SYNOPSIS
-.nf
-.ft B
-#include <vis.h>
-
-char *vis(dst, c, flag, nextc)
-char *dst, c, nextc;
-int flag;
-
-int strvis(dst, src, flag)
-char *dst, *src;
-int flag;
-
-int strvisx(dst, src, len, flag)
-char *dst, *src;
-int len, flag;
-
-.ft R
-.fi
-.SH DESCRIPTION
-.I Vis
-copies into dst a string which represents the character c.  If
-needs no encoding, it is copied in unaltered.  The string is
+.\"     @(#)vis.3      5.7 (Berkeley) 4/19/91
+.\"
+.Dd April 19, 1991
+.Dt VIS 3
+.Os
+.Sh NAME
+.Nm vis
+.Nd visually encode characters
+.Sh SYNOPSIS
+.Fd #include <vis.h>
+.Ft char *
+.Fn vis "char *dst" "char c" "int flag" "char nextc"
+.Ft int 
+.Fn strvis "char *dst" "char *src" "int flag"
+.Ft int 
+.Fn strvisx "char *dst" "char *src" "int len" "int flag"
+.Sh DESCRIPTION
+The
+.Fn vis
+function
+copies into
+.Fa dst
+a string which represents the character
+.Fa c .
+If
+.Fa c
+needs no encoding, it is copied in unaltered.  The string is
 null terminated, and a pointer to the end of the string is
 returned.  The maximum length of any encoding is four
 null terminated, and a pointer to the end of the string is
 returned.  The maximum length of any encoding is four
-characters (not including the trailing NULL); thus, when
+characters (not including the trailing
+.Dv NULL ) ; 
+thus, when
 encoding a set of characters into a buffer, the size of the buffer should
 encoding a set of characters into a buffer, the size of the buffer should
-be four times the number of characters encoded, plus one for the trailing NULL.
+be four times the number of characters encoded, plus one for the trailing
+.Dv NULL . 
 The flag parameter is used for altering the default range of
 characters considered for encoding and for altering the visual
 representation.
 The flag parameter is used for altering the default range of
 characters considered for encoding and for altering the visual
 representation.
-The additional character, nextc, is only used when selecting the
-VIS_CSTYLE encoding format (explained below).
-.PP
-Strvis and strvisx copy into dst a visual representation of
-the string src.  Strvis encodes characters from src up to the
-first NULL.  Strvisx encodes exactly len characters from src (this
-is useful for encoding a block of data that may contain NULL's).
-Both forms NULL terminate dst.  Dst must be four times the number
-of characters encoded from src (plus one for the NULL).  Both
+The additional character,
+.Fa nextc ,
+is only used when selecting the
+.Dv VIS_CSTYLE
+encoding format (explained below).
+.Pp
+The
+.Fn strvis
+and
+.Fn strvisx
+functions copy into
+.Fa dst
+a visual representation of
+the string
+.Fa src .
+The
+.Fn strvis
+function encodes characters from
+.Fa src
+up to the
+first
+.Dv NULL . 
+The
+.Fn strvisx
+function encodes exactly
+.Fa len
+characters from
+.Fa src
+(this
+is useful for encoding a block of data that may contain
+.Dv NULL Ns 's).
+Both forms
+.Dv NULL
+terminate
+.Fa dst .
+The size of
+.Fa dst
+must be four times the number
+of characters encoded from
+.Fa src
+(plus one for the
+.Dv NULL ) . 
+Both
 forms return the number of characters in dst (not including
 forms return the number of characters in dst (not including
-the trailing NULL).
-.PP
+the trailing
+.Dv NULL ) . 
+.Pp
 The encoding is a unique, invertible representation comprised entirely of
 graphic characters; it can be decoded back into the original form using 
 The encoding is a unique, invertible representation comprised entirely of
 graphic characters; it can be decoded back into the original form using 
-the unvis(3) or strunvis(3) functions.
-.PP
+the
+.Xr unvis 3
+or
+.Xr strunvis 3
+functions.
+.Pp
 There are two parameters that can be controlled: the range of
 characters that are encoded, and the type
 of representation used.  
 There are two parameters that can be controlled: the range of
 characters that are encoded, and the type
 of representation used.  
-By default, all non-graphic characters (see isgraph(3))
-except space, tab, and newline are encoded.  The following flags
+By default, all non-graphic characters.
+except space, tab, and newline are encoded.
+(See
+.Xr isgraph 3 . )
+The following flags
 alter this:
 alter this:
-.TP
-VIS_SP
+.Bl -tag -width VIS_WHITEX
+.It Dv VIS_SP
 Also encode space.
 Also encode space.
-.TP
-VIS_TAB                
+.It Dv VIS_TAB         
 Also encode tab.
 Also encode tab.
-.TP
-VIS_NL
+.It Dv VIS_NL
 Also encode newline.
 Also encode newline.
-.TP
-VIS_WHITE      
-Synonym for VIS_SP | VIS_TAB | VIS_NL.
-.TP
-VIS_SAFE       
+.It Dv VIS_WHITE       
+Synonym for
+.Dv VIS_SP
+\&|
+.Dv VIS_TAB
+\&|
+.Dv VIS_NL .
+.It Dv VIS_SAFE        
 Only encode "unsafe" characters.  Unsafe means control
 characters which may cause common terminals to perform
 unexpected functions.  Currently this form allows space,
 tab, newline, backspace, bell, and return - in addition
 to all graphic characters - unencoded. 
 Only encode "unsafe" characters.  Unsafe means control
 characters which may cause common terminals to perform
 unexpected functions.  Currently this form allows space,
 tab, newline, backspace, bell, and return - in addition
 to all graphic characters - unencoded. 
-.PP
+.El
+.Pp
 There are three forms of encoding.
 There are three forms of encoding.
-All forms use the backslash character (``\e'') to introduce a special
+All forms use the backslash character
+.Ql \e
+to introduce a special
 sequence; two backslashes are used to represent a real backslash.
 These are the visual formats:
 sequence; two backslashes are used to represent a real backslash.
 These are the visual formats:
-.TP
-(default)
-Use an ``M'' to represent meta characters (characters with the 8th
-bit set), and use carat (``^'') to represent control characters see
-(\fIiscntrl\fP(3)).
+.Bl -tag -width VIS_CSTYLE
+.It (default)
+Use an
+.Ql M
+to represent meta characters (characters with the 8th
+bit set), and use carat
+.Ql ^
+to represent control characters see
+.Pf ( Xr iscntrl 3 ) .
 The following formats are used:
 The following formats are used:
-.RS
-.TP
-\e^C
-Represents the control character ``C''.
-Spans characters \e000 through \e037, and \e177 (as \e^?).
-.TP
-\eM-C
-Represents character ``C'' with the 8th bit set.
-Spans characters \e241 through \e376.
-.TP
-\eM^C
-Represents control character ``C'' with the 8th bit set.
-Spans characters \e200 through \e237, and \e377 (as \eM^?).
-.TP
-\e040
-Represents ACSII space.
-.TP
-\e240
+.Bl -tag -width xxxxx
+.It Dv \e^C
+Represents the control character
+.Ql C .
+Spans characters
+.Ql \e000
+through
+.Ql \e037 ,
+and
+.Ql \e177
+(as
+.Ql \e^? ) .
+.It Dv \eM-C
+Represents character
+.Ql C
+with the 8th bit set.
+Spans characters
+.Ql \e241
+through
+.Ql \e376 .
+.It Dv \eM^C
+Represents control character
+.Ql C
+with the 8th bit set.
+Spans characters
+.Ql \e200
+through
+.Ql \e237 ,
+and
+.Ql \e377
+(as
+.Ql \eM^? ) .
+.It Dv \e040
+Represents
+.Tn ASCII
+space.
+.It Dv \e240
 Represents Meta-space.
 Represents Meta-space.
-.sp
-.RE
-.TP
-VIS_CSTYLE
+.El
+.Pp
+.It Dv VIS_CSTYLE
 Use C-style backslash sequences to represent standard non-printable
 characters.
 The following sequences are used to represent the indicated characters:
 Use C-style backslash sequences to represent standard non-printable
 characters.
 The following sequences are used to represent the indicated characters:
-.sp
-.nf
-\ea   - BEL (007)
-\eb   - BS  (010)
-\ef   - NP  (014)
-\en   - NL  (012)
-\er   - CR  (015)
-\et   - HT  (011)
-\ev   - VT  (013)
-\e0   - NUL (000)
-.fi
-.sp
+.Bd -unfilled -offset indent
+.Li \ea Tn  - BEL No (007)
+.Li \eb Tn  - BS No (010)
+.Li \ef Tn  - NP No (014)
+.Li \en Tn  - NL No (012)
+.Li \er Tn  - CR No (015)
+.Li \et Tn  - HT No (011)
+.Li \ev Tn  - VT No (013)
+.Li \e0 Tn  - NUL No (000)
+.Ed
+.Pp
 When using this format, the nextc parameter is looked at to determine
 When using this format, the nextc parameter is looked at to determine
-if a NULL character can be encoded as ``\e0'' instead of ``\e000''.
-If nextc is an octal digit, the latter representation is used to
+if a
+.Dv NULL
+character can be encoded as
+.Ql \e0
+instead of
+.Ql \e000 .
+If
+.Fa nextc
+is an octal digit, the latter representation is used to
 avoid ambiguity.
 avoid ambiguity.
-.TP
-VIS_OCTAL
-Use a three digit octal sequence.  The form is ``\eddd'' where
-d represents an octal digit.
-.PP
-There is one additional flag, VIS_NOSLASH, which inhibits the
+.It Dv VIS_OCTAL
+Use a three digit octal sequence.  The form is
+.Ql \eddd
+where
+.Em d
+represents an octal digit.
+.El
+.Pp
+There is one additional flag,
+.Dv VIS_NOSLASH ,
+which inhibits the
 doubling of backslashes and the backslash before the default
 doubling of backslashes and the backslash before the default
-format (that is, control characters are represented by ^C and
-meta characters as M-C).  With this flag set, the encoding is
+format (that is, control characters are represented by
+.Ql ^C
+and
+meta characters as
+.Ql M-C ) .
+With this flag set, the encoding is
 ambiguous and non-invertible.
 ambiguous and non-invertible.
-.SH "SEE ALSO"
-vis(1), unvis(1), unvis(3)
+.Sh SEE ALSO
+.Xr unvis 1 ,
+.Xr unvis 3
+.Xr strunvis 3
+.Sh HISTORY
+These
+functions are
+.Ud .