zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

vis.h (7690B) - Raw


      1 /*
      2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
      3  *
      4  * @APPLE_LICENSE_HEADER_START@
      5  * 
      6  * This file contains Original Code and/or Modifications of Original Code
      7  * as defined in and that are subject to the Apple Public Source License
      8  * Version 2.0 (the 'License'). You may not use this file except in
      9  * compliance with the License. Please obtain a copy of the License at
     10  * http://www.opensource.apple.com/apsl/ and read it before using this
     11  * file.
     12  * 
     13  * The Original Code and all software distributed under the License are
     14  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
     15  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
     16  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
     17  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
     18  * Please see the License for the specific language governing rights and
     19  * limitations under the License.
     20  * 
     21  * @APPLE_LICENSE_HEADER_END@
     22  */
     23 /*	$NetBSD: vis.h,v 1.25 2017/04/23 01:57:36 christos Exp $	*/
     24 /*	$FreeBSD$	*/
     25 
     26 /*-
     27  * Copyright (c) 1990, 1993
     28  *	The Regents of the University of California.  All rights reserved.
     29  *
     30  * Redistribution and use in source and binary forms, with or without
     31  * modification, are permitted provided that the following conditions
     32  * are met:
     33  * 1. Redistributions of source code must retain the above copyright
     34  *    notice, this list of conditions and the following disclaimer.
     35  * 2. Redistributions in binary form must reproduce the above copyright
     36  *    notice, this list of conditions and the following disclaimer in the
     37  *    documentation and/or other materials provided with the distribution.
     38  * 3. Neither the name of the University nor the names of its contributors
     39  *    may be used to endorse or promote products derived from this software
     40  *    without specific prior written permission.
     41  *
     42  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     43  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     44  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     45  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     46  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     47  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     48  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     49  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     50  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     51  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     52  * SUCH DAMAGE.
     53  *
     54  *	@(#)vis.h	8.1 (Berkeley) 6/2/93
     55  */
     56 
     57 #ifndef _VIS_H_
     58 #define	_VIS_H_
     59 
     60 #include <Availability.h>
     61 #include <_types.h>
     62 #include <sys/_types/_size_t.h>
     63 
     64 /*
     65  * to select alternate encoding format
     66  */
     67 #define	VIS_OCTAL	0x0001	/* use octal \ddd format */
     68 #define	VIS_CSTYLE	0x0002	/* use \[nrft0..] where appropiate */
     69 
     70 /*
     71  * to alter set of characters encoded (default is to encode all
     72  * non-graphic except space, tab, and newline).
     73  */
     74 #define	VIS_SP		0x0004	/* also encode space */
     75 #define	VIS_TAB		0x0008	/* also encode tab */
     76 #define	VIS_NL		0x0010	/* also encode newline */
     77 #define	VIS_WHITE	(VIS_SP | VIS_TAB | VIS_NL)
     78 #define	VIS_SAFE	0x0020	/* only encode "unsafe" characters */
     79 #define	VIS_DQ		0x8000	/* also encode double quotes */
     80 
     81 /*
     82  * other
     83  */
     84 #define	VIS_NOSLASH	0x0040	/* inhibit printing '\' */
     85 #define	VIS_HTTP1808	0x0080	/* http-style escape % hex hex */
     86 #define	VIS_HTTPSTYLE	0x0080	/* http-style escape % hex hex */
     87 #define	VIS_GLOB	0x0100	/* encode glob(3) magic characters */
     88 #define	VIS_MIMESTYLE	0x0200	/* mime-style escape = HEX HEX */
     89 #define	VIS_HTTP1866	0x0400	/* http-style &#num; or &string; */
     90 #define	VIS_NOESCAPE	0x0800	/* don't decode `\' */
     91 #define	_VIS_END	0x1000	/* for unvis */
     92 #define	VIS_SHELL	0x2000	/* encode shell special characters [not glob] */
     93 #define	VIS_META	(VIS_WHITE | VIS_GLOB | VIS_SHELL)
     94 #define	VIS_NOLOCALE	0x4000	/* encode using the C locale */
     95 
     96 /*
     97  * unvis return codes
     98  */
     99 #define	UNVIS_VALID	 1	/* character valid */
    100 #define	UNVIS_VALIDPUSH	 2	/* character valid, push back passed char */
    101 #define	UNVIS_NOCHAR	 3	/* valid sequence, no character produced */
    102 #define	UNVIS_SYNBAD	-1	/* unrecognized escape sequence */
    103 #define	UNVIS_ERROR	-2	/* decoder in unknown state (unrecoverable) */
    104 
    105 /*
    106  * unvis flags
    107  */
    108 #define	UNVIS_END	_VIS_END	/* no more characters */
    109 
    110 #include <sys/cdefs.h>
    111 
    112 __BEGIN_DECLS
    113 
    114 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of vis(3), it is highly recommended you use nvis(3) instead.", macos(10.0,14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    115 char	*vis(char *, int, int, int);
    116 char	*nvis(char *, size_t, int, int, int);
    117 
    118 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of svis(3), it is highly recommended you use snvis(3) instead.", macos(10.0, 14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    119 char	*svis(char *, int, int, int, const char *);
    120 char	*snvis(char *, size_t, int, int, int, const char *);
    121 
    122 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of strvis(3), it is highly recommended you use strnvis(3) instead.", macos(10.0, 14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    123 int	strvis(char *, const char *, int);
    124 int	stravis(char **, const char *, int);
    125 int	strnvis(char *, size_t, const char *, int);
    126 
    127 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of strsvis(3), it is highly recommended you use strsnvis(3) instead.", macos(10.0, 14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    128 int	strsvis(char *, const char *, int, const char *);
    129 int	strsnvis(char *, size_t, const char *, int, const char *);
    130 
    131 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of strvisx(3), it is highly recommended you use strnvisx(3) instead.", macos(10.0, 14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    132 int	strvisx(char *, const char *, size_t, int);
    133 int	strnvisx(char *, size_t, const char *, size_t, int);
    134 int 	strenvisx(char *, size_t, const char *, size_t, int, int *);
    135 
    136 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of strsvisx(3), it is highly recommended you use strsnvisx(3) instead.", macos(10.0, 14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    137 int	strsvisx(char *, const char *, size_t, int, const char *);
    138 int	strsnvisx(char *, size_t, const char *, size_t, int, const char *);
    139 int	strsenvisx(char *, size_t, const char *, size_t , int, const char *,
    140     int *);
    141 
    142 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of strunvis(3), it is highly recommended you use strnunvis(3) instead.", macos(10.0, 14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    143 int	strunvis(char *, const char *);
    144 int	strnunvis(char *, size_t, const char *);
    145 
    146 __API_DEPRECATED("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of strunvisx(3), it is highly recommended you use strnunvisx(3) instead.", macos(10.0, 14.4), ios(2.0,17.4), watchos(1.0,10.4), tvos(9.0,17.4))
    147 int	strunvisx(char *, const char *, int);
    148 int	strnunvisx(char *, size_t, const char *, int);
    149 
    150 int	unvis(char *, int, int *, int);
    151 __END_DECLS
    152 
    153 #endif /* !_VIS_H_ */