diff options
Diffstat (limited to 'nx-X11/lib/dps/dpsabbrev.c')
-rw-r--r-- | nx-X11/lib/dps/dpsabbrev.c | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/nx-X11/lib/dps/dpsabbrev.c b/nx-X11/lib/dps/dpsabbrev.c new file mode 100644 index 000000000..20b3ef713 --- /dev/null +++ b/nx-X11/lib/dps/dpsabbrev.c @@ -0,0 +1,360 @@ +/* + * dpsabbrev.c -- Implementation of Client Library abbrev mode + * + * (c) Copyright 1993-1994 Adobe Systems Incorporated. + * All rights reserved. + * + * Permission to use, copy, modify, distribute, and sublicense this software + * and its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notices appear in all copies and that + * both those copyright notices and this permission notice appear in + * supporting documentation and that the name of Adobe Systems Incorporated + * not be used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. No trademark license + * to use the Adobe trademarks is hereby granted. If the Adobe trademark + * "Display PostScript"(tm) is used to describe this software, its + * functionality or for any other purpose, such use shall be limited to a + * statement that this software works in conjunction with the Display + * PostScript system. Proper trademark attribution to reflect Adobe's + * ownership of the trademark shall be given whenever any such reference to + * the Display PostScript system is made. + * + * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR + * ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. + * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON- INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE + * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT + * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE. + * + * Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems + * Incorporated which may be registered in certain jurisdictions + * + * Author: Adobe Systems Incorporated + */ +/* $XFree86$ */ + +#include <string.h> +#include "publictypes.h" +#include "DPS/dpsclient.h" +#include "dpsprivate.h" + +static DPSAbbrevRec abbrev[] = { + {1, "add", "!+"}, + {10, "ashow", "!a"}, + {12, "awidthshow", "!A"}, + {13, "begin", "!B"}, + {14, "bind", "!b"}, + {20, "clip", "!CL"}, + {22, "closepath", "!c"}, + {23, "concat", "!CC"}, + {25, "copy", "!CP"}, + {39, "currentmatrix", "!CM"}, + {40, "currentpoint", "!Cp"}, + {43, "curveto", "!C"}, + {51, "def", "!D"}, + {53, "dict", "!d"}, + {62, "exch", "!E"}, + {63, "exec", "!e"}, + {66, "fill", "!F"}, + {67, "findfont", "!f"}, + {77, "grestore", "!G"}, + {78, "gsave", "!g"}, + {85, "ifelse", "!I"}, + {88, "index", "!i"}, + {98, "length", "!LE"}, + {99, "lineto", "!L"}, + {100, "load", "!l"}, + {103, "makefont", "!MF"}, + {104, "matrix", "!m"}, + {107, "moveto", "!M"}, + {111, "newpath", "!N"}, + {113, "null", "!n"}, + {117, "pop", "!p"}, + {122, "rcurveto", "!RC"}, + {127, "rectclip", "!R"}, + {128, "rectfill", "!RF"}, + {129, "rectstroke", "!RS"}, + {131, "repeat", "!RP"}, + {132, "restore", "!Rs"}, + {133, "rlineto", "!r"}, + {134, "rmoveto", "!RM"}, + {135, "roll", "!RL"}, + {136, "rotate", "!RO"}, + {137, "round", "!RN"}, + {138, "save", "!SV"}, + {139, "scale", "!SC"}, + {140, "scalefont", "!SF"}, + {142, "selectfont", "!s"}, + {147, "setcmykcolor", "!Sc"}, + {148, "setdash", "!SD"}, + {149, "setfont", "!Sf"}, + {150, "setgray", "!Sg"}, + {152, "sethsbcolor", "!Sh"}, + {153, "setlinecap", "!SL"}, + {154, "setlinejoin", "!SJ"}, + {155, "setlinewidth", "!SW"}, + {156, "setmatrix", "!SM"}, + {157, "setrgbcolor", "!Sr"}, + {158, "setshared", "!SS"}, + {160, "show", "!S"}, + {161, "showpage", "!SP"}, + {167, "stroke", "!ST"}, + {170, "systemdict", "!Sd"}, + {173, "translate", "!T"}, + {182, "userdict", "!u"}, + {186, "where", "!w"}, + {187, "widthshow", "!W"}, + {194, "xshow", "!X"}, + {195, "xyshow", "!x"}, + {196, "yshow", "!Y"}, +}; + +static short abbrevPtr[] = { + -1, /* 0 */ + 0, /* 1 */ + -1, /* 2 */ + -1, /* 3 */ + -1, /* 4 */ + -1, /* 5 */ + -1, /* 6 */ + -1, /* 7 */ + -1, /* 8 */ + -1, /* 9 */ + 1, /* 10 */ + -1, /* 11 */ + 2, /* 12 */ + 3, /* 13 */ + 4, /* 14 */ + -1, /* 15 */ + -1, /* 16 */ + -1, /* 17 */ + -1, /* 18 */ + -1, /* 19 */ + 5, /* 20 */ + -1, /* 21 */ + 6, /* 22 */ + 7, /* 23 */ + -1, /* 24 */ + 8, /* 25 */ + -1, /* 26 */ + -1, /* 27 */ + -1, /* 28 */ + -1, /* 29 */ + -1, /* 30 */ + -1, /* 31 */ + -1, /* 32 */ + -1, /* 33 */ + -1, /* 34 */ + -1, /* 35 */ + -1, /* 36 */ + -1, /* 37 */ + -1, /* 38 */ + 9, /* 39 */ + 10, /* 40 */ + -1, /* 41 */ + -1, /* 42 */ + 11, /* 43 */ + -1, /* 44 */ + -1, /* 45 */ + -1, /* 46 */ + -1, /* 47 */ + -1, /* 48 */ + -1, /* 49 */ + -1, /* 50 */ + 12, /* 51 */ + -1, /* 52 */ + 13, /* 53 */ + -1, /* 54 */ + -1, /* 55 */ + -1, /* 56 */ + -1, /* 57 */ + -1, /* 58 */ + -1, /* 59 */ + -1, /* 60 */ + -1, /* 61 */ + 14, /* 62 */ + 15, /* 63 */ + -1, /* 64 */ + -1, /* 65 */ + 16, /* 66 */ + 17, /* 67 */ + -1, /* 68 */ + -1, /* 69 */ + -1, /* 70 */ + -1, /* 71 */ + -1, /* 72 */ + -1, /* 73 */ + -1, /* 74 */ + -1, /* 75 */ + -1, /* 76 */ + 18, /* 77 */ + 19, /* 78 */ + -1, /* 79 */ + -1, /* 80 */ + -1, /* 81 */ + -1, /* 82 */ + -1, /* 83 */ + -1, /* 84 */ + 20, /* 85 */ + -1, /* 86 */ + -1, /* 87 */ + 21, /* 88 */ + -1, /* 89 */ + -1, /* 90 */ + -1, /* 91 */ + -1, /* 92 */ + -1, /* 93 */ + -1, /* 94 */ + -1, /* 95 */ + -1, /* 96 */ + -1, /* 97 */ + 22, /* 98 */ + 23, /* 99 */ + 24, /* 100 */ + -1, /* 101 */ + -1, /* 102 */ + 25, /* 103 */ + 26, /* 104 */ + -1, /* 105 */ + -1, /* 106 */ + 27, /* 107 */ + -1, /* 108 */ + -1, /* 109 */ + -1, /* 110 */ + 28, /* 111 */ + -1, /* 112 */ + 29, /* 113 */ + -1, /* 114 */ + -1, /* 115 */ + -1, /* 116 */ + 30, /* 117 */ + -1, /* 118 */ + -1, /* 119 */ + -1, /* 120 */ + -1, /* 121 */ + 31, /* 122 */ + -1, /* 123 */ + -1, /* 124 */ + -1, /* 125 */ + -1, /* 126 */ + 32, /* 127 */ + 33, /* 128 */ + 34, /* 129 */ + -1, /* 130 */ + 35, /* 131 */ + 36, /* 132 */ + 37, /* 133 */ + 38, /* 134 */ + 39, /* 135 */ + 40, /* 136 */ + 41, /* 137 */ + 42, /* 138 */ + 43, /* 139 */ + 44, /* 140 */ + -1, /* 141 */ + 45, /* 142 */ + -1, /* 143 */ + -1, /* 144 */ + -1, /* 145 */ + -1, /* 146 */ + 46, /* 147 */ + 47, /* 148 */ + 48, /* 149 */ + 49, /* 150 */ + -1, /* 151 */ + 50, /* 152 */ + 51, /* 153 */ + 52, /* 154 */ + 53, /* 155 */ + 54, /* 156 */ + 55, /* 157 */ + 56, /* 158 */ + -1, /* 159 */ + 57, /* 160 */ + 58, /* 161 */ + -1, /* 162 */ + -1, /* 163 */ + -1, /* 164 */ + -1, /* 165 */ + -1, /* 166 */ + 59, /* 167 */ + -1, /* 168 */ + -1, /* 169 */ + 60, /* 170 */ + -1, /* 171 */ + -1, /* 172 */ + 61, /* 173 */ + -1, /* 174 */ + -1, /* 175 */ + -1, /* 176 */ + -1, /* 177 */ + -1, /* 178 */ + -1, /* 179 */ + -1, /* 180 */ + -1, /* 181 */ + 62, /* 182 */ + -1, /* 183 */ + -1, /* 184 */ + -1, /* 185 */ + 63, /* 186 */ + 64, /* 187 */ + -1, /* 188 */ + -1, /* 189 */ + -1, /* 190 */ + -1, /* 191 */ + -1, /* 192 */ + -1, /* 193 */ + 65, /* 194 */ + 66, /* 195 */ + 67, /* 196 */ + -1, /* 197 */ + -1, /* 198 */ + -1, /* 199 */ + -1, /* 200 */ + -1, /* 201 */ + -1, /* 202 */ + -1, /* 203 */ + -1, /* 204 */ + -1, /* 205 */ + -1, /* 206 */ + -1, /* 207 */ + -1, /* 208 */ + -1, /* 209 */ + -1, /* 210 */ + -1, /* 211 */ +}; + +void DPSFetchAbbrevList(DPSAbbrevRec **list, int *count) +{ + *list = abbrev; + *count = sizeof(abbrev) / sizeof(abbrev[0]); +} + +char *DPSGetSysnameAbbrev(int n) +{ + if ((unsigned) n > sizeof(abbrevPtr) / sizeof(abbrevPtr[0])) return NULL; + if (abbrevPtr[n] == -1) return NULL; + return abbrev[abbrevPtr[n]].abbrev; +} + +char *DPSGetOperatorAbbrev(char *op) +{ + int min, max, n; + int res; + + min = 0; + max = sizeof(abbrev) / sizeof(abbrev[0]) - 1; + + while (min <= max) { + n = (max + min) / 2; + res = strcmp(op, abbrev[n].operatorName); + if (res == 0) return abbrev[n].abbrev; + if (res < 0) max = n - 1; + if (res > 0) min = n + 1; + } + return NULL; +} |