vis.h revision 248302
1217309Snwhitehorn/* $NetBSD: vis.h,v 1.21 2013/02/20 17:01:15 christos Exp $ */ 2224014Snwhitehorn/* $FreeBSD: head/contrib/libc-vis/vis.h 248302 2013-03-14 23:51:47Z brooks $ */ 3217309Snwhitehorn 4217309Snwhitehorn/*- 5217309Snwhitehorn * Copyright (c) 1990, 1993 6220749Snwhitehorn * The Regents of the University of California. All rights reserved. 7217309Snwhitehorn * 8217309Snwhitehorn * Redistribution and use in source and binary forms, with or without 9217309Snwhitehorn * modification, are permitted provided that the following conditions 10217309Snwhitehorn * are met: 11217309Snwhitehorn * 1. Redistributions of source code must retain the above copyright 12217309Snwhitehorn * notice, this list of conditions and the following disclaimer. 13217309Snwhitehorn * 2. Redistributions in binary form must reproduce the above copyright 14217309Snwhitehorn * notice, this list of conditions and the following disclaimer in the 15217309Snwhitehorn * documentation and/or other materials provided with the distribution. 16217309Snwhitehorn * 3. Neither the name of the University nor the names of its contributors 17217309Snwhitehorn * may be used to endorse or promote products derived from this software 18217309Snwhitehorn * without specific prior written permission. 19217309Snwhitehorn * 20217309Snwhitehorn * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21217309Snwhitehorn * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22217309Snwhitehorn * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23217309Snwhitehorn * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24217309Snwhitehorn * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25217309Snwhitehorn * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26217309Snwhitehorn * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27217309Snwhitehorn * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28217309Snwhitehorn * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29217309Snwhitehorn * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30217309Snwhitehorn * SUCH DAMAGE. 31217309Snwhitehorn * 32217309Snwhitehorn * @(#)vis.h 8.1 (Berkeley) 6/2/93 33217309Snwhitehorn */ 34217309Snwhitehorn 35217309Snwhitehorn#ifndef _VIS_H_ 36217309Snwhitehorn#define _VIS_H_ 37217309Snwhitehorn 38217309Snwhitehorn#include <sys/types.h> 39217309Snwhitehorn 40217309Snwhitehorn/* 41217309Snwhitehorn * to select alternate encoding format 42217309Snwhitehorn */ 43217309Snwhitehorn#define VIS_OCTAL 0x0001 /* use octal \ddd format */ 44217309Snwhitehorn#define VIS_CSTYLE 0x0002 /* use \[nrft0..] where appropiate */ 45217309Snwhitehorn 46217309Snwhitehorn/* 47217309Snwhitehorn * to alter set of characters encoded (default is to encode all 48217309Snwhitehorn * non-graphic except space, tab, and newline). 49217309Snwhitehorn */ 50217309Snwhitehorn#define VIS_SP 0x0004 /* also encode space */ 51217309Snwhitehorn#define VIS_TAB 0x0008 /* also encode tab */ 52217309Snwhitehorn#define VIS_NL 0x0010 /* also encode newline */ 53217309Snwhitehorn#define VIS_WHITE (VIS_SP | VIS_TAB | VIS_NL) 54217309Snwhitehorn#define VIS_SAFE 0x0020 /* only encode "unsafe" characters */ 55217309Snwhitehorn 56217309Snwhitehorn/* 57217309Snwhitehorn * other 58217309Snwhitehorn */ 59217309Snwhitehorn#define VIS_NOSLASH 0x0040 /* inhibit printing '\' */ 60217309Snwhitehorn#define VIS_HTTP1808 0x0080 /* http-style escape % hex hex */ 61217309Snwhitehorn#define VIS_HTTPSTYLE 0x0080 /* http-style escape % hex hex */ 62217309Snwhitehorn#define VIS_GLOB 0x0100 /* encode glob(3) magic characters */ 63217309Snwhitehorn#define VIS_MIMESTYLE 0x0200 /* mime-style escape = HEX HEX */ 64217309Snwhitehorn#define VIS_HTTP1866 0x0400 /* http-style &#num; or &string; */ 65217309Snwhitehorn#define VIS_NOESCAPE 0x0800 /* don't decode `\' */ 66217309Snwhitehorn#define _VIS_END 0x1000 /* for unvis */ 67217309Snwhitehorn 68217309Snwhitehorn/* 69217309Snwhitehorn * unvis return codes 70217309Snwhitehorn */ 71217309Snwhitehorn#define UNVIS_VALID 1 /* character valid */ 72217309Snwhitehorn#define UNVIS_VALIDPUSH 2 /* character valid, push back passed char */ 73217309Snwhitehorn#define UNVIS_NOCHAR 3 /* valid sequence, no character produced */ 74217309Snwhitehorn#define UNVIS_SYNBAD -1 /* unrecognized escape sequence */ 75217309Snwhitehorn#define UNVIS_ERROR -2 /* decoder in unknown state (unrecoverable) */ 76217309Snwhitehorn 77217309Snwhitehorn/* 78217309Snwhitehorn * unvis flags 79217309Snwhitehorn */ 80217309Snwhitehorn#define UNVIS_END _VIS_END /* no more characters */ 81217309Snwhitehorn 82217309Snwhitehorn#include <sys/cdefs.h> 83217309Snwhitehorn 84217309Snwhitehorn__BEGIN_DECLS 85217309Snwhitehornchar *vis(char *, int, int, int); 86217309Snwhitehornchar *nvis(char *, size_t, int, int, int); 87217309Snwhitehorn 88217309Snwhitehornchar *svis(char *, int, int, int, const char *); 89217309Snwhitehornchar *snvis(char *, size_t, int, int, int, const char *); 90217309Snwhitehorn 91217309Snwhitehornint strvis(char *, const char *, int); 92217309Snwhitehornint strnvis(char *, size_t, const char *, int); 93217309Snwhitehorn 94217309Snwhitehornint strsvis(char *, const char *, int, const char *); 95217309Snwhitehornint strsnvis(char *, size_t, const char *, int, const char *); 96217309Snwhitehorn 97217309Snwhitehornint strvisx(char *, const char *, size_t, int); 98217309Snwhitehornint strnvisx(char *, size_t, const char *, size_t, int); 99217309Snwhitehornint strenvisx(char *, size_t, const char *, size_t, int, int *); 100217309Snwhitehorn 101217309Snwhitehornint strsvisx(char *, const char *, size_t, int, const char *); 102217309Snwhitehornint strsnvisx(char *, size_t, const char *, size_t, int, const char *); 103217309Snwhitehornint strsenvisx(char *, size_t, const char *, size_t , int, const char *, 104217309Snwhitehorn int *); 105217309Snwhitehorn 106217309Snwhitehornint strunvis(char *, const char *); 107217309Snwhitehornint strnunvis(char *, size_t, const char *); 108217309Snwhitehorn 109217309Snwhitehornint strunvisx(char *, const char *, int); 110217309Snwhitehornint strnunvisx(char *, size_t, const char *, int); 111217309Snwhitehorn 112217309Snwhitehorn#ifndef __LIBC12_SOURCE__ 113217309Snwhitehornint unvis(char *, int, int *, int); 114217309Snwhitehorn#endif 115217309Snwhitehorn__END_DECLS 116217309Snwhitehorn 117217309Snwhitehorn#endif /* !_VIS_H_ */ 118217309Snwhitehorn