/* ckmiso.h -- mapping between 8859/1 and Apple format */ /* March 15, 1989 Paul Placeway */ /* Copyright (C) 1985, 1992, Trustees of Columbia University in the City of New York. Permission is granted to any individual or institution to use this software as long as it is not sold for profit. This copyright notice must be retained. This software may not be included in commercial products without written permission of Columbia University. */ /* * Note that the mapping is incomplete both ways. This poses quite a * problem: do we just leave the blank ones out, or do we cross refrence * unrelated characters? If we do the latter, how do we tell the difference * between like and unlike glyphs? */ #define ISO1toApple(c) (((((c) & 0xff) < 0x80) ? ((c) & 0xff) : \ (_l1toa[((c) & 0xff) - 0x80])) & 0xff) #define AppletoISO1(c) (((((c) & 0xff) < 0x80) ? ((c) & 0xff) : \ (_atol1[((c) & 0xff) - 0x80])) & 0xff) char _l1toa[128] = { /* these are more control characters in all 8859 char sets */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xCA, /* non-printing space */ 0xC1, /* inverted ! */ 0xA2, /* cent */ 0xA3, /* sterling */ 0xDB, /* generic curency */ 0xB4, /* yen */ 0, /* broken vert. bar */ 0xA4, /* section */ 0xAC, /* dieresis (AKA umlaut) */ 0xA9, /* copyright ( (C) ) */ 0xBB, /* feminine ordinal (underlined superscript a) */ 0xC7, /* left guillemot (like << ) */ 0xC2, /* logical not */ 0xD0 /* maybe */, /* en dash */ 0xA8, /* registered ( (R) ) */ 0xF8, /* macron */ 0xA1, /* superscript ring */ 0xB1, /* plus minus */ 0, /* superscript 2 */ 0, /* superscript 3 */ 0xAB, /* acute accent */ 0xB5, /* greek lowercase mu */ 0xA6, /* paragraph */ 0xA5, /* bullet */ 0xFC, /* cedilla */ 0, /* superscript 1 */ 0xBC, /* masculine ordinal (underlined superscript o) */ 0xC8, /* right guillemot (like >> ) */ 0, /* 1/4 */ 0, /* 1/2 */ 0, /* 3/4 */ 0xC0, /* inverted ? */ 0xCB, /* A grave */ 0xE7, /* A accute */ 0xE5, /* A circumflex */ 0xCC, /* A tilde */ 0x80, /* A dieresis */ 0x81, /* A ring */ 0xAE, /* AE */ 0x82, /* C cedilla */ 0xE9, /* E grave */ 0x83, /* E accute */ 0xE6, /* E circumflex */ 0xE8, /* E dieresis */ 0xED, /* I grave */ 0xEA, /* I accute */ 0xEB, /* I circumflex */ 0xEC, /* I dieresis */ 0, /* Uppercase Eth */ 0x84, /* N tilde */ 0xF1, /* O grave */ 0xEE, /* O accute */ 0xEF, /* O circumflex */ 0xCD, /* O tilde */ 0x85, /* O dieresis */ 0, /* X mark */ 0xAF, /* O slash */ 0xF4, /* U grave */ 0xF2, /* U accute */ 0xF3, /* U circumflex */ 0x86, /* U dieresis */ 0, /* Y accute */ 0, /* Uppercase Thorn */ 0xA7, /* Es-sed (German double s) */ 0x88, /* a grave */ 0x87, /* a accute */ 0x89, /* a circumflex */ 0x8B, /* a tilde */ 0x8A, /* a dieresis */ 0x8C, /* a ring */ 0xBE, /* ae */ 0x8D, /* c cedilla */ 0x8F, /* e grave */ 0x8E, /* e accute */ 0x90, /* e circumflex */ 0x91, /* e dieresis */ 0x93, /* i grave */ 0x92, /* i accute */ 0x94, /* i circumflex */ 0x95, /* i dieresis */ 0, /* lowercase eth */ 0x96, /* n tilde */ 0x98, /* o grave */ 0x97, /* o accute */ 0x99, /* o circumflex */ 0x9B, /* o tilde */ 0x9A, /* o dieresis */ 0xD6, /* divide */ 0xBF, /* o slash */ 0x9D, /* u grave */ 0x9C, /* u accute */ 0x9E, /* u circumflex */ 0x9F, /* u dieresis */ 0, /* y accute */ 0, /* lowercase thorn */ 0xD8 /* y dieresis */ }; char _atol1[128] = { 0xC4, /* A dieresis */ 0xC5, /* A ring */ 0xC7, /* C cedilla */ 0xC9, /* E accute */ 0xD1, /* N tilde */ 0xD6, /* O dieresis */ 0xDC, /* U dieresis */ 0xE1, /* a accute */ 0xE0, /* a grave */ 0xE2, /* a circumflex */ 0xE4, /* a dieresis */ 0xE3, /* a tilde */ 0xE5, /* a ring */ 0xE7, /* c cedilla */ 0xE9, /* e accute */ 0xE8, /* e grave */ 0xEA, /* e circumflex */ 0xEB, /* e dieresis */ 0xED, /* i accute */ 0xEC, /* i grave */ 0xEE, /* i circumflex */ 0xEF, /* i dieresis */ 0xF1, /* n tilde */ 0xF3, /* o accute */ 0xF2, /* o grave */ 0xF4, /* o circumflex */ 0xF6, /* o dieresis */ 0xF5, /* o tilde */ 0xFA, /* u accute */ 0xF9, /* u grave */ 0xFB, /* u circumflex */ 0xFC, /* u dieresis */ 0, /* dagger */ 0xB0, /* superscript ring */ 0xA2, /* cent */ 0xA3, /* sterling */ 0xA7, /* section */ 0xB7, /* bullet */ 0xB6, /* paragraph */ 0xDF, /* Es-sed (German double s) */ 0xAE, /* registered ( (R) ) */ 0xA9, /* copyright ( (C) ) */ 0, /* trade mark */ 0xB4, /* acute accent */ 0xA8, /* dieresis (AKA umlaut) */ 0, /* not equal */ 0xC6, /* AE */ 0xD8, /* O slash */ 0, /* infinity */ 0xB1, /* plus minus */ 0, /* less than or equal to */ 0, /* greater than or equal to */ 0xA5, /* yen */ 0xB5, /* greek lowercase mu */ 0, /* partial */ 0, /* Uppercase Sigma (Summation) */ 0, /* Uppercase Pi (Power) */ 0, /* lowercase pi */ 0, /* integral */ 0xAA, /* feminine ordinal (underlined superscript a) */ 0xBA, /* masculine ordinal (underlined superscript o) */ 0, /* Uppercase Omega */ 0xE6, /* ae */ 0xF8, /* o slash */ 0xBF, /* inverted ? */ 0xA1, /* inverted ! */ 0xAC, /* logical not */ 0, /* radical (square root) */ 0, /* florin */ 0, /* approx equal */ 0, /* Uppercase Delta */ 0xAB, /* left guillemot (like << ) */ 0xBB, /* right guillemot (like >> ) */ 0, /* elipsis (...) */ 0xA0, /* non-printing space */ 0xC0, /* A grave */ 0xC3, /* A tilde */ 0xD5, /* O tilde */ 0, /* OE */ 0, /* oe */ 0xAD /* maybe */, /* en dash */ 0, /* em dash */ 0, /* left doublequote ( `` ) */ 0, /* right doublequote ( '' ) */ 0, /* left singlequote ( ` ) */ 0, /* right singlequote ( ' ) */ 0xF7, /* divide */ 0, /* lozenge (open diamond) */ 0xFF, /* y dieresis */ 0, /* Y dieresis */ 0, /* divide (a / with less slope) */ 0xA4, /* generic curency */ 0, /* single left guil (like < ) */ 0, /* single left guil (like > ) */ 0, /* fi */ 0, /* fl */ 0, /* double dagger */ 0, /* centered (small) dot */ 0, /* baseline single close quote */ 0, /* baseline double close quote */ 0, /* per thousand */ 0xC2, /* A circumflex */ 0xCA, /* E circumflex */ 0xC1, /* A accute */ 0xCB, /* E dieresis */ 0xC8, /* E grave */ 0xCD, /* I accute */ 0xCE, /* I circumflex */ 0xCF, /* I dieresis */ 0xCC, /* I grave */ 0xD3, /* O accute */ 0xD4, /* O circumflex */ 0, /* (closed) Apple */ 0xD2, /* O grave */ 0xDA, /* U accute */ 0xDB, /* U circumflex */ 0xD9, /* U grave */ 0, /* dotless i */ 0, /* circumflex */ 0, /* tilde */ 0xAF, /* macron */ 0, /* breve */ 0, /* dot accent */ 0, /* ring accent */ 0xB8, /* cedilla */ 0, /* Hungarian umlaut */ 0, /* ogonek */ 0 /* caron */ };