File: mkc_vis.h

package info (click to toggle)
mk-configure 0.37.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 4,112 kB
  • sloc: ansic: 5,441; makefile: 1,412; sh: 1,086; cpp: 200; perl: 101; yacc: 85; lex: 21
file content (173 lines) | stat: -rw-r--r-- 5,510 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/*	$NetBSD: vis.h,v 1.21 2013/02/20 17:01:15 christos Exp $	*/

/*-
 * Copyright (c) 1990, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * 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. 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.
 *
 * 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.
 *
 *	@(#)vis.h	8.1 (Berkeley) 6/2/93
 */

#ifndef _MKC_VIS_H_
#define _MKC_VIS_H_

#ifndef _MKC_CHECK_VIS
# error "Missing MKC_FEATURES += vis"
#endif

#if HAVE_HEADER_FILE_VIS_H && HAVE_VIS
# include <stdlib.h> /* for OpenBSD-5.3 */
# include <vis.h>
#else

#include <sys/types.h>

/*
 * to select alternate encoding format
 */
#define	VIS_OCTAL	0x0001	/* use octal \ddd format */
#define	VIS_CSTYLE	0x0002	/* use \[nrft0..] where appropiate */

/*
 * to alter set of characters encoded (default is to encode all
 * non-graphic except space, tab, and newline).
 */
#define	VIS_SP		0x0004	/* also encode space */
#define	VIS_TAB		0x0008	/* also encode tab */
#define	VIS_NL		0x0010	/* also encode newline */
#define	VIS_WHITE	(VIS_SP | VIS_TAB | VIS_NL)
#define	VIS_SAFE	0x0020	/* only encode "unsafe" characters */

/*
 * other
 */
#define	VIS_NOSLASH	0x0040	/* inhibit printing '\' */
#define	VIS_HTTP1808	0x0080	/* http-style escape % hex hex */
#define	VIS_HTTPSTYLE	0x0080	/* http-style escape % hex hex */
#define	VIS_MIMESTYLE	0x0100	/* mime-style escape = HEX HEX */
#define	VIS_HTTP1866	0x0200	/* http-style &#num; or &string; */
#define	VIS_NOESCAPE	0x0400	/* don't decode `\' */
#define	_VIS_END	0x0800	/* for unvis */
#define	VIS_GLOB	0x1000	/* encode glob(3) magic characters */

/*
 * unvis return codes
 */
#define	UNVIS_VALID	 1	/* character valid */
#define	UNVIS_VALIDPUSH	 2	/* character valid, push back passed char */
#define	UNVIS_NOCHAR	 3	/* valid sequence, no character produced */
#define	UNVIS_SYNBAD	-1	/* unrecognized escape sequence */
#define	UNVIS_ERROR	-2	/* decoder in unknown state (unrecoverable) */

/*
 * unvis flags
 */
#define	UNVIS_END	_VIS_END	/* no more characters */

#endif /* HAVE_HEADER_FILE_VIS_H */

#include "mkc_externc.h"

__MKC_BEGIN_DECLS

#if !HAVE_FUNC4_VIS_VIS_H
char	*vis(char *, int, int, int);
#endif
#if !HAVE_FUNC5_NVIS_VIS_H
char	*nvis(char *, size_t, int, int, int);
#endif

#if !HAVE_FUNC5_SVIS_VIS_H
char	*svis(char *, int, int, int, const char *);
#endif
#if !HAVE_FUNC6_SNVIS_VIS_H
char	*snvis(char *, size_t, int, int, int, const char *);
#endif

#if !HAVE_FUNC3_STRVIS_VIS_H
int	strvis(char *, const char *, int);
#endif
#ifdef __OpenBSD__
int	_strnvis(char *, size_t, const char *, int);
#define strnvis(a,b,c,d) _strnvis(a,b,c,d)
#elif !HAVE_FUNC4_STRNVIS_VIS_H
int	strnvis(char *, size_t, const char *, int);
#endif

#if !HAVE_FUNC4_STRSVIS_VIS_H
int	strsvis(char *, const char *, int, const char *);
#endif
#if !HAVE_FUNC5_STRSNVIS_VIS_H
int	strsnvis(char *, size_t, const char *, int, const char *);
#endif

#if !HAVE_FUNC4_STRVISX_VIS_H
int	strvisx(char *, const char *, size_t, int);
#endif
#if !HAVE_FUNC5_STRNVISX_VIS_H
int	strnvisx(char *, size_t, const char *, size_t, int);
#endif
#if !HAVE_FUNC6_STRENVISX_VIS_H
int strenvisx(char *, size_t, const char *, size_t, int, int *);
#endif

#if !HAVE_FUNC5_STRSVISX_VIS_H
int	strsvisx(char *, const char *, size_t, int, const char *);
#endif
#if !HAVE_FUNC6_STRSNVISX_VIS_H
int	strsnvisx(char *, size_t, const char *, size_t, int, const char *);
#endif
#if !HAVE_FUNC7_STRSENVISX_VIS_H
int	strsenvisx(char *, size_t, const char *, size_t, int, const char *, int *);
#endif

#if !HAVE_FUNC2_STRUNVIS_VIS_H
int	strunvis(char *, const char *);
#endif
#ifdef __OpenBSD__
int	_strnunvis(char *, size_t, const char *);
#define strnunvis(a,b,c) _strnunvis(a,b,c)
#elif !HAVE_FUNC3_STRNUNVIS_VIS_H
int	strnunvis(char *, size_t, const char *);
#endif

#if !HAVE_FUNC3_STRUNVISX_VIS_H
int	strunvisx(char *, const char *, int);
#endif
#if !HAVE_FUNC4_STRNUNVISX_VIS_H
int	strnunvisx(char *, size_t, const char *, int);
#endif

#ifdef __OpenBSD__
int	_unvis(char *, int, int *, int);
#define unvis(a,b,c,d) _unvis(a,b,c,d)
#elif !HAVE_FUNC4_UNVIS_VIS_H
int	unvis(char *, int, int *, int);
#endif

__MKC_END_DECLS

#endif /* _MKC_VIS_H_ */