[444] | 1 | /* |
---|
| 2 | FUNCTION |
---|
| 3 | <<unctrl>>---get printable representation of a character |
---|
| 4 | |
---|
| 5 | INDEX |
---|
| 6 | unctrl |
---|
| 7 | INDEX |
---|
| 8 | unctrllen |
---|
| 9 | |
---|
| 10 | SYNOPSIS |
---|
| 11 | #include <unctrl.h> |
---|
| 12 | char *unctrl(int <[c]>); |
---|
| 13 | int unctrllen(int <[c]>); |
---|
| 14 | |
---|
| 15 | DESCRIPTION |
---|
| 16 | <<unctrl>> is a macro which returns the printable representation of <[c]> |
---|
| 17 | as a string. |
---|
| 18 | <<unctrllen>> is a macro which returns the length of the printable |
---|
| 19 | representation of <[c]>. |
---|
| 20 | |
---|
| 21 | RETURNS |
---|
| 22 | <<unctrl>> returns a string of the printable representation of <[c]>. |
---|
| 23 | |
---|
| 24 | <<unctrllen>> returns the length of the string which is the printable |
---|
| 25 | representation of <[c]>. |
---|
| 26 | |
---|
| 27 | PORTABILITY |
---|
| 28 | <<unctrl>> and <<unctrllen>> are not ANSI C. |
---|
| 29 | |
---|
| 30 | No supporting OS subroutines are required. |
---|
| 31 | */ |
---|
| 32 | |
---|
| 33 | /* |
---|
| 34 | * Copyright (c) 1981, 1993 |
---|
| 35 | * The Regents of the University of California. All rights reserved. |
---|
| 36 | * |
---|
| 37 | * Redistribution and use in source and binary forms, with or without |
---|
| 38 | * modification, are permitted provided that the following conditions |
---|
| 39 | * are met: |
---|
| 40 | * 1. Redistributions of source code must retain the above copyright |
---|
| 41 | * notice, this list of conditions and the following disclaimer. |
---|
| 42 | * 2. Redistributions in binary form must reproduce the above copyright |
---|
| 43 | * notice, this list of conditions and the following disclaimer in the |
---|
| 44 | * documentation and/or other materials provided with the distribution. |
---|
| 45 | * 3. All advertising materials mentioning features or use of this software |
---|
| 46 | * must display the following acknowledgement: |
---|
| 47 | * This product includes software developed by the University of |
---|
| 48 | * California, Berkeley and its contributors. |
---|
| 49 | * 4. Neither the name of the University nor the names of its contributors |
---|
| 50 | * may be used to endorse or promote products derived from this software |
---|
| 51 | * without specific prior written permission. |
---|
| 52 | * |
---|
| 53 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
---|
| 54 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
---|
| 55 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
---|
| 56 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
---|
| 57 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
---|
| 58 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
---|
| 59 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
---|
| 60 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
---|
| 61 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
---|
| 62 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
---|
| 63 | * SUCH DAMAGE. |
---|
| 64 | */ |
---|
| 65 | |
---|
| 66 | #include <_ansi.h> |
---|
| 67 | |
---|
| 68 | #if defined(LIBC_SCCS) && !defined(lint) |
---|
| 69 | static char sccsid[] = "@(#)unctrl.c 8.1 (Berkeley) 6/4/93"; |
---|
| 70 | #endif /* LIBC_SCCS and not lint */ |
---|
| 71 | |
---|
| 72 | const char * const __unctrl[256] = { |
---|
| 73 | "^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", |
---|
| 74 | "^H", "^I", "^J", "^K", "^L", "^M", "^N", "^O", |
---|
| 75 | "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W", |
---|
| 76 | "^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_", |
---|
| 77 | " ", "!", "\"", "#", "$", "%", "&", "'", |
---|
| 78 | "(", ")", "*", "+", ",", "-", ".", "/", |
---|
| 79 | "0", "1", "2", "3", "4", "5", "6", "7", |
---|
| 80 | "8", "9", ":", ";", "<", "=", ">", "?", |
---|
| 81 | "@", "A", "B", "C", "D", "E", "F", "G", |
---|
| 82 | "H", "I", "J", "K", "L", "M", "N", "O", |
---|
| 83 | "P", "Q", "R", "S", "T", "U", "V", "W", |
---|
| 84 | "X", "Y", "Z", "[", "\\", "]", "^", "_", |
---|
| 85 | "`", "a", "b", "c", "d", "e", "f", "g", |
---|
| 86 | "h", "i", "j", "k", "l", "m", "n", "o", |
---|
| 87 | "p", "q", "r", "s", "t", "u", "v", "w", |
---|
| 88 | "x", "y", "z", "{", "|", "}", "~", "^?", |
---|
| 89 | |
---|
| 90 | "0x80", "0x81", "0x82", "0x83", "0x84", "0x85", "0x86", "0x87", |
---|
| 91 | "0x88", "0x89", "0x8a", "0x8b", "0x8c", "0x8d", "0x8e", "0x8f", |
---|
| 92 | "0x90", "0x91", "0x92", "0x93", "0x94", "0x95", "0x96", "0x97", |
---|
| 93 | "0x98", "0x99", "0x9a", "0x9b", "0x9c", "0x9d", "0x9e", "0x9f", |
---|
| 94 | "0xa0", "0xa1", "0xa2", "0xa3", "0xa4", "0xa5", "0xa6", "0xa7", |
---|
| 95 | "0xa8", "0xa9", "0xaa", "0xab", "0xac", "0xad", "0xae", "0xaf", |
---|
| 96 | "0xb0", "0xb1", "0xb2", "0xb3", "0xb4", "0xb5", "0xb6", "0xb7", |
---|
| 97 | "0xb8", "0xb9", "0xba", "0xbb", "0xbc", "0xbd", "0xbe", "0xbf", |
---|
| 98 | "0xc0", "0xc1", "0xc2", "0xc3", "0xc4", "0xc5", "0xc6", "0xc7", |
---|
| 99 | "0xc8", "0xc9", "0xca", "0xcb", "0xcc", "0xcd", "0xce", "0xcf", |
---|
| 100 | "0xd0", "0xd1", "0xd2", "0xd3", "0xd4", "0xd5", "0xd6", "0xd7", |
---|
| 101 | "0xd8", "0xd9", "0xda", "0xdb", "0xdc", "0xdd", "0xde", "0xdf", |
---|
| 102 | "0xe0", "0xe1", "0xe2", "0xe3", "0xe4", "0xe5", "0xe6", "0xe7", |
---|
| 103 | "0xe8", "0xe9", "0xea", "0xeb", "0xec", "0xed", "0xee", "0xef", |
---|
| 104 | "0xf0", "0xf1", "0xf2", "0xf3", "0xf4", "0xf5", "0xf6", "0xf7", |
---|
| 105 | "0xf8", "0xf9", "0xfa", "0xfb", "0xfc", "0xfd", "0xfe", "0xff", |
---|
| 106 | }; |
---|
| 107 | |
---|
| 108 | const char __unctrllen[256] = { |
---|
| 109 | 2, 2, 2, 2, 2, 2, 2, 2, |
---|
| 110 | 2, 2, 2, 2, 2, 2, 2, 2, |
---|
| 111 | 2, 2, 2, 2, 2, 2, 2, 2, |
---|
| 112 | 2, 2, 2, 2, 2, 2, 2, 2, |
---|
| 113 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 114 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 115 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 116 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 117 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 118 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 119 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 120 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 121 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 122 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 123 | 1, 1, 1, 1, 1, 1, 1, 1, |
---|
| 124 | 1, 1, 1, 1, 1, 1, 1, 2, |
---|
| 125 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 126 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 127 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 128 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 129 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 130 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 131 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 132 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 133 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 134 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 135 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 136 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 137 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 138 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 139 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 140 | 4, 4, 4, 4, 4, 4, 4, 4, |
---|
| 141 | }; |
---|