1*16d86563SAlexander Pyhalov/* 2*16d86563SAlexander Pyhalov * CDDL HEADER START 3*16d86563SAlexander Pyhalov * 4*16d86563SAlexander Pyhalov * The contents of this file are subject to the terms of the 5*16d86563SAlexander Pyhalov * Common Development and Distribution License (the "License"). 6*16d86563SAlexander Pyhalov * You may not use this file except in compliance with the License. 7*16d86563SAlexander Pyhalov * 8*16d86563SAlexander Pyhalov * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE 9*16d86563SAlexander Pyhalov * or http://www.opensolaris.org/os/licensing. 10*16d86563SAlexander Pyhalov * See the License for the specific language governing permissions 11*16d86563SAlexander Pyhalov * and limitations under the License. 12*16d86563SAlexander Pyhalov * 13*16d86563SAlexander Pyhalov * When distributing Covered Code, include this CDDL HEADER in each 14*16d86563SAlexander Pyhalov * file and include the License file at src/OPENSOLARIS.LICENSE. 15*16d86563SAlexander Pyhalov * If applicable, add the following below this CDDL HEADER, with the 16*16d86563SAlexander Pyhalov * fields enclosed by brackets "[]" replaced with your own identifying 17*16d86563SAlexander Pyhalov * information: Portions Copyright [yyyy] [name of copyright owner] 18*16d86563SAlexander Pyhalov * 19*16d86563SAlexander Pyhalov * CDDL HEADER END 20*16d86563SAlexander Pyhalov */ 21*16d86563SAlexander Pyhalov/* 22*16d86563SAlexander Pyhalov * ICU License - ICU 1.8.1 and later 23*16d86563SAlexander Pyhalov * 24*16d86563SAlexander Pyhalov * COPYRIGHT AND PERMISSION NOTICE 25*16d86563SAlexander Pyhalov * 26*16d86563SAlexander Pyhalov * Copyright (c) 1995-2005 International Business Machines Corporation and others 27*16d86563SAlexander Pyhalov * All rights reserved. 28*16d86563SAlexander Pyhalov * 29*16d86563SAlexander Pyhalov * Permission is hereby granted, free of charge, to any person obtaining a 30*16d86563SAlexander Pyhalov * copy of this software and associated documentation files (the 31*16d86563SAlexander Pyhalov * "Software"), to deal in the Software without restriction, including 32*16d86563SAlexander Pyhalov * without limitation the rights to use, copy, modify, merge, publish, 33*16d86563SAlexander Pyhalov * distribute, and/or sell copies of the Software, and to permit persons 34*16d86563SAlexander Pyhalov * to whom the Software is furnished to do so, provided that the above 35*16d86563SAlexander Pyhalov * copyright notice(s) and this permission notice appear in all copies of 36*16d86563SAlexander Pyhalov * the Software and that both the above copyright notice(s) and this 37*16d86563SAlexander Pyhalov * permission notice appear in supporting documentation. 38*16d86563SAlexander Pyhalov * 39*16d86563SAlexander Pyhalov * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 40*16d86563SAlexander Pyhalov * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 41*16d86563SAlexander Pyhalov * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 42*16d86563SAlexander Pyhalov * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 43*16d86563SAlexander Pyhalov * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL 44*16d86563SAlexander Pyhalov * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING 45*16d86563SAlexander Pyhalov * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 46*16d86563SAlexander Pyhalov * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 47*16d86563SAlexander Pyhalov * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 48*16d86563SAlexander Pyhalov * 49*16d86563SAlexander Pyhalov * Except as contained in this notice, the name of a copyright holder 50*16d86563SAlexander Pyhalov * shall not be used in advertising or otherwise to promote the sale, use 51*16d86563SAlexander Pyhalov * or other dealings in this Software without prior written authorization 52*16d86563SAlexander Pyhalov * of the copyright holder. 53*16d86563SAlexander Pyhalov * 54*16d86563SAlexander Pyhalov * -------------------------------------------------------------------------- 55*16d86563SAlexander Pyhalov * All trademarks and registered trademarks mentioned herein are the property 56*16d86563SAlexander Pyhalov * of their respective owners. 57*16d86563SAlexander Pyhalov */ 58*16d86563SAlexander Pyhalov// 59*16d86563SAlexander Pyhalov// Copyright (c) 2000 by Sun Microsystems, Inc. 60*16d86563SAlexander Pyhalov// All rights reserved. 61*16d86563SAlexander Pyhalov// 62*16d86563SAlexander Pyhalov// 63*16d86563SAlexander Pyhalov// This file originally came from UTF-8+IBM-871.src and the only significant 64*16d86563SAlexander Pyhalov// change made is a re-mapping of Intl Currency Symbol mapping to euro mapping. 65*16d86563SAlexander Pyhalov// 66*16d86563SAlexander Pyhalov 67*16d86563SAlexander Pyhalov#include <sys/errno.h> 68*16d86563SAlexander Pyhalov 69*16d86563SAlexander PyhalovUTF-8%IBM-1149 { 70*16d86563SAlexander Pyhalov direction { 71*16d86563SAlexander Pyhalov condition { 72*16d86563SAlexander Pyhalov inputsize >= 1; 73*16d86563SAlexander Pyhalov between 0x0...0x7f; 74*16d86563SAlexander Pyhalov } map { 75*16d86563SAlexander Pyhalov 0x00 0x00 // U+0000 76*16d86563SAlexander Pyhalov 0x01 0x01 // U+0001 77*16d86563SAlexander Pyhalov 0x02 0x02 // U+0002 78*16d86563SAlexander Pyhalov 0x03 0x03 // U+0003 79*16d86563SAlexander Pyhalov 0x04 0x37 // U+0004 80*16d86563SAlexander Pyhalov 0x05 0x2d // U+0005 81*16d86563SAlexander Pyhalov 0x06 0x2e // U+0006 82*16d86563SAlexander Pyhalov 0x07 0x2f // U+0007 83*16d86563SAlexander Pyhalov 0x08 0x16 // U+0008 84*16d86563SAlexander Pyhalov 0x09 0x05 // U+0009 85*16d86563SAlexander Pyhalov 0x0a 0x25 // U+000a 86*16d86563SAlexander Pyhalov 0x0b 0x0b // U+000B 87*16d86563SAlexander Pyhalov 0x0c 0x0c // U+000c 88*16d86563SAlexander Pyhalov 0x0d 0x0d // U+000d 89*16d86563SAlexander Pyhalov 0x0e 0x0e // U+000E 90*16d86563SAlexander Pyhalov 0x0f 0x0f // U+000F 91*16d86563SAlexander Pyhalov 0x10 0x10 // U+0010 92*16d86563SAlexander Pyhalov 0x11 0x11 // U+0011 93*16d86563SAlexander Pyhalov 0x12 0x12 // U+0012 94*16d86563SAlexander Pyhalov 0x13 0x13 // U+0013 95*16d86563SAlexander Pyhalov 0x14 0x3c // U+0014 96*16d86563SAlexander Pyhalov 0x15 0x3d // U+0015 97*16d86563SAlexander Pyhalov 0x16 0x32 // U+0016 98*16d86563SAlexander Pyhalov 0x17 0x26 // U+0017 99*16d86563SAlexander Pyhalov 0x18 0x18 // U+0018 100*16d86563SAlexander Pyhalov 0x19 0x19 // U+0019 101*16d86563SAlexander Pyhalov 0x1a 0x3f // U+001A 102*16d86563SAlexander Pyhalov 0x1b 0x27 // U+001B 103*16d86563SAlexander Pyhalov 0x1c 0x1c // U+001C 104*16d86563SAlexander Pyhalov 0x1d 0x1d // U+001D 105*16d86563SAlexander Pyhalov 0x1e 0x1e // U+001E 106*16d86563SAlexander Pyhalov 0x1f 0x1f // U+001F 107*16d86563SAlexander Pyhalov 0x20 0x40 // U+0020 108*16d86563SAlexander Pyhalov 0x21 0x4f // U+0021 109*16d86563SAlexander Pyhalov 0x22 0x7f // U+0022 110*16d86563SAlexander Pyhalov 0x23 0x7b // U+0023 111*16d86563SAlexander Pyhalov 0x24 0x5b // U+0024 112*16d86563SAlexander Pyhalov 0x25 0x6c // U+0025 113*16d86563SAlexander Pyhalov 0x26 0x50 // U+0026 114*16d86563SAlexander Pyhalov 0x27 0x7d // U+0027 115*16d86563SAlexander Pyhalov 0x28 0x4d // U+0028 116*16d86563SAlexander Pyhalov 0x29 0x5d // U+0029 117*16d86563SAlexander Pyhalov 0x2a 0x5c // U+002A 118*16d86563SAlexander Pyhalov 0x2b 0x4e // U+002B 119*16d86563SAlexander Pyhalov 0x2c 0x6b // U+002C 120*16d86563SAlexander Pyhalov 0x2d 0x60 // U+002D 121*16d86563SAlexander Pyhalov 0x2e 0x4b // U+002E 122*16d86563SAlexander Pyhalov 0x2f 0x61 // U+002F 123*16d86563SAlexander Pyhalov 0x30 0xf0 // U+0030 124*16d86563SAlexander Pyhalov 0x31 0xf1 // U+0031 125*16d86563SAlexander Pyhalov 0x32 0xf2 // U+0032 126*16d86563SAlexander Pyhalov 0x33 0xf3 // U+0033 127*16d86563SAlexander Pyhalov 0x34 0xf4 // U+0034 128*16d86563SAlexander Pyhalov 0x35 0xf5 // U+0035 129*16d86563SAlexander Pyhalov 0x36 0xf6 // U+0036 130*16d86563SAlexander Pyhalov 0x37 0xf7 // U+0037 131*16d86563SAlexander Pyhalov 0x38 0xf8 // U+0038 132*16d86563SAlexander Pyhalov 0x39 0xf9 // U+0039 133*16d86563SAlexander Pyhalov 0x3a 0x7a // U+003A 134*16d86563SAlexander Pyhalov 0x3b 0x5e // U+003B 135*16d86563SAlexander Pyhalov 0x3c 0x4c // U+003C 136*16d86563SAlexander Pyhalov 0x3d 0x7e // U+003D 137*16d86563SAlexander Pyhalov 0x3e 0x6e // U+003E 138*16d86563SAlexander Pyhalov 0x3f 0x6f // U+003F 139*16d86563SAlexander Pyhalov 0x40 0xac // U+0040 140*16d86563SAlexander Pyhalov 0x41 0xc1 // U+0041 141*16d86563SAlexander Pyhalov 0x42 0xc2 // U+0042 142*16d86563SAlexander Pyhalov 0x43 0xc3 // U+0043 143*16d86563SAlexander Pyhalov 0x44 0xc4 // U+0044 144*16d86563SAlexander Pyhalov 0x45 0xc5 // U+0045 145*16d86563SAlexander Pyhalov 0x46 0xc6 // U+0046 146*16d86563SAlexander Pyhalov 0x47 0xc7 // U+0047 147*16d86563SAlexander Pyhalov 0x48 0xc8 // U+0048 148*16d86563SAlexander Pyhalov 0x49 0xc9 // U+0049 149*16d86563SAlexander Pyhalov 0x4a 0xd1 // U+004A 150*16d86563SAlexander Pyhalov 0x4b 0xd2 // U+004B 151*16d86563SAlexander Pyhalov 0x4c 0xd3 // U+004C 152*16d86563SAlexander Pyhalov 0x4d 0xd4 // U+004D 153*16d86563SAlexander Pyhalov 0x4e 0xd5 // U+004E 154*16d86563SAlexander Pyhalov 0x4f 0xd6 // U+004F 155*16d86563SAlexander Pyhalov 0x50 0xd7 // U+0050 156*16d86563SAlexander Pyhalov 0x51 0xd8 // U+0051 157*16d86563SAlexander Pyhalov 0x52 0xd9 // U+0052 158*16d86563SAlexander Pyhalov 0x53 0xe2 // U+0053 159*16d86563SAlexander Pyhalov 0x54 0xe3 // U+0054 160*16d86563SAlexander Pyhalov 0x55 0xe4 // U+0055 161*16d86563SAlexander Pyhalov 0x56 0xe5 // U+0056 162*16d86563SAlexander Pyhalov 0x57 0xe6 // U+0057 163*16d86563SAlexander Pyhalov 0x58 0xe7 // U+0058 164*16d86563SAlexander Pyhalov 0x59 0xe8 // U+0059 165*16d86563SAlexander Pyhalov 0x5a 0xe9 // U+005A 166*16d86563SAlexander Pyhalov 0x5b 0xae // U+005B 167*16d86563SAlexander Pyhalov 0x5c 0xbe // U+005c 168*16d86563SAlexander Pyhalov 0x5d 0x9e // U+005D 169*16d86563SAlexander Pyhalov 0x5e 0xec // U+005E 170*16d86563SAlexander Pyhalov 0x5f 0x6d // U+005F 171*16d86563SAlexander Pyhalov 0x60 0x8c // U+0060 172*16d86563SAlexander Pyhalov 0x61 0x81 // U+0061 173*16d86563SAlexander Pyhalov 0x62 0x82 // U+0062 174*16d86563SAlexander Pyhalov 0x63 0x83 // U+0063 175*16d86563SAlexander Pyhalov 0x64 0x84 // U+0064 176*16d86563SAlexander Pyhalov 0x65 0x85 // U+0065 177*16d86563SAlexander Pyhalov 0x66 0x86 // U+0066 178*16d86563SAlexander Pyhalov 0x67 0x87 // U+0067 179*16d86563SAlexander Pyhalov 0x68 0x88 // U+0068 180*16d86563SAlexander Pyhalov 0x69 0x89 // U+0069 181*16d86563SAlexander Pyhalov 0x6a 0x91 // U+006A 182*16d86563SAlexander Pyhalov 0x6b 0x92 // U+006B 183*16d86563SAlexander Pyhalov 0x6c 0x93 // U+006C 184*16d86563SAlexander Pyhalov 0x6d 0x94 // U+006D 185*16d86563SAlexander Pyhalov 0x6e 0x95 // U+006E 186*16d86563SAlexander Pyhalov 0x6f 0x96 // U+006F 187*16d86563SAlexander Pyhalov 0x70 0x97 // U+0070 188*16d86563SAlexander Pyhalov 0x71 0x98 // U+0071 189*16d86563SAlexander Pyhalov 0x72 0x99 // U+0072 190*16d86563SAlexander Pyhalov 0x73 0xa2 // U+0073 191*16d86563SAlexander Pyhalov 0x74 0xa3 // U+0074 192*16d86563SAlexander Pyhalov 0x75 0xa4 // U+0075 193*16d86563SAlexander Pyhalov 0x76 0xa5 // U+0076 194*16d86563SAlexander Pyhalov 0x77 0xa6 // U+0077 195*16d86563SAlexander Pyhalov 0x78 0xa7 // U+0078 196*16d86563SAlexander Pyhalov 0x79 0xa8 // U+0079 197*16d86563SAlexander Pyhalov 0x7a 0xa9 // U+007A 198*16d86563SAlexander Pyhalov 0x7b 0x8e // U+007B 199*16d86563SAlexander Pyhalov 0x7c 0xbb // U+007C 200*16d86563SAlexander Pyhalov 0x7d 0x9c // U+007D 201*16d86563SAlexander Pyhalov 0x7e 0xcc // U+007E 202*16d86563SAlexander Pyhalov 0x7f 0x07 // U+007F 203*16d86563SAlexander Pyhalov 204*16d86563SAlexander Pyhalov default 0x6f 205*16d86563SAlexander Pyhalov }; 206*16d86563SAlexander Pyhalov 207*16d86563SAlexander Pyhalov condition { 208*16d86563SAlexander Pyhalov inputsize <= 1; 209*16d86563SAlexander Pyhalov between 0xc0...0xfd; 210*16d86563SAlexander Pyhalov } operation { 211*16d86563SAlexander Pyhalov error EINVAL; 212*16d86563SAlexander Pyhalov }; 213*16d86563SAlexander Pyhalov 214*16d86563SAlexander Pyhalov condition { 215*16d86563SAlexander Pyhalov inputsize >= 2; 216*16d86563SAlexander Pyhalov between 0xc080...0xdfbf; 217*16d86563SAlexander Pyhalov } map { 218*16d86563SAlexander Pyhalov 0xc280 0x20 // U+0080 219*16d86563SAlexander Pyhalov 0xc281 0x21 // U+0081 220*16d86563SAlexander Pyhalov 0xc282 0x22 // U+0082 221*16d86563SAlexander Pyhalov 0xc283 0x23 // U+0083 222*16d86563SAlexander Pyhalov 0xc284 0x24 // U+0084 223*16d86563SAlexander Pyhalov 0xc285 0x15 // U+0085 224*16d86563SAlexander Pyhalov 0xc286 0x06 // U+0086 225*16d86563SAlexander Pyhalov 0xc287 0x17 // U+0087 226*16d86563SAlexander Pyhalov 0xc288 0x28 // U+0088 227*16d86563SAlexander Pyhalov 0xc289 0x29 // U+0089 228*16d86563SAlexander Pyhalov 0xc28a 0x2a // U+008A 229*16d86563SAlexander Pyhalov 0xc28b 0x2b // U+008B 230*16d86563SAlexander Pyhalov 0xc28c 0x2c // U+008C 231*16d86563SAlexander Pyhalov 0xc28d 0x09 // U+008D 232*16d86563SAlexander Pyhalov 0xc28e 0x0a // U+008E 233*16d86563SAlexander Pyhalov 0xc28f 0x1b // U+008F 234*16d86563SAlexander Pyhalov 0xc290 0x30 // U+0090 235*16d86563SAlexander Pyhalov 0xc291 0x31 // U+0091 236*16d86563SAlexander Pyhalov 0xc292 0x1a // U+0092 237*16d86563SAlexander Pyhalov 0xc293 0x33 // U+0093 238*16d86563SAlexander Pyhalov 0xc294 0x34 // U+0094 239*16d86563SAlexander Pyhalov 0xc295 0x35 // U+0095 240*16d86563SAlexander Pyhalov 0xc296 0x36 // U+0096 241*16d86563SAlexander Pyhalov 0xc297 0x08 // U+0097 242*16d86563SAlexander Pyhalov 0xc298 0x38 // U+0098 243*16d86563SAlexander Pyhalov 0xc299 0x39 // U+0099 244*16d86563SAlexander Pyhalov 0xc29a 0x3a // U+009A 245*16d86563SAlexander Pyhalov 0xc29b 0x3b // U+009B 246*16d86563SAlexander Pyhalov 0xc29c 0x04 // U+009C 247*16d86563SAlexander Pyhalov 0xc29d 0x14 // U+009D 248*16d86563SAlexander Pyhalov 0xc29e 0x3e // U+009E 249*16d86563SAlexander Pyhalov 0xc29f 0xff // U+009F 250*16d86563SAlexander Pyhalov 0xc2a0 0x41 // U+00A0 251*16d86563SAlexander Pyhalov 0xc2a1 0xaa // U+00A1 252*16d86563SAlexander Pyhalov 0xc2a2 0xb0 // U+00A2 253*16d86563SAlexander Pyhalov 0xc2a3 0xb1 // U+00A3 254*16d86563SAlexander Pyhalov 0xc2a4 0x9f // U+00A4 255*16d86563SAlexander Pyhalov 0xc2a5 0xb2 // U+00A5 256*16d86563SAlexander Pyhalov 0xc2a6 0x6a // U+00A6 257*16d86563SAlexander Pyhalov 0xc2a7 0xb5 // U+00A7 258*16d86563SAlexander Pyhalov 0xc2a8 0xbd // U+00A8 259*16d86563SAlexander Pyhalov 0xc2a9 0xb4 // U+00A9 260*16d86563SAlexander Pyhalov 0xc2aa 0x9a // U+00AA 261*16d86563SAlexander Pyhalov 0xc2ab 0x8a // U+00AB 262*16d86563SAlexander Pyhalov 0xc2ac 0xba // U+00AC 263*16d86563SAlexander Pyhalov 0xc2ad 0xca // U+00AD 264*16d86563SAlexander Pyhalov 0xc2ae 0xaf // U+00AE 265*16d86563SAlexander Pyhalov 0xc2af 0xbc // U+00AF 266*16d86563SAlexander Pyhalov 0xc2b0 0x90 // U+00B0 267*16d86563SAlexander Pyhalov 0xc2b1 0x8f // U+00B1 268*16d86563SAlexander Pyhalov 0xc2b2 0xea // U+00B2 269*16d86563SAlexander Pyhalov 0xc2b3 0xfa // U+00B3 270*16d86563SAlexander Pyhalov 0xc2b4 0xe0 // U+00B4 271*16d86563SAlexander Pyhalov 0xc2b5 0xa0 // U+00B5 272*16d86563SAlexander Pyhalov 0xc2b6 0xb6 // U+00B6 273*16d86563SAlexander Pyhalov 0xc2b7 0xb3 // U+00B7 274*16d86563SAlexander Pyhalov 0xc2b8 0x9d // U+00B8 275*16d86563SAlexander Pyhalov 0xc2b9 0xda // U+00B9 276*16d86563SAlexander Pyhalov 0xc2ba 0x9b // U+00BA 277*16d86563SAlexander Pyhalov 0xc2bb 0x8b // U+00BB 278*16d86563SAlexander Pyhalov 0xc2bc 0xb7 // U+00BC 279*16d86563SAlexander Pyhalov 0xc2bd 0xb8 // U+00BD 280*16d86563SAlexander Pyhalov 0xc2be 0xb9 // U+00BE 281*16d86563SAlexander Pyhalov 0xc2bf 0xab // U+00BF 282*16d86563SAlexander Pyhalov 0xc380 0x64 // U+00C0 283*16d86563SAlexander Pyhalov 0xc381 0x65 // U+00C1 284*16d86563SAlexander Pyhalov 0xc382 0x62 // U+00C2 285*16d86563SAlexander Pyhalov 0xc383 0x66 // U+00C3 286*16d86563SAlexander Pyhalov 0xc384 0x63 // U+00C4 287*16d86563SAlexander Pyhalov 0xc385 0x67 // U+00C5 288*16d86563SAlexander Pyhalov 0xc386 0x5a // U+00C6 289*16d86563SAlexander Pyhalov 0xc387 0x68 // U+00C7 290*16d86563SAlexander Pyhalov 0xc388 0x74 // U+00C8 291*16d86563SAlexander Pyhalov 0xc389 0x71 // U+00C9 292*16d86563SAlexander Pyhalov 0xc38a 0x72 // U+00CA 293*16d86563SAlexander Pyhalov 0xc38b 0x73 // U+00CB 294*16d86563SAlexander Pyhalov 0xc38c 0x78 // U+00CC 295*16d86563SAlexander Pyhalov 0xc38d 0x75 // U+00CD 296*16d86563SAlexander Pyhalov 0xc38e 0x76 // U+00CE 297*16d86563SAlexander Pyhalov 0xc38f 0x77 // U+00CF 298*16d86563SAlexander Pyhalov 0xc390 0x7c // U+00D0 299*16d86563SAlexander Pyhalov 0xc391 0x69 // U+00D1 300*16d86563SAlexander Pyhalov 0xc392 0xed // U+00D2 301*16d86563SAlexander Pyhalov 0xc393 0xee // U+00D3 302*16d86563SAlexander Pyhalov 0xc394 0xeb // U+00D4 303*16d86563SAlexander Pyhalov 0xc395 0xef // U+00D5 304*16d86563SAlexander Pyhalov 0xc396 0x5f // U+00D6 305*16d86563SAlexander Pyhalov 0xc397 0xbf // U+00D7 306*16d86563SAlexander Pyhalov 0xc398 0x80 // U+00D8 307*16d86563SAlexander Pyhalov 0xc399 0xfd // U+00D9 308*16d86563SAlexander Pyhalov 0xc39a 0xfe // U+00DA 309*16d86563SAlexander Pyhalov 0xc39b 0xfb // U+00DB 310*16d86563SAlexander Pyhalov 0xc39c 0xfc // U+00DC 311*16d86563SAlexander Pyhalov 0xc39d 0xad // U+00DD 312*16d86563SAlexander Pyhalov 0xc39e 0x4a // U+00DE 313*16d86563SAlexander Pyhalov 0xc39f 0x59 // U+00DF 314*16d86563SAlexander Pyhalov 0xc3a0 0x44 // U+00E0 315*16d86563SAlexander Pyhalov 0xc3a1 0x45 // U+00E1 316*16d86563SAlexander Pyhalov 0xc3a2 0x42 // U+00E2 317*16d86563SAlexander Pyhalov 0xc3a3 0x46 // U+00E3 318*16d86563SAlexander Pyhalov 0xc3a4 0x43 // U+00E4 319*16d86563SAlexander Pyhalov 0xc3a5 0x47 // U+00E5 320*16d86563SAlexander Pyhalov 0xc3a6 0xd0 // U+00E6 321*16d86563SAlexander Pyhalov 0xc3a7 0x48 // U+00E7 322*16d86563SAlexander Pyhalov 0xc3a8 0x54 // U+00E8 323*16d86563SAlexander Pyhalov 0xc3a9 0x51 // U+00E9 324*16d86563SAlexander Pyhalov 0xc3aa 0x52 // U+00EA 325*16d86563SAlexander Pyhalov 0xc3ab 0x53 // U+00EB 326*16d86563SAlexander Pyhalov 0xc3ac 0x58 // U+00EC 327*16d86563SAlexander Pyhalov 0xc3ad 0x55 // U+00ED 328*16d86563SAlexander Pyhalov 0xc3ae 0x56 // U+00EE 329*16d86563SAlexander Pyhalov 0xc3af 0x57 // U+00EF 330*16d86563SAlexander Pyhalov 0xc3b0 0x79 // U+00F0 331*16d86563SAlexander Pyhalov 0xc3b1 0x49 // U+00F1 332*16d86563SAlexander Pyhalov 0xc3b2 0xcd // U+00F2 333*16d86563SAlexander Pyhalov 0xc3b3 0xce // U+00F3 334*16d86563SAlexander Pyhalov 0xc3b4 0xcb // U+00F4 335*16d86563SAlexander Pyhalov 0xc3b5 0xcf // U+00F5 336*16d86563SAlexander Pyhalov 0xc3b6 0xa1 // U+00F6 337*16d86563SAlexander Pyhalov 0xc3b7 0xe1 // U+00F7 338*16d86563SAlexander Pyhalov 0xc3b8 0x70 // U+00F8 339*16d86563SAlexander Pyhalov 0xc3b9 0xdd // U+00F9 340*16d86563SAlexander Pyhalov 0xc3ba 0xde // U+00FA 341*16d86563SAlexander Pyhalov 0xc3bb 0xdb // U+00FB 342*16d86563SAlexander Pyhalov 0xc3bc 0xdc // U+00FC 343*16d86563SAlexander Pyhalov 0xc3bd 0x8d // U+00FD 344*16d86563SAlexander Pyhalov 0xc3be 0xc0 // U+00FE 345*16d86563SAlexander Pyhalov 0xc3bf 0xdf // U+00FF 346*16d86563SAlexander Pyhalov 347*16d86563SAlexander Pyhalov default 0x6f 348*16d86563SAlexander Pyhalov }; 349*16d86563SAlexander Pyhalov 350*16d86563SAlexander Pyhalov condition { 351*16d86563SAlexander Pyhalov inputsize <= 2; 352*16d86563SAlexander Pyhalov between 0xe0...0xfd; 353*16d86563SAlexander Pyhalov } operation { 354*16d86563SAlexander Pyhalov error EINVAL; 355*16d86563SAlexander Pyhalov }; 356*16d86563SAlexander Pyhalov 357*16d86563SAlexander Pyhalov condition { 358*16d86563SAlexander Pyhalov inputsize >= 3; 359*16d86563SAlexander Pyhalov between 0xe08080...0xecbfbf, 0xed8080...0xed9fbf, 0xee8080...0xefbfbf; 360*16d86563SAlexander Pyhalov } operation { 361*16d86563SAlexander Pyhalov if (input == 0xefbfbe || input == 0xefbfbf) { 362*16d86563SAlexander Pyhalov error EILSEQ; 363*16d86563SAlexander Pyhalov } else if (input == 0xe282ac) { // euro sign? 364*16d86563SAlexander Pyhalov output = 0x9f; 365*16d86563SAlexander Pyhalov } else { 366*16d86563SAlexander Pyhalov output = 0x6f; 367*16d86563SAlexander Pyhalov }; 368*16d86563SAlexander Pyhalov discard 3; 369*16d86563SAlexander Pyhalov }; 370*16d86563SAlexander Pyhalov 371*16d86563SAlexander Pyhalov condition { 372*16d86563SAlexander Pyhalov inputsize <= 3; 373*16d86563SAlexander Pyhalov between 0xf0...0xfd; 374*16d86563SAlexander Pyhalov } operation { 375*16d86563SAlexander Pyhalov error EINVAL; 376*16d86563SAlexander Pyhalov }; 377*16d86563SAlexander Pyhalov 378*16d86563SAlexander Pyhalov condition { 379*16d86563SAlexander Pyhalov inputsize >= 4; 380*16d86563SAlexander Pyhalov between 0xf0808080...0xf7bfbfbf; 381*16d86563SAlexander Pyhalov } operation { 382*16d86563SAlexander Pyhalov output = 0x6f; 383*16d86563SAlexander Pyhalov discard 4; 384*16d86563SAlexander Pyhalov }; 385*16d86563SAlexander Pyhalov 386*16d86563SAlexander Pyhalov condition { 387*16d86563SAlexander Pyhalov inputsize <= 4; 388*16d86563SAlexander Pyhalov between 0xf8...0xfd; 389*16d86563SAlexander Pyhalov } operation { 390*16d86563SAlexander Pyhalov error EINVAL; 391*16d86563SAlexander Pyhalov }; 392*16d86563SAlexander Pyhalov 393*16d86563SAlexander Pyhalov condition { 394*16d86563SAlexander Pyhalov inputsize >= 5; 395*16d86563SAlexander Pyhalov between 0xf880808080...0xfbbfbfbfbf; 396*16d86563SAlexander Pyhalov } operation { 397*16d86563SAlexander Pyhalov output = 0x6f; 398*16d86563SAlexander Pyhalov discard 5; 399*16d86563SAlexander Pyhalov }; 400*16d86563SAlexander Pyhalov 401*16d86563SAlexander Pyhalov condition { 402*16d86563SAlexander Pyhalov inputsize <= 5; 403*16d86563SAlexander Pyhalov between 0xfc...0xfd; 404*16d86563SAlexander Pyhalov } operation { 405*16d86563SAlexander Pyhalov error EINVAL; 406*16d86563SAlexander Pyhalov }; 407*16d86563SAlexander Pyhalov 408*16d86563SAlexander Pyhalov condition { 409*16d86563SAlexander Pyhalov inputsize >= 6; 410*16d86563SAlexander Pyhalov between 0xfc8080808080...0xfdbfbfbfbfbf; 411*16d86563SAlexander Pyhalov } operation { 412*16d86563SAlexander Pyhalov output = 0x6f; 413*16d86563SAlexander Pyhalov discard 6; 414*16d86563SAlexander Pyhalov }; 415*16d86563SAlexander Pyhalov 416*16d86563SAlexander Pyhalov }; 417*16d86563SAlexander Pyhalov} 418