vis.h revision 241236
1241236Sbrooks/* $NetBSD: vis.h,v 1.19 2011/03/12 19:52:45 christos Exp $ */ 2241236Sbrooks 3241236Sbrooks/*- 4241236Sbrooks * Copyright (c) 1990, 1993 5241236Sbrooks * The Regents of the University of California. All rights reserved. 6241236Sbrooks * 7241236Sbrooks * Redistribution and use in source and binary forms, with or without 8241236Sbrooks * modification, are permitted provided that the following conditions 9241236Sbrooks * are met: 10241236Sbrooks * 1. Redistributions of source code must retain the above copyright 11241236Sbrooks * notice, this list of conditions and the following disclaimer. 12241236Sbrooks * 2. Redistributions in binary form must reproduce the above copyright 13241236Sbrooks * notice, this list of conditions and the following disclaimer in the 14241236Sbrooks * documentation and/or other materials provided with the distribution. 15241236Sbrooks * 3. Neither the name of the University nor the names of its contributors 16241236Sbrooks * may be used to endorse or promote products derived from this software 17241236Sbrooks * without specific prior written permission. 18241236Sbrooks * 19241236Sbrooks * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 20241236Sbrooks * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21241236Sbrooks * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22241236Sbrooks * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 23241236Sbrooks * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24241236Sbrooks * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25241236Sbrooks * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26241236Sbrooks * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27241236Sbrooks * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28241236Sbrooks * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29241236Sbrooks * SUCH DAMAGE. 30241236Sbrooks * 31241236Sbrooks * @(#)vis.h 8.1 (Berkeley) 6/2/93 32241236Sbrooks */ 33241236Sbrooks 34241236Sbrooks#ifndef _VIS_H_ 35241236Sbrooks#define _VIS_H_ 36241236Sbrooks 37241236Sbrooks#include <sys/types.h> 38241236Sbrooks 39241236Sbrooks/* 40241236Sbrooks * to select alternate encoding format 41241236Sbrooks */ 42241236Sbrooks#define VIS_OCTAL 0x001 /* use octal \ddd format */ 43241236Sbrooks#define VIS_CSTYLE 0x002 /* use \[nrft0..] where appropiate */ 44241236Sbrooks 45241236Sbrooks/* 46241236Sbrooks * to alter set of characters encoded (default is to encode all 47241236Sbrooks * non-graphic except space, tab, and newline). 48241236Sbrooks */ 49241236Sbrooks#define VIS_SP 0x004 /* also encode space */ 50241236Sbrooks#define VIS_TAB 0x008 /* also encode tab */ 51241236Sbrooks#define VIS_NL 0x010 /* also encode newline */ 52241236Sbrooks#define VIS_WHITE (VIS_SP | VIS_TAB | VIS_NL) 53241236Sbrooks#define VIS_SAFE 0x020 /* only encode "unsafe" characters */ 54241236Sbrooks 55241236Sbrooks/* 56241236Sbrooks * other 57241236Sbrooks */ 58241236Sbrooks#define VIS_NOSLASH 0x040 /* inhibit printing '\' */ 59241236Sbrooks#define VIS_HTTP1808 0x080 /* http-style escape % hex hex */ 60241236Sbrooks#define VIS_HTTPSTYLE 0x080 /* http-style escape % hex hex */ 61241236Sbrooks#define VIS_MIMESTYLE 0x100 /* mime-style escape = HEX HEX */ 62241236Sbrooks#define VIS_HTTP1866 0x200 /* http-style &#num; or &string; */ 63241236Sbrooks#define VIS_NOESCAPE 0x400 /* don't decode `\' */ 64241236Sbrooks#define _VIS_END 0x800 /* for unvis */ 65241236Sbrooks 66241236Sbrooks/* 67241236Sbrooks * unvis return codes 68241236Sbrooks */ 69241236Sbrooks#define UNVIS_VALID 1 /* character valid */ 70241236Sbrooks#define UNVIS_VALIDPUSH 2 /* character valid, push back passed char */ 71241236Sbrooks#define UNVIS_NOCHAR 3 /* valid sequence, no character produced */ 72241236Sbrooks#define UNVIS_SYNBAD -1 /* unrecognized escape sequence */ 73241236Sbrooks#define UNVIS_ERROR -2 /* decoder in unknown state (unrecoverable) */ 74241236Sbrooks 75241236Sbrooks/* 76241236Sbrooks * unvis flags 77241236Sbrooks */ 78241236Sbrooks#define UNVIS_END _VIS_END /* no more characters */ 79241236Sbrooks 80241236Sbrooks#include <sys/cdefs.h> 81241236Sbrooks 82241236Sbrooks__BEGIN_DECLS 83241236Sbrookschar *vis(char *, int, int, int); 84241236Sbrookschar *nvis(char *, size_t, int, int, int); 85241236Sbrooks 86241236Sbrookschar *svis(char *, int, int, int, const char *); 87241236Sbrookschar *snvis(char *, size_t, int, int, int, const char *); 88241236Sbrooks 89241236Sbrooksint strvis(char *, const char *, int); 90241236Sbrooksint strnvis(char *, size_t, const char *, int); 91241236Sbrooks 92241236Sbrooksint strsvis(char *, const char *, int, const char *); 93241236Sbrooksint strsnvis(char *, size_t, const char *, int, const char *); 94241236Sbrooks 95241236Sbrooksint strvisx(char *, const char *, size_t, int); 96241236Sbrooksint strnvisx(char *, size_t, const char *, size_t, int); 97241236Sbrooks 98241236Sbrooksint strsvisx(char *, const char *, size_t, int, const char *); 99241236Sbrooksint strsnvisx(char *, size_t, const char *, size_t, int, const char *); 100241236Sbrooks 101241236Sbrooksint strunvis(char *, const char *); 102241236Sbrooksint strnunvis(char *, size_t, const char *); 103241236Sbrooks 104241236Sbrooksint strunvisx(char *, const char *, int); 105241236Sbrooksint strnunvisx(char *, size_t, const char *, int); 106241236Sbrooks 107241236Sbrooks#ifndef __LIBC12_SOURCE__ 108241236Sbrooksint unvis(char *, int, int *, int) __RENAME(__unvis50); 109241236Sbrooks#endif 110241236Sbrooks__END_DECLS 111241236Sbrooks 112241236Sbrooks#endif /* !_VIS_H_ */ 113