1 /* $NetBSD: char.c,v 1.6 2009/04/14 08:50:06 lukem Exp $ */ 2 3 /* 4 * Copyright (c) 1983, 1993 5 * The Regents of the University of California. All rights reserved. 6 * 7 * This code is derived from software contributed to Berkeley by 8 * Edward Wang at The University of California, Berkeley. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 3. Neither the name of the University nor the names of its contributors 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 */ 34 35 #include <sys/cdefs.h> 36 #ifndef lint 37 #if 0 38 static char sccsid[] = "@(#)char.c 8.1 (Berkeley) 6/6/93"; 39 #else 40 __RCSID("$NetBSD: char.c,v 1.6 2009/04/14 08:50:06 lukem Exp $"); 41 #endif 42 #endif /* not lint */ 43 44 #include "char.h" 45 46 char _cmap[] = { 47 _C|_U, _C|_U, _C|_U, _C|_U, /* ^@ - ^C */ 48 _C|_U, _C|_U, _C|_U, _C|_U, /* ^D - ^G */ 49 _C, _C|_P, _C, _C|_U, /* ^H - ^K */ 50 _C|_U, _C, _C|_U, _C|_U, /* ^L - ^O */ 51 _C|_U, _C|_U, _C|_U, _C|_U, /* ^P - ^S */ 52 _C|_U, _C|_U, _C|_U, _C|_U, /* ^T - ^W */ 53 _C|_U, _C|_U, _C|_U, _C|_U, /* ^U - ^[ */ 54 _C|_U, _C|_U, _C|_U, _C|_U, /* ^\ - ^_ */ 55 56 _P|_U, _P|_U, _P|_U, _P|_U, 57 _P|_U, _P|_U, _P|_U, _P|_U, 58 _P|_U, _P|_U, _P|_U, _P|_U, 59 _P|_U, _P|_U, _P|_U, _P|_U, 60 _P|_U, _P|_U, _P|_U, _P|_U, 61 _P|_U, _P|_U, _P|_U, _P|_U, 62 _P|_U, _P|_U, _P|_U, _P|_U, 63 _P|_U, _P|_U, _P|_U, _P|_U, 64 65 _P|_U, _P|_U, _P|_U, _P|_U, 66 _P|_U, _P|_U, _P|_U, _P|_U, 67 _P|_U, _P|_U, _P|_U, _P|_U, 68 _P|_U, _P|_U, _P|_U, _P|_U, 69 _P|_U, _P|_U, _P|_U, _P|_U, 70 _P|_U, _P|_U, _P|_U, _P|_U, 71 _P|_U, _P|_U, _P|_U, _P|_U, 72 _P|_U, _P|_U, _P|_U, _P|_U, 73 74 _P|_U, _P|_U, _P|_U, _P|_U, 75 _P|_U, _P|_U, _P|_U, _P|_U, 76 _P|_U, _P|_U, _P|_U, _P|_U, 77 _P|_U, _P|_U, _P|_U, _P|_U, 78 _P|_U, _P|_U, _P|_U, _P|_U, 79 _P|_U, _P|_U, _P|_U, _P|_U, 80 _P|_U, _P|_U, _P|_U, _P|_U, 81 _P|_U, _P|_U, _P|_U, _C|_U, 82 83 _C|_U, _C|_U, _C|_U, _C|_U, 84 _C|_U, _C|_U, _C|_U, _C|_U, 85 _C|_U, _C|_U, _C|_U, _C|_U, 86 _C|_U, _C|_U, _C|_U, _C|_U, 87 _C|_U, _C|_U, _C|_U, _C|_U, 88 _C|_U, _C|_U, _C|_U, _C|_U, 89 _C|_U, _C|_U, _C|_U, _C|_U, 90 _C|_U, _C|_U, _C|_U, _C|_U, 91 92 _C|_U, _C|_U, _C|_U, _C|_U, 93 _C|_U, _C|_U, _C|_U, _C|_U, 94 _C|_U, _C|_U, _C|_U, _C|_U, 95 _C|_U, _C|_U, _C|_U, _C|_U, 96 _C|_U, _C|_U, _C|_U, _C|_U, 97 _C|_U, _C|_U, _C|_U, _C|_U, 98 _C|_U, _C|_U, _C|_U, _C|_U, 99 _C|_U, _C|_U, _C|_U, _C|_U, 100 101 _C|_U, _C|_U, _C|_U, _C|_U, 102 _C|_U, _C|_U, _C|_U, _C|_U, 103 _C|_U, _C|_U, _C|_U, _C|_U, 104 _C|_U, _C|_U, _C|_U, _C|_U, 105 _C|_U, _C|_U, _C|_U, _C|_U, 106 _C|_U, _C|_U, _C|_U, _C|_U, 107 _C|_U, _C|_U, _C|_U, _C|_U, 108 _C|_U, _C|_U, _C|_U, _C|_U, 109 110 _C|_U, _C|_U, _C|_U, _C|_U, 111 _C|_U, _C|_U, _C|_U, _C|_U, 112 _C|_U, _C|_U, _C|_U, _C|_U, 113 _C|_U, _C|_U, _C|_U, _C|_U, 114 _C|_U, _C|_U, _C|_U, _C|_U, 115 _C|_U, _C|_U, _C|_U, _C|_U, 116 _C|_U, _C|_U, _C|_U, _C|_U, 117 _C|_U, _C|_U, _C|_U, _C|_U 118 }; 119 120 const char *_unctrl[] = { 121 "^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", 122 "^H", "^I", "^J", "^K", "^L", "^M", "^N", "^O", 123 "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W", 124 "^X", "^Y", "^Z", "^[", "^\\", "^]", "^^", "^_", 125 " ", "!", "\"", "#", "$", "%", "&", "'", 126 "(", ")", "*", "+", ",", "-", ".", "/", 127 "0", "1", "2", "3", "4", "5", "6", "7", 128 "8", "9", ":", ";", "<", "=", ">", "?", 129 "@", "A", "B", "C", "D", "E", "F", "G", 130 "H", "I", "J", "K", "L", "M", "N", "O", 131 "P", "Q", "R", "S", "T", "U", "V", "W", 132 "X", "Y", "Z", "[", "\\", "]", "^", "_", 133 "`", "a", "b", "c", "d", "e", "f", "g", 134 "h", "i", "j", "k", "l", "m", "n", "o", 135 "p", "q", "r", "s", "t", "u", "v", "w", 136 "x", "y", "z", "{", "|", "}", "~", "^?", 137 "\\200","\\201","\\202","\\203","\\204","\\205","\\206","\\207", 138 "\\210","\\211","\\212","\\213","\\214","\\215","\\216","\\217", 139 "\\220","\\221","\\222","\\223","\\224","\\225","\\226","\\227", 140 "\\230","\\231","\\232","\\233","\\234","\\235","\\236","\\237", 141 "\\240","\\241","\\242","\\243","\\244","\\245","\\246","\\247", 142 "\\250","\\251","\\252","\\253","\\254","\\255","\\256","\\257", 143 "\\260","\\261","\\262","\\263","\\264","\\265","\\266","\\267", 144 "\\270","\\271","\\272","\\273","\\274","\\275","\\276","\\277", 145 "\\300","\\301","\\302","\\303","\\304","\\305","\\306","\\307", 146 "\\310","\\311","\\312","\\313","\\314","\\315","\\316","\\317", 147 "\\320","\\321","\\322","\\323","\\324","\\325","\\326","\\327", 148 "\\330","\\331","\\332","\\333","\\334","\\335","\\336","\\337", 149 "\\340","\\341","\\342","\\343","\\344","\\345","\\346","\\347", 150 "\\350","\\351","\\352","\\353","\\354","\\355","\\356","\\357", 151 "\\360","\\361","\\362","\\363","\\364","\\365","\\366","\\367", 152 "\\370","\\371","\\372","\\373","\\374","\\375","\\376","\\377" 153 }; 154