1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25/* 26 * ICU License - ICU 1.8.1 and later 27 * 28 * COPYRIGHT AND PERMISSION NOTICE 29 * 30 * Copyright (c) 1995-2005 International Business Machines Corporation and others 31 * All rights reserved. 32 * 33 * Permission is hereby granted, free of charge, to any person obtaining a 34 * copy of this software and associated documentation files (the 35 * "Software"), to deal in the Software without restriction, including 36 * without limitation the rights to use, copy, modify, merge, publish, 37 * distribute, and/or sell copies of the Software, and to permit persons 38 * to whom the Software is furnished to do so, provided that the above 39 * copyright notice(s) and this permission notice appear in all copies of 40 * the Software and that both the above copyright notice(s) and this 41 * permission notice appear in supporting documentation. 42 * 43 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 44 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 45 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 46 * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 47 * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL 48 * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING 49 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 50 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 51 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 52 * 53 * Except as contained in this notice, the name of a copyright holder 54 * shall not be used in advertising or otherwise to promote the sale, use 55 * or other dealings in this Software without prior written authorization 56 * of the copyright holder. 57 * 58 * -------------------------------------------------------------------------- 59 * All trademarks and registered trademarks mentioned herein are the property 60 * of their respective owners. 61 */ 62 63#include <sys/errno.h> 64utf8%system { 65 direction { 66 @condition { 67 inputsize >= 1; 68 @between 0X0...0X7F; 69 } @map { 70 0x00 0x00 // U+0000 71 0x01 0x01 // U+0001 72 0x02 0x02 // U+0002 73 0x03 0x03 // U+0003 74 0x04 0x04 // U+0004 75 0x05 0x05 // U+0005 76 0x06 0x06 // U+0006 77 0x07 0x07 // U+0007 78 0x08 0x08 // U+0008 79 0x09 0x09 // U+0009 80 0x0A 0x0A // U+000a 81 0x0B 0x0B // U+000b 82 0x0C 0x0C // U+000c 83 0x0D 0x0D // U+000d 84 0x0E 0x0E // U+000e 85 0x0F 0x0F // U+000f 86 0x10 0x10 // U+0010 87 0x11 0x11 // U+0011 88 0x12 0x12 // U+0012 89 0x13 0x13 // U+0013 90 0x14 0x14 // U+0014 91 0x15 0x15 // U+0015 92 0x16 0x16 // U+0016 93 0x17 0x17 // U+0017 94 0x18 0x18 // U+0018 95 0x19 0x19 // U+0019 96 0x1A 0x1A // U+001a 97 0x1B 0x1B // U+001b 98 0x1C 0x1C // U+001c 99 0x1D 0x1D // U+001d 100 0x1E 0x1E // U+001e 101 0x1F 0x1F // U+001f 102 0x20 0x20 // U+0020 103 0x21 0x21 // U+0021 104 0x22 0x22 // U+0022 105 0x23 0x23 // U+0023 106 0x24 0x24 // U+0024 107 0x25 0x25 // U+0025 108 0x26 0x26 // U+0026 109 0x27 0x27 // U+0027 110 0x28 0x28 // U+0028 111 0x29 0x29 // U+0029 112 0x2A 0x2A // U+002a 113 0x2B 0x2B // U+002b 114 0x2C 0x2C // U+002c 115 0x2D 0x2D // U+002d 116 0x2E 0x2E // U+002e 117 0x2F 0x2F // U+002f 118 0x30 0x30 // U+0030 119 0x31 0x31 // U+0031 120 0x32 0x32 // U+0032 121 0x33 0x33 // U+0033 122 0x34 0x34 // U+0034 123 0x35 0x35 // U+0035 124 0x36 0x36 // U+0036 125 0x37 0x37 // U+0037 126 0x38 0x38 // U+0038 127 0x39 0x39 // U+0039 128 0x3A 0x3A // U+003a 129 0x3B 0x3B // U+003b 130 0x3C 0x3C // U+003c 131 0x3D 0x3D // U+003d 132 0x3E 0x3E // U+003e 133 0x3F 0x3F // U+003f 134 0x40 0x40 // U+0040 135 0x41 0x41 // U+0041 136 0x42 0x42 // U+0042 137 0x43 0x43 // U+0043 138 0x44 0x44 // U+0044 139 0x45 0x45 // U+0045 140 0x46 0x46 // U+0046 141 0x47 0x47 // U+0047 142 0x48 0x48 // U+0048 143 0x49 0x49 // U+0049 144 0x4A 0x4A // U+004a 145 0x4B 0x4B // U+004b 146 0x4C 0x4C // U+004c 147 0x4D 0x4D // U+004d 148 0x4E 0x4E // U+004e 149 0x4F 0x4F // U+004f 150 0x50 0x50 // U+0050 151 0x51 0x51 // U+0051 152 0x52 0x52 // U+0052 153 0x53 0x53 // U+0053 154 0x54 0x54 // U+0054 155 0x55 0x55 // U+0055 156 0x56 0x56 // U+0056 157 0x57 0x57 // U+0057 158 0x58 0x58 // U+0058 159 0x59 0x59 // U+0059 160 0x5A 0x5A // U+005a 161 0x5B 0x5B // U+005b 162 0x5C 0x5C // U+005c 163 0x5D 0x5D // U+005d 164 0x5E 0x5E // U+005e 165 0x5F 0x5F // U+005f 166 0x60 0x60 // U+0060 167 0x61 0x61 // U+0061 168 0x62 0x62 // U+0062 169 0x63 0x63 // U+0063 170 0x64 0x64 // U+0064 171 0x65 0x65 // U+0065 172 0x66 0x66 // U+0066 173 0x67 0x67 // U+0067 174 0x68 0x68 // U+0068 175 0x69 0x69 // U+0069 176 0x6A 0x6A // U+006a 177 0x6B 0x6B // U+006b 178 0x6C 0x6C // U+006c 179 0x6D 0x6D // U+006d 180 0x6E 0x6E // U+006e 181 0x6F 0x6F // U+006f 182 0x70 0x70 // U+0070 183 0x71 0x71 // U+0071 184 0x72 0x72 // U+0072 185 0x73 0x73 // U+0073 186 0x74 0x74 // U+0074 187 0x75 0x75 // U+0075 188 0x76 0x76 // U+0076 189 0x77 0x77 // U+0077 190 0x78 0x78 // U+0078 191 0x79 0x79 // U+0079 192 0x7A 0x7A // U+007a 193 0x7B 0x7B // U+007b 194 0x7C 0x7C // U+007c 195 0x7D 0x7D // U+007d 196 0x7E 0x7E // U+007e 197 0x7F 0x7F // U+007f 198 default 0x3f 199 }; 200 @condition { 201 inputsize <= 1; 202 @between 0XC0...0XFD; 203 } @operation { 204 error EINVAL; 205 }; 206 @condition { 207 inputsize >= 2; 208 @between 0XC080...0XDFBF; 209 } @map { 210 0xC2A0 0xFF // U+00a0 211 0xC2A2 0xBD // U+00a2 212 0xC2A3 0x9C // U+00a3 213 0xC2A4 0xCF // U+00a4 214 0xC2A5 0xBE // U+00a5 215 0xC2A6 0xDD // U+00a6 216 0xC2A7 0xF5 // U+00a7 217 0xC2A8 0xF9 // U+00a8 218 0xC2A9 0xB8 // U+00a9 219 0xC2AB 0xAE // U+00ab 220 0xC2AC 0xAA // U+00ac 221 0xC2AD 0xF0 // U+00ad 222 0xC2AE 0xA9 // U+00ae 223 0xC2B0 0xF8 // U+00b0 224 0xC2B1 0xF1 // U+00b1 225 0xC2B2 0xFD // U+00b2 226 0xC2B3 0xFC // U+00b3 227 0xC2B4 0xEF // U+00b4 228 0xC2B5 0xE6 // U+00b5 229 0xC2B6 0xF4 // U+00b6 230 0xC2B8 0xF7 // U+00b8 231 0xC2B9 0xFB // U+00b9 232 0xC2BB 0xAF // U+00bb 233 0xC2BC 0xAC // U+00bc 234 0xC2BD 0xAB // U+00bd 235 0xC2BE 0xF3 // U+00be 236 0xC397 0x9E // U+00d7 237 0xC3B7 0xF6 // U+00f7 238 0xD790 0x80 // U+05d0 239 0xD791 0x81 // U+05d1 240 0xD792 0x82 // U+05d2 241 0xD793 0x83 // U+05d3 242 0xD794 0x84 // U+05d4 243 0xD795 0x85 // U+05d5 244 0xD796 0x86 // U+05d6 245 0xD797 0x87 // U+05d7 246 0xD798 0x88 // U+05d8 247 0xD799 0x89 // U+05d9 248 0xD79A 0x8A // U+05da 249 0xD79B 0x8B // U+05db 250 0xD79C 0x8C // U+05dc 251 0xD79D 0x8D // U+05dd 252 0xD79E 0x8E // U+05de 253 0xD79F 0x8F // U+05df 254 0xD7A0 0x90 // U+05e0 255 0xD7A1 0x91 // U+05e1 256 0xD7A2 0x92 // U+05e2 257 0xD7A3 0x93 // U+05e3 258 0xD7A4 0x94 // U+05e4 259 0xD7A5 0x95 // U+05e5 260 0xD7A6 0x96 // U+05e6 261 0xD7A7 0x97 // U+05e7 262 0xD7A8 0x98 // U+05e8 263 0xD7A9 0x99 // U+05e9 264 0xD7AA 0x9A // U+05ea 265 default 0x3f 266 }; 267 @condition { 268 inputsize <= 2; 269 @between 0XE0...0XFD; 270 } @operation { 271 error EINVAL; 272 }; 273 @condition { 274 inputsize >= 3; 275 @between 0XE08080...0XECBFBF, 0XED8080...0XED9FBF, 0XEE8080...0XEFBFBF; 276 } @map { 277 0xE28097 0xF2 // U+2017 278 0xE280A2 0xFA // U+2022 279 0xE280BE 0xEE // U+203e 280 0xE29480 0xC4 // U+2500 281 0xE29482 0xB3 // U+2502 282 0xE2948C 0xDA // U+250c 283 0xE29490 0xBF // U+2510 284 0xE29494 0xC0 // U+2514 285 0xE29498 0xD9 // U+2518 286 0xE2949C 0xC3 // U+251c 287 0xE294A4 0xB4 // U+2524 288 0xE294AC 0xC2 // U+252c 289 0xE294B4 0xC1 // U+2534 290 0xE294BC 0xC5 // U+253c 291 0xE29590 0xCD // U+2550 292 0xE29591 0xBA // U+2551 293 0xE29594 0xC9 // U+2554 294 0xE29597 0xBB // U+2557 295 0xE2959A 0xC8 // U+255a 296 0xE2959D 0xBC // U+255d 297 0xE295A0 0xCC // U+2560 298 0xE295A3 0xB9 // U+2563 299 0xE295A6 0xCB // U+2566 300 0xE295A9 0xCA // U+2569 301 0xE295AC 0xCE // U+256c 302 0xE29680 0xDF // U+2580 303 0xE29684 0xDC // U+2584 304 0xE29688 0xDB // U+2588 305 0xE29691 0xB0 // U+2591 306 0xE29692 0xB1 // U+2592 307 0xE29693 0xB2 // U+2593 308 0xE296A0 0xFE // U+25a0 309 0xefbfbe error 310 0xefbfbf error 311 default 0x3f 312 }; // for last @map syntax 313 @condition { 314 inputsize <= 3; 315 @between 0XF0...0XFD; 316 } @operation { 317 error EINVAL; 318 }; 319 @condition { 320 inputsize >= 4; 321 @between 0XF0808080...0XF7BFBFBF; 322 } @operation { 323 output = 0x3f; 324 discard 4; 325 }; 326 @condition { 327 inputsize <= 4; 328 @between 0XF8...0XFD; 329 } @operation { 330 error EINVAL; 331 }; 332 @condition { 333 inputsize >= 5; 334 @between 0XF880808080...0XFBBFBFBFBF; 335 } @operation { 336 output = 0x3f; 337 discard 5; 338 }; 339 @condition { 340 inputsize <= 5; 341 @between 0XFC...0XFD; 342 } @operation { 343 error EINVAL; 344 }; 345 @condition { 346 inputsize >= 6; 347 @between 0XFC8080808080...0XFDBFBFBFBFBF; 348 } @operation { 349 output = 0x3f; 350 discard 6; 351 }; 352 }; // for direction 353} // for conversion name 354