123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these libraries and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /* $TOG: AsciiSpc.c /main/6 1999/02/24 12:04:30 mgreess $ */
- /************************************<+>*************************************
- ****************************************************************************
- **
- ** File: AsciiSpc.c
- **
- ** Project: Cde Help Library
- **
- ** Description: This file resolves an <spc> spec into an ascii
- ** representation of the special character.
- **
- ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 Hewlett-Packard Company
- **
- ** (c) Copyright 1993, 1994 Hewlett-Packard Company
- ** (c) Copyright 1993, 1994 International Business Machines Corp.
- ** (c) Copyright 1993, 1994 Sun Microsystems, Inc.
- ** (c) Copyright 1993, 1994 Novell, Inc.
- ****************************************************************************
- ************************************<+>*************************************/
- /*
- * system includes
- */
- #include <string.h>
- /*
- * private includes
- */
- #include "AsciiSpcI.h"
- #ifdef NLS16
- #endif
- /******** Private Function Declarations ********/
- /******** End Public Function Declarations ********/
- /******************************************************************************
- *
- * Private variables and defines.
- *
- *****************************************************************************/
- typedef struct {
- const char *symbol;
- const char *spc_string;
- } SpecialSymbolTable;
- static SpecialSymbolTable SpcTable[] =
- {
- /*
- * comment out the entries that map to a blank.
- * The last entry will catch them and map them to a blank
- * anyway. This will shorten the table by quite a bit.
- */
- /*{"[aacute]", " " }, *ISOlat1, small a, acute accent */
- /*{"[acirc ]", " " }, *ISOlat1, small a, circumflex */
- /*{"[aelig ]", " " }, *ISOlat1, small ae diphthong */
- /*{"[agrave]", " " }, *ISOlat1, small a, grave accent */
- /*{"[alpha ]", " " }, *ISOgrk3, Greek, small alpha */
- /*{"[aleph ]", " " }, *ISOtech, aleph, Hebrews */
- {"[amp ]", "&" }, /*ISOnum , ampersand */
- {"[and ]", "^" }, /*ISOtech, wedge, logical and */
- /*{"[ang ]", " " }, *ISOamso, angle */
- /*{"[angst ]", " " }, *ISOtech, Angstrom, cap A, ring */
- {"[ap ]", "~=" }, /*ISOtech, approximately equal */
- {"[apos ]", "'" }, /*ISOnum , apostrophe */
- /*{"[aring ]", " " }, *ISOlat1, small a, ring */
- {"[ast ]", "*" }, /*ISOnum , asterisk */
- /*{"[atilde]", " " }, *ISOlat1, small a, tilde */
- /*{"[auml ]", " " }, *ISOlat1, small a, umlaut mark */
- /*{"[beta ]", " " }, *ISOgrk3, Greek, small beta */
- /*{"[blank ]", " " }, *ISOpub , significant blank */
- /*{"[bottom]", " " }, *ISOtech, bottom symbol */
- {"[bsol ]", "\\" }, /*ISOnum , backslash, rev solidus*/
- {"[bull ]", "*" }, /*ISOpub , round bullet,filled */
- /*{"[brvbar]", "|" }, *ISOnum , broken vertical bar */
- /*{"[cap ]", " " }, *ISOtech, intersection */
- /*{"[ccedil]", " " }, *ISOlat1, small c, cedilla */
- /*{"[cent ]", " " }, *ISOnum , cent sign */
- /*{"[chi ]", " " }, *ISOgrk3, Greek, small chi */
- /*{"[clubs ]", " " }, *ISOpub , clubs suit symbol */
- {"[colon ]", ":" }, /*ISOnum , colon */
- {"[comma ]", "," }, /*ISOnum , comma */
- {"[commat]", "@" }, /*ISOnum , commercial at */
- /*{"[cong ]", " " }, *ISOtech, congruent with */
- /*{"[copy ]", " " }, *ISOnum , copyright symbol */
- {"[cup ]", "U" }, /*ISOtech, union or logical sum */
- /*{"[curren]", " " }, *ISOnum , general currency sign */
- /*{"[darr ]", " " }, *ISOnum , downward arrow */
- /*{"[dArr ]", " " }, *ISOamsa, down double arrow */
- {"[dash ]", "-" }, /*ISOpub , dash */
- /*{"[deg ]", " " }, *ISOnum , degree sign */
- /*{"[delta ]", " " }, *ISOgrk3, Greek, small delta */
- /*{"[diams ]", " " }, *ISOpub , diamond suit symbol */
- {"[divide]", "/" }, /*ISOnum , divide sign */
- {"[dollar]", "$" }, /*ISOnum , dollar sign */
- /*{"[eacute]", " " }, *ISOlat1, small e, acute accent */
- /*{"[ecirc ]", " " }, *ISOlat1, small e, circumflex */
- /*{"[egrave]", " " }, *ISOlat1, small e, grave accent */
- /*{"[empty ]", " " }, *ISOamso, empty string, o/slash */
- /*{"[epsiv ]", " " }, *ISOgrk3, Greek,sm epsilon, var */
- {"[equals]", "=" }, /*ISOnum , equals sign */
- /*{"[equiv ]", " " }, *ISOtech, identical with */
- /*{"[eta ]", " " }, *ISOgrk3, Greek, small eta */
- /*{"[eth ]", " " }, *ISOlat1, small eth, Icelandic */
- /*{"[euml ]", " " }, *ISOlat1, small e, umlaut mark */
- {"[excl ]", "!" }, /*ISOnum , exclamation mark */
- /*{"[exist ]", " " }, *ISOtech, at least one exists */
- /*{"[forall]", " " }, *ISOtech, for all */
- {"[frac12]", "1/2" }, /*ISOnum , fraction one-half */
- {"[frac13]", "1/3" }, /*ISOnum , fraction one-third */
- {"[frac14]", "1/4" }, /*ISOnum , fraction one-quarter */
- {"[frac15]", "1/5" }, /*ISOnum , fraction one-fifth */
- {"[frac16]", "1/6" }, /*ISOnum , fraction one-sixth */
- {"[frac18]", "1/8" }, /*ISOnum , fraction one-eight */
- {"[frac23]", "2/3" }, /*ISOnum , fraction two-thirds */
- {"[frac25]", "2/5" }, /*ISOnum , fraction two-fifths */
- {"[frac34]", "3/4" }, /*ISOnum , fraction three-quarter*/
- {"[frac35]", "3/5" }, /*ISOnum , fraction three-fifths */
- {"[frac38]", "3/8" }, /*ISOnum , fraction three-eights */
- {"[frac45]", "4/5" }, /*ISOnum , fraction four-fifths */
- {"[frac56]", "5/6" }, /*ISOnum , fraction five-sixths */
- {"[frac58]", "5/8" }, /*ISOnum , fraction five-eights */
- {"[frac78]", "7/8" }, /*ISOnum , fraction seven-eights */
- /*{"[gamma ]", " " }, *ISOgrk3, Greek, small gamma */
- {"[ge ]", ">=" }, /*ISOtech, greater-than-or-equal */
- {"[gt ]", ">" }, /*ISOnum , greater than sign */
- {"[half ]", "1/2" }, /*ISOnum , fraction one-half */
- {"[harr ]", "<-->" }, /*ISOamsa, left & right arrow */
- {"[hArr ]", "<<==>>" }, /*ISOamsa, l & r double arrow */
- /*{"[hearts]", " " }, *ISOpub , hearts suit symbol */
- {"[hellip]", "..." }, /*ISOpub , ellipsis(horizontal) */
- {"[horbar]", "--" }, /*ISOnum , horizontal bar */
- {"[hyphen]", "-" }, /*ISOnum , hyphen */
- /*{"[iacute]", " " }, *ISOlat1, small i, acute accent */
- /*{"[icirc ]", " " }, *ISOlat1, small i, circumflex */
- /*{"[iexcl ]", " " }, *ISOnum , inverted ! mark */
- /*{"[igrave]", " " }, *ISOlat1, small i, grave accent */
- /*{"[image ]", " " }, *ISOamso,imaginary number symbol*/
- /*{"[infin ]", " " }, *ISOtech, infinity */
- /*{"[int ]", " " }, *ISOtech, intergral operator */
- /*{"[iota ]", " " }, *ISOgrk3, Greek, small iota */
- /*{"[iquest]", " " }, *ISOnum , inverted ? mark */
- /*{"[isin ]", " " }, *ISOtech, set membership */
- /*{"[iuml ]", " " }, *ISOlat1, small i, umlaut mark */
- /*{"[kappa ]", " " }, *ISOgrk3, Greek, small kappa */
- /*{"[lambda]", " " }, *ISOgrk3, Greek, small lambda */
- /*{"[lang ]", " " }, *ISOtech, left angle bracket */
- {"[laquo ]", "<<" }, /*ISOnum , left angle quotation */
- {"[larr ]", "<--" }, /*ISOnum , leftward arrow */
- {"[lArr ]", "<==" }, /*ISOtech, is implied by */
- {"[lcub ]", "{" }, /*ISOnum , left curly brace */
- {"[ldquo ]", "\"" }, /*ISOnum , left double quote */
- {"[le ]", "=<" }, /*ISOtech, less-than-or-equal */
- {"[lowbar]", "_" }, /*ISOnum , low line */
- {"[lpar ]", "(" }, /*ISOnum , left parenthesis */
- {"[lsqb ]", "[" }, /*ISOnum , left square bracket */
- {"[lsquo ]", "`" }, /*ISOnum , left single quote */
- {"[lsquor]", "," }, /*ISOnum,rising single quote(low)*/
- {"[lt ]", "<" }, /*ISOnum , less-than sign */
- {"[mdash ]", "--" }, /*ISOpub , em dash(long dash) */
- /*{"[micro ]", " " }, *ISOnum , micro */
- /*{"[middot]", " " }, *ISOnum , middle dot */
- {"[minus ]", "-" }, /*ISOtech, minus sign */
- {"[mldr ]", "...." }, /*ISOpub , em leader */
- {"[mnplus]", "-/+" }, /*ISOtech, minus-or-plus sign */
- /*{"[mu ]", " " }, *ISOgrk3, Greek, small mu */
- /*{"[nabla ]", " " }, *ISOtech, del, Hamilton operator*/
- {"[nbsp ]", " " }, /*ISOnum , no break space */
- {"[ndash ]", "-" }, /*ISOpub , en dash(short dash) */
- {"[ne ]", "!=" }, /*ISOtech, not equal */
- /*{"[ni ]", " " }, *ISOtech, contains */
- {"[nldr ]", ".." }, /*ISOpub , double baseline dot */
- /*{"[not ]", " " }, *ISOnum , not */
- /*{"[notin ]", " " }, *ISOtech, negated set membership*/
- /*{"[ntilde]", " " }, *ISOlat1, small N, tilde */
- /*{"[nu ]", " " }, *ISOgrk3, Greek, small nu */
- {"[num ]", "#" }, /*ISOnum , number sign */
- /*{"[oacute]", " " }, *ISOlat1, small o, acute accent */
- /*{"[ocirc ]", " " }, *ISOlat1, small o, circumflex */
- /*{"[ograve]", " " }, *ISOlat1, small o, grave accent */
- /*{"[ohm ]", " " }, *ISOnum , ohm */
- /*{"[omega ]", " " }, *ISOgrk3, Greek, small omega */
- /*{"[oplus ]", " " }, *ISOamsb, plus sign in circle */
- {"[or ]", "V" }, /*ISOtech, vee, logical or */
- /*{"[ordf ]", " " }, *ISOnum , ordinal indicator, fem*/
- /*{"[ordm ]", " " }, *ISOnum , ordinal indicator,male*/
- /*{"[oslash]", " " }, *ISOlat1, small o, slash */
- /*{"[osol ]", " " }, *ISOamsb, slash in circle */
- /*{"[otilde]", " " }, *ISOlat1, small o, tilde */
- /*{"[otimes]", " " }, *ISOamsb,multiply sign in circle*/
- /*{"[ouml ]", " " }, *ISOlat1, small o, umlaut mark */
- /*{"[over ]", " " }, *made up, over symbol */
- {"[par ]", "||" }, /*ISOtech, parallel */
- /*{"[para ]", " " }, *ISOnum , paragraph sign */
- /*{"[part ]", " " }, *ISOtech, partial differential */
- {"[percnt]", "%" }, /*ISOnum , percent sign */
- {"[period]", "." }, /*ISOnum , full stop, period */
- /*{"[perp ]", " " }, *ISOtech, perpendicular */
- /*{"[phis ]", " " }, *ISOgrk3, Greek, small phi */
- /*{"[pi ]", " " }, *ISOgrk3, Greek, small pi */
- /*{"[piv ]", " " }, *ISOgrk3, Greek, small pi, var */
- {"[plus ]", "+" }, /*ISOnum , plus sign */
- {"[plusmn]", "+/-" }, /*ISOnum , plus or minus sign */
- {"[pound ]", "#" }, /*ISOnum , pound sign */
- {"[prime ]", "\'" }, /*ISOtech, prime or minute */
- /*{"[prop ]", " " }, *ISOtech, proportional to */
- /*{"[psi ]", " " }, *ISOgrk3, Greek, small psi */
- {"[quest ]", "?" }, /*ISOnum , question mark */
- {"[quot ]", "'" }, /*ISOnum , quote mark */
- /*{"[radic ]", " " }, *ISOtech, radical */
- /*{"[rang ]", " " }, *ISOtech, right angle bracket */
- {"[raquo ]", ">>" }, /*ISOnum , right angle quotation */
- {"[rarr ]", "-->" }, /*ISOnum , rightward arrow */
- {"[rArr ]", "==>>" }, /*ISOtech, right double arrow */
- {"[rcub ]", "}" }, /*ISOnum , right curly brace */
- {"[rdquo ]", "\"" }, /*ISOnum , right double quote */
- /*{"[real ]", " " }, *ISOamso, real number symbol */
- /*{"[reg ]", " " }, *ISOnum,circledR,registered sign*/
- /*{"[rho ]", " " }, *ISOgrk3, Greek, small rho */
- {"[rpar ]", ")" }, /*ISOnum , right parenthesis */
- {"[rsqb ]", "]" }, /*ISOnum , right square bracket */
- {"[rsquo ]", "'" }, /*ISOnum , right single quote */
- /*{"[sect ]", " " }, *ISOnum , section sign */
- {"[semi ]", ";" }, /*ISOnum , semicolon */
- {"[shy ]", "-" }, /*ISOnum , soft hypen */
- /*{"[sigma ]", " " }, *ISOgrk3, Greek, small sigma */
- {"[sim ]", "~" }, /*ISOtech, similar to */
- {"[sime ]", "~=" }, /*ISOtech, similar, equals */
- {"[sol ]", "/" }, /*ISOnum , solidus */
- /*{"[spades]", " " }, *ISOpub , spades suit symbol */
- /*{"[sub ]", " " }, *ISOtech, subset/is implied by */
- /*{"[sung ]", " " }, *ISOnum , musical note(sung txt)*/
- /*{"[sube ]", " " }, *ISOtech, subset, equals */
- /*{"[sup ]", " " }, *ISOtech, superset or implies */
- /*{"[sup1 ]", " " }, *ISOnum , superscript one */
- /*{"[sup2 ]", " " }, *ISOnum , superscript two */
- /*{"[sup3 ]", " " }, *ISOnum , superscript three */
- /*{"[supe ]", " " }, *ISOtech, superset, equals */
- /*{"[szlig ]", " " }, *ISOlat1, small sharp s, German */
- /*{"[tau ]", " " }, *ISOgrk3, Greek, small tau */
- /*{"[there4]", " " }, *ISOtech, therefore */
- /*{"[thetas]", " " }, *ISOgrk3, Greek, small theta */
- /*{"[thetav]", " " }, *ISOgrk3, Greek, small theta,var*/
- /*{"[thorn ]", " " }, *ISOlat1, small thorn, Icelandic*/
- {"[times ]", "x" }, /*ISOnum , multipy sign */
- {"[tprime]", "'''" }, /*ISOtech, triple prime */
- /*{"[trade ]", " " }, *ISOnum , trade mark sign */
- /*{"[uacute]", " " }, *ISOlat1, small u, acute accent */
- /*{"[ucirc ]", " " }, *ISOlat1, small u, circumflex */
- /*{"[ugrave]", " " }, *ISOlat1, small u, grave accent */
- /*{"[uarr ]", " " }, *ISOnum , upward arrow */
- /*{"[uArr ]", " " }, *ISOamsa, up double arrow */
- /*{"[upsi ]", " " }, *ISOgrk3, Greek, small upsilon */
- /*{"[uuml ]", " " }, *ISOlat1, small u, umlaut mark */
- {"[vellip]", ".\n.\n.\n" }, /*ISOpub , vertical ellipsis */
- {"[verbar]", "|" }, /*ISOnum , vertical bar */
- /*{"[weierp]", " " }, *ISOamso, Weierstrass p */
- /*{"[xi ]", " " }, *ISOgrk3, Greek, small xi */
- /*{"[yacute]", " " }, *ISOlat1, small y, acute accent */
- /*{"[yen ]", " " }, *ISOnum , yen sign */
- /*{"[yuml ]", " " }, *ISOlat1, small y, umlaut mark */
- /*{"[zeta ]", " " }, *ISOgrk3, Greek, small zeta */
- /*{"[Aacute]", " " }, *ISOlat1, capital a,acute accent*/
- /*{"[Acirc ]", " " }, *ISOlat1, capital a,circumflex */
- /*{"[AElig ]", " " }, *ISOlat1, capital ae diphthong */
- /*{"[Agrave]", " " }, *ISOlat1, capital a,grave accent*/
- /*{"[Aring ]", " " }, *ISOlat1, capital a,ring */
- /*{"[Atilde]", " " }, *ISOlat1, capital a,tilde */
- /*{"[Auml ]", " " }, *ISOlat1, capital a,umlaut mark */
- /*{"[Ccedil]", " " }, *ISOlat1, capital c, cedilla */
- /*{"[Delta ]", " " }, *ISOgrk3, Greek, large delta */
- /*{"[Dot ]", " " }, *ISOtech, dieresis or umlaut mrk*/
- /*{"[DotDot]", " " }, *ISOtech, four dots above */
- /*{"[Eacute]", " " }, *ISOlat1, capital E,acute accent*/
- /*{"[Ecirc ]", " " }, *ISOlat1, capital E,circumflex */
- /*{"[Egrave]", " " }, *ISOlat1, capital E,grave accent*/
- /*{"[ETH ]", " " }, *ISOlat1, capital Eth, Icelandic*/
- /*{"[Euml ]", " " }, *ISOlat1, capital E,umlaut mark */
- /*{"[Gamma ]", " " }, *ISOgrk3, Greek, large gamma */
- /*{"[Iacute]", " " }, *ISOlat1, capital I,acute accent*/
- /*{"[Icirc ]", " " }, *ISOlat1, capital I,circumflex */
- /*{"[Igrave]", " " }, *ISOlat1, capital I,grave accent*/
- /*{"[Iuml ]", " " }, *ISOlat1, capital I,umlaut mark */
- /*{"[Lambda]", " " }, *ISOgrk3, Greek, large lambda */
- /*{"[Ntilde]", " " }, *ISOlat1, capital N, tilde */
- /*{"[Oacute]", " " }, *ISOlat1, capital O,acute accent*/
- /*{"[Ocirc ]", " " }, *ISOlat1, capital O,circumflex */
- /*{"[Ograve]", " " }, *ISOlat1, capital O,grave accent*/
- /*{"[Omega ]", " " }, *ISOgrk3, Greek, large omega */
- /*{"[Oslash]", " " }, *ISOlat1, capital O, slash */
- /*{"[Otilde]", " " }, *ISOlat1, capital O, tilde */
- /*{"[Ouml ]", " " }, *ISOlat1, capital O,umlaut mark */
- /*{"[Pi ]", " " }, *ISOgrk3, Greek, large pi */
- {"[Prime ]", "\"" }, /*ISOtech, double prime/second */
- /*{"[Phi ]", " " }, *ISOgrk3, Greek, large phi */
- /*{"[Psi ]", " " }, *ISOgrk3, Greek, large psi */
- /*{"[Sigma ]", " " }, *ISOgrk3, Greek, large sigma */
- /*{"[Theta ]", " " }, *ISOgrk3, Greek, large theta */
- /*{"[THORN ]", " " }, *ISOlat1,capital THORN,Icelandic*/
- /*{"[Uacute]", " " }, *ISOgrk3, Greek, large theta */
- /*{"[Ucirc ]", " " }, *ISOlat1, capital U,acute accent*/
- /*{"[Ugrave]", " " }, *ISOlat1, capital U,circumflex */
- /*{"[Upsi ]", " " }, *ISOgrk3, Greek, large upsilon */
- /*{"[Uuml ]", " " }, *ISOlat1, capital U,umlaut mark */
- {"[Verbar]", "||" }, /*ISOtech, dbl vertical bar */
- /*{"[Xi ]", " " }, *ISOgrk3, Greek, large xi */
- /*{"[Yacute]", " " }, *ISOlat1, capital Y,acute accent*/
- { NULL , " " }, /* default character to use */
- };
- /******************************************************************************
- *
- * Semi Public functions
- *
- ******************************************************************************/
- /*****************************************************************************
- * Function: const char *_DtHelpCeResolveSpcToAscii ();
- *
- * Parameters:
- *
- * Returns:
- *
- * Purpose:
- *
- *****************************************************************************/
- const char *
- _DtHelpCeResolveSpcToAscii (
- const char *spc_symbol)
- {
- int i = 0;
- if (NULL == spc_symbol)
- return NULL;
- while (NULL != SpcTable[i].symbol &&
- 0 != strcmp(SpcTable[i].symbol, spc_symbol))
- i++;
- if (SpcTable[i].symbol != NULL)
- return (SpcTable[i].spc_string);
- return NULL;
- }
|