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_ */