Annotation of 43BSDReno/lib/libc/gen/vis.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1989 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)vis.3       5.6 (Berkeley) 6/23/90
                     19: .\"
                     20: .TH VIS 3 "June 23, 1990"
                     21: .UC 7
                     22: .SH NAME
                     23: vis \- visually encode characters
                     24: .SH SYNOPSIS
                     25: .nf
                     26: .ft B
                     27: #include <vis.h>
                     28: 
                     29: char *vis(dst, c, flag, nextc)
                     30: char *dst, c, nextc;
                     31: int flag;
                     32: 
                     33: int strvis(dst, src, flag)
                     34: char *dst, *src;
                     35: int flag;
                     36: 
                     37: int strvisx(dst, src, len, flag)
                     38: char *dst, *src;
                     39: int len, flag;
                     40: 
                     41: .ft R
                     42: .fi
                     43: .SH DESCRIPTION
                     44: .I Vis
                     45: copies into dst a string which represents the character c.  If
                     46: c needs no encoding, it is copied in unaltered.  The string is
                     47: null terminated, and a pointer to the end of the string is
                     48: returned.  The maximum length of any encoding is four
                     49: characters (not including the trailing NULL); thus, when
                     50: encoding a set of characters into a buffer, the size of the buffer should
                     51: be four times the number of characters encoded, plus one for the trailing NULL.
                     52: The flag parameter is used for altering the default range of
                     53: characters considered for encoding and for altering the visual
                     54: representation.
                     55: The additional character, nextc, is only used when selecting the
                     56: VIS_CSTYLE encoding format (explained below).
                     57: .PP
                     58: Strvis and strvisx copy into dst a visual representation of
                     59: the string src.  Strvis encodes characters from src up to the
                     60: first NULL.  Strvisx encodes exactly len characters from src (this
                     61: is useful for encoding a block of data that may contain NULL's).
                     62: Both forms NULL terminate dst.  Dst must be four times the number
                     63: of characters encoded from src (plus one for the NULL).  Both
                     64: forms return the number of characters in dst (not including
                     65: the trailing NULL).
                     66: .PP
                     67: The encoding is a unique, invertible representation comprised entirely of
                     68: graphic characters; it can be decoded back into the original form using 
                     69: the unvis(3) or strunvis(3) functions.
                     70: .PP
                     71: There are two parameters that can be controlled: the range of
                     72: characters that are encoded, and the type
                     73: of representation used.  
                     74: By default, all non-graphic characters (see isgraph(3))
                     75: except space, tab, and newline are encoded.  The following flags
                     76: alter this:
                     77: .TP
                     78: VIS_SP
                     79: Also encode space.
                     80: .TP
                     81: VIS_TAB                
                     82: Also encode tab.
                     83: .TP
                     84: VIS_NL
                     85: Also encode newline.
                     86: .TP
                     87: VIS_WHITE      
                     88: Synonym for VIS_SP | VIS_TAB | VIS_NL.
                     89: .TP
                     90: VIS_SAFE       
                     91: Only encode "unsafe" characters.  Unsafe means control
                     92: characters which may cause common terminals to perform
                     93: unexpected functions.  Currently this form allows space,
                     94: tab, newline, backspace, bell, and return - in addition
                     95: to all graphic characters - unencoded. 
                     96: .PP
                     97: There are three forms of encoding.
                     98: All forms use the backslash character (``\e'') to introduce a special
                     99: sequence; two backslashes are used to represent a real backslash.
                    100: These are the visual formats:
                    101: .TP
                    102: (default)
                    103: Use an ``M'' to represent meta characters (characters with the 8th
                    104: bit set), and use carat (``^'') to represent control characters see
                    105: (\fIiscntrl\fP(3)).
                    106: The following formats are used:
                    107: .RS
                    108: .TP
                    109: \e^C
                    110: Represents the control character ``C''.
                    111: Spans characters \e000 through \e037, and \e177 (as \e^?).
                    112: .TP
                    113: \eM-C
                    114: Represents character ``C'' with the 8th bit set.
                    115: Spans characters \e241 through \e376.
                    116: .TP
                    117: \eM^C
                    118: Represents control character ``C'' with the 8th bit set.
                    119: Spans characters \e200 through \e237, and \e377 (as \eM^?).
                    120: .TP
                    121: \e040
                    122: Represents ACSII space.
                    123: .TP
                    124: \e240
                    125: Represents Meta-space.
                    126: .sp
                    127: .RE
                    128: .TP
                    129: VIS_CSTYLE
                    130: Use C-style backslash sequences to represent standard non-printable
                    131: characters.
                    132: The following sequences are used to represent the indicated characters:
                    133: .sp
                    134: .nf
                    135: \ea   - BEL (007)
                    136: \eb   - BS  (010)
                    137: \ef   - NP  (014)
                    138: \en   - NL  (012)
                    139: \er   - CR  (015)
                    140: \et   - HT  (011)
                    141: \ev   - VT  (013)
                    142: \e0   - NUL (000)
                    143: .fi
                    144: .sp
                    145: When using this format, the nextc parameter is looked at to determine
                    146: if a NULL character can be encoded as ``\e0'' instead of ``\e000''.
                    147: If nextc is an octal digit, the latter representation is used to
                    148: avoid ambiguity.
                    149: .TP
                    150: VIS_OCTAL
                    151: Use a three digit octal sequence.  The form is ``\eddd'' where
                    152: d represents an octal digit.
                    153: .PP
                    154: There is one additional flag, VIS_NOSLASH, which inhibits the
                    155: doubling of backslashes and the backslash before the default
                    156: format (that is, control characters are represented by ^C and
                    157: meta characters as M-C).  With this flag set, the encoding is
                    158: ambiguous and non-invertible.
                    159: .SH "SEE ALSO"
                    160: vis(1), unvis(1), unvis(3)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.