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 * ICU License - ICU 1.8.1 and later 23 * 24 * COPYRIGHT AND PERMISSION NOTICE 25 * 26 * Copyright (c) 1995-2005 International Business Machines Corporation and others 27 * All rights reserved. 28 * 29 * Permission is hereby granted, free of charge, to any person obtaining a 30 * copy of this software and associated documentation files (the 31 * "Software"), to deal in the Software without restriction, including 32 * without limitation the rights to use, copy, modify, merge, publish, 33 * distribute, and/or sell copies of the Software, and to permit persons 34 * to whom the Software is furnished to do so, provided that the above 35 * copyright notice(s) and this permission notice appear in all copies of 36 * the Software and that both the above copyright notice(s) and this 37 * permission notice appear in supporting documentation. 38 * 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 40 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 41 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 42 * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 43 * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL 44 * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING 45 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 46 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 47 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 48 * 49 * Except as contained in this notice, the name of a copyright holder 50 * shall not be used in advertising or otherwise to promote the sale, use 51 * or other dealings in this Software without prior written authorization 52 * of the copyright holder. 53 * 54 * -------------------------------------------------------------------------- 55 * All trademarks and registered trademarks mentioned herein are the property 56 * of their respective owners. 57 */ 58// 59// Copyright (c) 1999-2000 by Sun Microsystems, Inc. 60// All rights reserved. 61// 62// 63// This file orginally came from UTF-8+IBM-277.src. The only significant 64// thing changed is the replacement of mapping to Intl Currency Symbol to 65// euro symbol. 66// 67 68 69#include <sys/errno.h> 70 71UTF-8%IBM-1142 { 72 direction { 73 condition { 74 inputsize >= 1; 75 between 0x0...0x7F; 76 } map { 77 0x00 0x00 // U+0000 78 0x01 0x01 // U+0001 79 0x02 0x02 // U+0002 80 0x03 0x03 // U+0003 81 0x04 0x37 // U+0004 82 0x05 0x2D // U+0005 83 0x06 0x2E // U+0006 84 0x07 0x2F // U+0007 85 0x08 0x16 // U+0008 86 0x09 0x05 // U+0009 87 0x0A 0x25 // U+000a 88 0x0B 0x0B // U+000b 89 0x0C 0x0C // U+000c 90 0x0D 0x0D // U+000d 91 0x0E 0x0E // U+000e 92 0x0F 0x0F // U+000f 93 0x10 0x10 // U+0010 94 0x11 0x11 // U+0011 95 0x12 0x12 // U+0012 96 0x13 0x13 // U+0013 97 0x14 0x3C // U+0014 98 0x15 0x3D // U+0015 99 0x16 0x32 // U+0016 100 0x17 0x26 // U+0017 101 0x18 0x18 // U+0018 102 0x19 0x19 // U+0019 103 0x1A 0x3F // U+001a 104 0x1B 0x27 // U+001b 105 0x1C 0x1C // U+001c 106 0x1D 0x1D // U+001d 107 0x1E 0x1E // U+001e 108 0x1F 0x1F // U+001f 109 0x20 0x40 // U+0020 110 0x21 0x4F // U+0021 111 0x22 0x7F // U+0022 112 0x23 0x4A // U+0023 113 0x24 0x67 // U+0024 114 0x25 0x6C // U+0025 115 0x26 0x50 // U+0026 116 0x27 0x7D // U+0027 117 0x28 0x4D // U+0028 118 0x29 0x5D // U+0029 119 0x2A 0x5C // U+002a 120 0x2B 0x4E // U+002b 121 0x2C 0x6B // U+002c 122 0x2D 0x60 // U+002d 123 0x2E 0x4B // U+002e 124 0x2F 0x61 // U+002f 125 0x30 0xF0 // U+0030 126 0x31 0xF1 // U+0031 127 0x32 0xF2 // U+0032 128 0x33 0xF3 // U+0033 129 0x34 0xF4 // U+0034 130 0x35 0xF5 // U+0035 131 0x36 0xF6 // U+0036 132 0x37 0xF7 // U+0037 133 0x38 0xF8 // U+0038 134 0x39 0xF9 // U+0039 135 0x3A 0x7A // U+003a 136 0x3B 0x5E // U+003b 137 0x3C 0x4C // U+003c 138 0x3D 0x7E // U+003d 139 0x3E 0x6E // U+003e 140 0x3F 0x6F // U+003f 141 0x40 0x80 // U+0040 142 0x41 0xC1 // U+0041 143 0x42 0xC2 // U+0042 144 0x43 0xC3 // U+0043 145 0x44 0xC4 // U+0044 146 0x45 0xC5 // U+0045 147 0x46 0xC6 // U+0046 148 0x47 0xC7 // U+0047 149 0x48 0xC8 // U+0048 150 0x49 0xC9 // U+0049 151 0x4A 0xD1 // U+004a 152 0x4B 0xD2 // U+004b 153 0x4C 0xD3 // U+004c 154 0x4D 0xD4 // U+004d 155 0x4E 0xD5 // U+004e 156 0x4F 0xD6 // U+004f 157 0x50 0xD7 // U+0050 158 0x51 0xD8 // U+0051 159 0x52 0xD9 // U+0052 160 0x53 0xE2 // U+0053 161 0x54 0xE3 // U+0054 162 0x55 0xE4 // U+0055 163 0x56 0xE5 // U+0056 164 0x57 0xE6 // U+0057 165 0x58 0xE7 // U+0058 166 0x59 0xE8 // U+0059 167 0x5A 0xE9 // U+005a 168 0x5B 0x9E // U+005b 169 0x5C 0xE0 // U+005c 170 0x5D 0x9F // U+005d 171 0x5E 0x5F // U+005e 172 0x5F 0x6D // U+005f 173 0x60 0x79 // U+0060 174 0x61 0x81 // U+0061 175 0x62 0x82 // U+0062 176 0x63 0x83 // U+0063 177 0x64 0x84 // U+0064 178 0x65 0x85 // U+0065 179 0x66 0x86 // U+0066 180 0x67 0x87 // U+0067 181 0x68 0x88 // U+0068 182 0x69 0x89 // U+0069 183 0x6A 0x91 // U+006a 184 0x6B 0x92 // U+006b 185 0x6C 0x93 // U+006c 186 0x6D 0x94 // U+006d 187 0x6E 0x95 // U+006e 188 0x6F 0x96 // U+006f 189 0x70 0x97 // U+0070 190 0x71 0x98 // U+0071 191 0x72 0x99 // U+0072 192 0x73 0xA2 // U+0073 193 0x74 0xA3 // U+0074 194 0x75 0xA4 // U+0075 195 0x76 0xA5 // U+0076 196 0x77 0xA6 // U+0077 197 0x78 0xA7 // U+0078 198 0x79 0xA8 // U+0079 199 0x7A 0xA9 // U+007a 200 0x7B 0x9C // U+007b 201 0x7C 0xBB // U+007c 202 0x7D 0x47 // U+007d 203 0x7E 0xDC // U+007e 204 0x7F 0x07 // U+007f 205 default 0x6f 206 }; 207 condition { 208 inputsize <= 1; 209 between 0xC0...0xFD; 210 } operation { 211 error EINVAL; 212 }; 213 condition { 214 inputsize >= 2; 215 between 0xC080...0xDFBF; 216 } map { 217 0xC280 0x20 // U+0080 218 0xC281 0x21 // U+0081 219 0xC282 0x22 // U+0082 220 0xC283 0x23 // U+0083 221 0xC284 0x24 // U+0084 222 0xC285 0x15 // U+0085 223 0xC286 0x06 // U+0086 224 0xC287 0x17 // U+0087 225 0xC288 0x28 // U+0088 226 0xC289 0x29 // U+0089 227 0xC28A 0x2A // U+008a 228 0xC28B 0x2B // U+008b 229 0xC28C 0x2C // U+008c 230 0xC28D 0x09 // U+008d 231 0xC28E 0x0A // U+008e 232 0xC28F 0x1B // U+008f 233 0xC290 0x30 // U+0090 234 0xC291 0x31 // U+0091 235 0xC292 0x1A // U+0092 236 0xC293 0x33 // U+0093 237 0xC294 0x34 // U+0094 238 0xC295 0x35 // U+0095 239 0xC296 0x36 // U+0096 240 0xC297 0x08 // U+0097 241 0xC298 0x38 // U+0098 242 0xC299 0x39 // U+0099 243 0xC29A 0x3A // U+009a 244 0xC29B 0x3B // U+009b 245 0xC29C 0x04 // U+009c 246 0xC29D 0x14 // U+009d 247 0xC29E 0x3E // U+009e 248 0xC29F 0xFF // U+009f 249 0xC2A0 0x41 // U+00a0 250 0xC2A1 0xAA // U+00a1 251 0xC2A2 0xB0 // U+00a2 252 0xC2A3 0xB1 // U+00a3 253 0xC2A4 0x5A // U+00a4 254 0xC2A5 0xB2 // U+00a5 255 0xC2A6 0x70 // U+00a6 256 0xC2A7 0xB5 // U+00a7 257 0xC2A8 0xBD // U+00a8 258 0xC2A9 0xB4 // U+00a9 259 0xC2AA 0x9A // U+00aa 260 0xC2AB 0x8A // U+00ab 261 0xC2AC 0xBA // U+00ac 262 0xC2AD 0xCA // U+00ad 263 0xC2AE 0xAF // U+00ae 264 0xC2AF 0xBC // U+00af 265 0xC2B0 0x90 // U+00b0 266 0xC2B1 0x8F // U+00b1 267 0xC2B2 0xEA // U+00b2 268 0xC2B3 0xFA // U+00b3 269 0xC2B4 0xBE // U+00b4 270 0xC2B5 0xA0 // U+00b5 271 0xC2B6 0xB6 // U+00b6 272 0xC2B7 0xB3 // U+00b7 273 0xC2B8 0x9D // U+00b8 274 0xC2B9 0xDA // U+00b9 275 0xC2BA 0x9B // U+00ba 276 0xC2BB 0x8B // U+00bb 277 0xC2BC 0xB7 // U+00bc 278 0xC2BD 0xB8 // U+00bd 279 0xC2BE 0xB9 // U+00be 280 0xC2BF 0xAB // U+00bf 281 0xC380 0x64 // U+00c0 282 0xC381 0x65 // U+00c1 283 0xC382 0x62 // U+00c2 284 0xC383 0x66 // U+00c3 285 0xC384 0x63 // U+00c4 286 0xC385 0x5B // U+00c5 287 0xC386 0x7B // U+00c6 288 0xC387 0x68 // U+00c7 289 0xC388 0x74 // U+00c8 290 0xC389 0x71 // U+00c9 291 0xC38A 0x72 // U+00ca 292 0xC38B 0x73 // U+00cb 293 0xC38C 0x78 // U+00cc 294 0xC38D 0x75 // U+00cd 295 0xC38E 0x76 // U+00ce 296 0xC38F 0x77 // U+00cf 297 0xC390 0xAC // U+00d0 298 0xC391 0x69 // U+00d1 299 0xC392 0xED // U+00d2 300 0xC393 0xEE // U+00d3 301 0xC394 0xEB // U+00d4 302 0xC395 0xEF // U+00d5 303 0xC396 0xEC // U+00d6 304 0xC397 0xBF // U+00d7 305 0xC398 0x7C // U+00d8 306 0xC399 0xFD // U+00d9 307 0xC39A 0xFE // U+00da 308 0xC39B 0xFB // U+00db 309 0xC39C 0xFC // U+00dc 310 0xC39D 0xAD // U+00dd 311 0xC39E 0xAE // U+00de 312 0xC39F 0x59 // U+00df 313 0xC3A0 0x44 // U+00e0 314 0xC3A1 0x45 // U+00e1 315 0xC3A2 0x42 // U+00e2 316 0xC3A3 0x46 // U+00e3 317 0xC3A4 0x43 // U+00e4 318 0xC3A5 0xD0 // U+00e5 319 0xC3A6 0xC0 // U+00e6 320 0xC3A7 0x48 // U+00e7 321 0xC3A8 0x54 // U+00e8 322 0xC3A9 0x51 // U+00e9 323 0xC3AA 0x52 // U+00ea 324 0xC3AB 0x53 // U+00eb 325 0xC3AC 0x58 // U+00ec 326 0xC3AD 0x55 // U+00ed 327 0xC3AE 0x56 // U+00ee 328 0xC3AF 0x57 // U+00ef 329 0xC3B0 0x8C // U+00f0 330 0xC3B1 0x49 // U+00f1 331 0xC3B2 0xCD // U+00f2 332 0xC3B3 0xCE // U+00f3 333 0xC3B4 0xCB // U+00f4 334 0xC3B5 0xCF // U+00f5 335 0xC3B6 0xCC // U+00f6 336 0xC3B7 0xE1 // U+00f7 337 0xC3B8 0x6A // U+00f8 338 0xC3B9 0xDD // U+00f9 339 0xC3BA 0xDE // U+00fa 340 0xC3BB 0xDB // U+00fb 341 0xC3BC 0xA1 // U+00fc 342 0xC3BD 0x8D // U+00fd 343 0xC3BE 0x8E // U+00fe 344 0xC3BF 0xDF // U+00ff 345 default 0x6f 346 }; 347 condition { 348 inputsize <= 2; 349 between 0xE0...0xFD; 350 } operation { 351 error EINVAL; 352 }; 353 condition { 354 inputsize >= 3; 355 between 0xE08080...0xECBFBF, 0xED8080...0xED9FBF, 0xEE8080...0xEFBFBF; 356 } operation { 357 if (input == 0xefbfbe || input == 0xefbfbf) { 358 error EILSEQ; 359 } else if (input == 0xe282ac) { // euro sign? 360 output = 0x5a; 361 } else { 362 output = 0x6f; 363 }; 364 discard 3; 365 }; 366 condition { 367 inputsize <= 3; 368 between 0xF0...0xFD; 369 } operation { 370 error EINVAL; 371 }; 372 condition { 373 inputsize >= 4; 374 between 0xF0808080...0xF7BFBFBF; 375 } operation { 376 output = 0x6f; 377 discard 4; 378 }; 379 condition { 380 inputsize <= 4; 381 between 0xF8...0xFD; 382 } operation { 383 error EINVAL; 384 }; 385 condition { 386 inputsize >= 5; 387 between 0xF880808080...0xFBBFBFBFBF; 388 } operation { 389 output = 0x6f; 390 discard 5; 391 }; 392 condition { 393 inputsize <= 5; 394 between 0xFC...0xFD; 395 } operation { 396 error EINVAL; 397 }; 398 condition { 399 inputsize >= 6; 400 between 0xFC8080808080...0xFDBFBFBFBFBF; 401 } operation { 402 output = 0x6f; 403 discard 6; 404 }; 405 }; 406} 407