+++ /dev/null
-/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License"). You may not use this file except in compliance with the
- * License. Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- *
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-/*
- * Copyright 1990, NeXT, Inc.
- */
-
-#include "NXCType.h"
-#define FIXSIGNEDCHAR(i) if ((i & 0xFFFFFF80) == 0xFFFFFF80) i &= 0x000000FF
-
-unsigned char *
-NXToAscii(c)
- unsigned int c;
-{
- static unsigned char woops[] = " ";
-
- FIXSIGNEDCHAR(c);
- if (c < 128) { /* handle stuff already ASCII */
- woops[0] = c;
- return (unsigned char *) woops;
- }
- switch (c) {
- case 128: /* Figspace */
- return (unsigned char *) " ";
- case 129: /* Agrave */
- case 130: /* Aacute */
- case 131: /* Acircumflex */
- case 132: /* Atilde */
- case 133: /* Adieresis */
- case 134: /* Aring */
- return (unsigned char *) "A";
- case 135: /* Ccedilla */
- return (unsigned char *) "C";
- case 136: /* Egrave */
- case 137: /* Eacute */
- case 138: /* Ecircumflex */
- case 139: /* Edieresis */
- return (unsigned char *) "E";
- case 140: /* Igrave */
- case 141: /* Iacute */
- case 142: /* Icircumflex */
- case 143: /* Idieresis */
- return (unsigned char *) "I";
- case 145: /* Ntilde */
- return (unsigned char *) "N";
- case 146: /* Ograve */
- case 147: /* Oacute */
- case 148: /* Ocircumflex */
- case 149: /* Otilde */
- case 150: /* Odieresis */
- case 233: /* Oslash */
- return (unsigned char *) "O";
- case 151: /* Ugrave */
- case 152: /* Uacute */
- case 153: /* Ucircumflex */
- case 154: /* Udieresis */
- return (unsigned char *) "U";
- case 155: /* Yacute */
- return (unsigned char *) "Y";
- case 230: /* eth */
- case 144: /* Eth */
- return (unsigned char *) "TH";
- case 156: /* Thorn */
- case 252: /* thorn */
- return (unsigned char *) "th";
-
- case 174: /* fi */
- return (unsigned char *) "fi";
- case 175: /* fl */
- return (unsigned char *) "fl";
-
- case 213: /* agrave */
- case 214: /* aacute */
- case 215: /* acircumflex */
- case 216: /* atilde */
- case 217: /* adieresis */
- case 218: /* aring */
- return (unsigned char *) "a";
- case 219: /* ccedilla */
- return (unsigned char *) "c";
- case 220: /* egrave */
- case 221: /* eacute */
- case 222: /* ecircumflex */
- case 223: /* edieresis */
- return (unsigned char *) "e";
- case 225: /* AE */
- return (unsigned char *) "AE";
- case 224: /* igrave */
- case 226: /* iacute */
- case 228: /* icircumflex */
- case 229: /* idieresis */
- return (unsigned char *) "i";
- case 231: /* ntilde */
- return (unsigned char *) "n";
- case 232: /* Lslash */
- return (unsigned char *) "L";
- case 234: /* OE */
- return (unsigned char *) "OE";
- case 236: /* ograve */
- case 237: /* oacute */
- case 238: /* ocircumflex */
- case 239: /* otilde */
- case 240: /* odieresis */
- case 249: /* oslash */
- return (unsigned char *) "o";
- case 241: /* ae */
- return (unsigned char *) "ae";
- case 242: /* ugrave */
- case 243: /* uacute */
- case 244: /* ucircumflex */
- case 246: /* udieresis */
- return (unsigned char *) "u";
- case 245: /* dotlessi */
- return (unsigned char *) "i";
- case 247: /* yacute */
- case 253: /* ydieresis */
- return (unsigned char *) "y";
- case 248: /* lslash */
- return (unsigned char *) "l";
- case 250: /* oe */
- return (unsigned char *) "oe";
- case 251: /* germandbls */
- return (unsigned char *) "ss";
- /*
- * non-letter cases:
- */
- case 158: /* multiply */
- return (unsigned char *) "x";
- case 159: /* divide */
- return (unsigned char *) "/";
-
- case 161: /* exclamdown */
- return (unsigned char *) "!";
- case 169: /* quotesingle */
- return (unsigned char *) "'";
-
- case 170: /* quotedblleft */
- case 186: /* quotedblright */
- case 185: /* quotedblbase */
- return (unsigned char *) "\"";
- case 171: /* guillemotleft */
- return (unsigned char *) "<<";
- case 187: /* guillemotright */
- return (unsigned char *) ">>";
- case 184: /* quotesinglbase */
- return (unsigned char *) "'";
- case 172: /* guilsinglleft */
- return (unsigned char *) "<";
- case 173: /* guilsinglright */
- return (unsigned char *) ">";
- case 180: /* periodcentered */
- return (unsigned char *) ".";
- case 181: /* brokenbar */
- return (unsigned char *) "|";
- case 183: /* bullet */
- return (unsigned char *) "*";
- case 188: /* ellipsis */
- return (unsigned char *) "...";
- case 191: /* questiondown */
- return (unsigned char *) "?";
- case 192: /* onesuperior */
- return (unsigned char *) "1";
- case 201: /* twosuperior */
- return (unsigned char *) "2";
- case 204: /* threesuperior */
- return (unsigned char *) "3";
- case 208: /* emdash */
- return (unsigned char *) "--";
- case 209: /* plusminus */
- return (unsigned char *) "+-";
- case 210: /* onequarter */
- return (unsigned char *) "1/4";
- case 211: /* onehalf */
- return (unsigned char *) "1/2";
- case 212: /* threequarters */
- return (unsigned char *) "3/4";
- case 227: /* ordfeminine */
- return (unsigned char *) "a";
- case 235: /* ordmasculine */
- return (unsigned char *) "o";
- case 157: /* mu */
- return (unsigned char *) "u";
- case 160: /* copyright */
- return (unsigned char *) "(C)";
- case 163: /* sterling */
- return (unsigned char *) "L";
- case 164: /* fraction */
- return (unsigned char *) "/";
- case 165: /* yen */
- return (unsigned char *) "Y";
- case 166: /* florin */
- return (unsigned char *) "f";
- case 176: /* registered */
- return (unsigned char *) "(R)";
- case 190: /* logicalnot */
- case 177: /* endash */
- return (unsigned char *) "-";
- case 178: /* dagger */
- return (unsigned char *) "+";
- case 179: /* daggerdbl */
- return (unsigned char *) "++";
- case 189: /* perthousand */
- return (unsigned char *) "0/00";
- case 193: /* grave */
- return (unsigned char *) "`";
- case 194: /* acute */
- return (unsigned char *) "'";
- case 195: /* circumflex */
- return (unsigned char *) "^";
- case 196: /* tilde */
- return (unsigned char *) "~";
-
- /*
- * Default & fallback cases:
- */
- case 162: /* cent */
- case 167: /* section */
- case 168: /* currency */
- case 182: /* paragraph */
- case 197: /* macron */
- case 198: /* breve */
- case 199: /* dotaccent */
- case 200: /* dieresis */
- case 202: /* ring */
- case 203: /* cedilla */
- case 205: /* hungarumlaut */
- case 206: /* ogonek */
- case 207: /* caron */
- default:
- return (unsigned char *) "_";
- }
-}