]> git.sur5r.net Git - openldap/blob - contrib/tweb/support.h
* configure.in: add tcl8.2 to list of tcl libs to search for, also added new MOD_TCL_LIB
[openldap] / contrib / tweb / support.h
1 /*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
2 *                                                                          *
3 * support.h..                                                              *
4 *                                                                          *
5 * Function:..WorldWideWeb-X.500-Gateway - Support-Functions                *
6 *            Based on web500gw.c 1.3 written by Frank Richter, TU Chemmniz *
7 *            which is based on go500gw by Tim Howes, University of         *
8 *            Michigan  - All rights reserved                               *
9 *                                                                          *
10 * Authors:...Dr. Kurt Spanier & Bernhard Winkler,                          *
11 *            Zentrum fuer Datenverarbeitung, Bereich Entwicklung           *
12 *            neuer Dienste, Universitaet Tuebingen, GERMANY                *
13 *                                                                          *
14 *                                       ZZZZZ  DDD    V   V                *
15 *            Creation date:                Z   D  D   V   V                *
16 *            August 16 1995               Z    D   D   V V                 *
17 *            Last modification:          Z     D  D    V V                 *
18 *            September 7 1999           ZZZZ   DDD      V                  *
19 *                                                                          *
20 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/
21
22 /*
23  * $Id: support.h,v 1.6 1999/09/10 15:01:20 zrnsk01 Exp $
24  *
25  */
26
27 #ifndef _SUPPORT_
28 #define _SUPPORT_
29
30 #include "support_exp.h"
31 #include "charray_exp.h"
32 #include "ch_malloc_exp.h"
33
34
35 /*  Array for translation */
36 /* 0: HEX; 1: uml (not used); 2: flatten */
37
38 char *encoding_tbl[257][3] = {
39 /*   0  \0 */    { "%00" ,   "",        NULL    },
40 /*   1  \ 1 */    { "%01" ,   "\ 1",        NULL  },
41 /*   2  \ 2 */    { "%02" ,   "\ 2",        NULL  },
42 /*   3  \ 3 */    { "%03" ,   "\ 3",        NULL  },
43 /*   4  \ 4 */    { "%04" ,   "\ 4",        NULL  },
44 /*   5  \ 5 */    { "%05" ,   "\ 5",        NULL  },
45 /*   6  \ 6 */    { "%06" ,   "\ 6",        NULL  },
46 /*   7  \a */    { "%07" ,   "\a",        NULL  },
47 /*   8  \b */    { "%08" ,   "\b",        NULL  },
48 /*   9  \t */    { "%09" ,   " ",  NULL  },
49 /*  10  \n */    { "%0a" ,   "\n",      NULL  },
50 /*  11  \v */    { "%0b" ,   "\v",        NULL  },
51 /*  12  \f */    { "%0c" ,   "\f",        NULL  },
52 /*  13  \r */    { "%0d" ,   "\r",        NULL  },
53 /*  14  \ e */    { "%0e" ,   "\ e",        NULL  },
54 /*  15  \ f */    { "%0f" ,   "\ f",        NULL  },
55 /*  16  \10 */    { "%10" ,   "\10",        NULL  },
56 /*  17  \11 */    { "%11" ,   "\11",        NULL  },
57 /*  18  \12 */    { "%12" ,   "\12",        NULL  },
58 /*  19  \13 */    { "%13" ,   "\13",        NULL  },
59 /*  20  \14 */    { "%14" ,   "\14",        NULL  },
60 /*  21  \15 */    { "%15" ,   "\15",        NULL  },
61 /*  22  \16 */    { "%16" ,   "\16",        NULL  },
62 /*  23  \17 */    { "%17" ,   "\17",        NULL  },
63 /*  24  \18 */    { "%18" ,   "\18",        NULL  },
64 /*  25  \19 */    { "%19" ,   "\19",        NULL  },
65 /*  26  \1a */    { "%1a" ,   "\1a",        NULL  },
66 /*  27  \e */    { "%1b" ,   "\e",        NULL  },
67 /*  28  \1c */    { "%1c" ,   "\1c",        NULL  },
68 /*  29  \1d */    { "%1d" ,   "\1d",        NULL  },
69 /*  30  \1e */    { "%1e" ,   "\1e",        NULL  },
70 /*  31  \1f */    { "%1f" ,   "\1f",        NULL  },
71 /*  32     */    { "%20" ,   " ",       NULL  },
72 /*  33  !  */    { "%21" ,   "!",       NULL  },
73 /*  34  "  */    { "%22" ,   """,  NULL  },
74 /*  35  #  */    { "%23" ,   "#",       NULL  },
75 /*  36  $  */    {  NULL,    NULL,      NULL  },
76 /*  37  %  */    { "%25" ,   "%",       NULL  },
77 /*  38  &  */    { "%26" ,   "&",   NULL  },
78 /*  39  '  */    { "%27" ,   "'",       NULL  },
79 /*  40  (  */    { "%28" ,   "(",       NULL  },
80 /*  41  )  */    { "%29" ,   ")",       NULL  },
81 /*  42  *  */    { "%2a" ,   "*",       NULL  },
82 /*  43  +  */    { "%2b" ,   "+",       NULL  },
83 /*  44  ,  */    { "%2c" ,   ",",       NULL  },
84 /*  45  -  */    {  NULL,    NULL,      NULL  },
85 /*  46  .  */    {  NULL,    NULL,      NULL  },
86 /*  47  /  */    { "%2f" ,   "/",       NULL  },
87 /*  48  0  */    {  NULL,    NULL,      NULL  },
88 /*  49  1  */    {  NULL,    NULL,      NULL  },
89 /*  50  2  */    {  NULL,    NULL,      NULL  },
90 /*  51  3  */    {  NULL,    NULL,      NULL  },
91 /*  52  4  */    {  NULL,    NULL,      NULL  },
92 /*  53  5  */    {  NULL,    NULL,      NULL  },
93 /*  54  6  */    {  NULL,    NULL,      NULL  },
94 /*  55  7  */    {  NULL,    NULL,      NULL  },
95 /*  56  8  */    {  NULL,    NULL,      NULL  },
96 /*  57  9  */    {  NULL,    NULL,      NULL  },
97 /*  58  :  */    { "%3a" ,   ":",       NULL  },
98 /*  59  ;  */    { "%3b" ,   ";",       NULL  },
99 /*  60  <  */    { "%3c" ,   "&lt;",    NULL  },
100 /*  61  =  */    { "%3d" ,   "=",       NULL  },
101 /*  62  >  */    { "%3e" ,   "&gt;",    NULL  },
102 /*  63  ?  */    { "%3f" ,   "?",       NULL  },
103 /*  64  @  */    { "%40" ,   "@",       NULL  },
104 /*  65  A  */    {  NULL,    NULL,      NULL  },
105 /*  66  B  */    {  NULL,    NULL,      NULL  },
106 /*  67  C  */    {  NULL,    NULL,      NULL  },
107 /*  68  D  */    {  NULL,    NULL,      NULL  },
108 /*  69  E  */    {  NULL,    NULL,      NULL  },
109 /*  70  F  */    {  NULL,    NULL,      NULL  },
110 /*  71  G  */    {  NULL,    NULL,      NULL  },
111 /*  72  H  */    {  NULL,    NULL,      NULL  },
112 /*  73  I  */    {  NULL,    NULL,      NULL  },
113 /*  74  J  */    {  NULL,    NULL,      NULL  },
114 /*  75  K  */    {  NULL,    NULL,      NULL  },
115 /*  76  L  */    {  NULL,    NULL,      NULL  },
116 /*  77  M  */    {  NULL,    NULL,      NULL  },
117 /*  78  N  */    {  NULL,    NULL,      NULL  },
118 /*  79  O  */    {  NULL,    NULL,      NULL  },
119 /*  80  P  */    {  NULL,    NULL,      NULL  },
120 /*  81  Q  */    {  NULL,    NULL,      NULL  },
121 /*  82  R  */    {  NULL,    NULL,      NULL  },
122 /*  83  S  */    {  NULL,    NULL,      NULL  },
123 /*  84  T  */    {  NULL,    NULL,      NULL  },
124 /*  85  U  */    {  NULL,    NULL,      NULL  },
125 /*  86  V  */    {  NULL,    NULL,      NULL  },
126 /*  87  W  */    {  NULL,    NULL,      NULL  },
127 /*  88  X  */    {  NULL,    NULL,      NULL  },
128 /*  89  Y  */    {  NULL,    NULL,      NULL  },
129 /*  90  Z  */    {  NULL,    NULL,      NULL  },
130 /*  91  [  */    { "%5b" ,   "[",       NULL  },
131 /*  92  \  */    { "%5c" ,   "\\",      NULL  },
132 /*  93  ]  */    { "%5d" ,   "]",       NULL  },
133 /*  94  ^  */    { "%5e" ,   "^",       NULL  },
134 /*  95  _  */    {  NULL,    NULL,      NULL  },
135 /*  96  `  */    { "%60" ,   "`",       NULL  },
136 /*  97  a  */    {  NULL,    NULL,      NULL  },
137 /*  98  b  */    {  NULL,    NULL,      NULL  },
138 /*  99  c  */    {  NULL,    NULL,      NULL  },
139 /* 100  d  */    {  NULL,    NULL,      NULL  },
140 /* 101  e  */    {  NULL,    NULL,      NULL  },
141 /* 102  f  */    {  NULL,    NULL,      NULL  },
142 /* 103  g  */    {  NULL,    NULL,      NULL  },
143 /* 104  h  */    {  NULL,    NULL,      NULL  },
144 /* 105  i  */    {  NULL,    NULL,      NULL  },
145 /* 106  j  */    {  NULL,    NULL,      NULL  },
146 /* 107  k  */    {  NULL,    NULL,      NULL  },
147 /* 108  l  */    {  NULL,    NULL,      NULL  },
148 /* 109  m  */    {  NULL,    NULL,      NULL  },
149 /* 110  n  */    {  NULL,    NULL,      NULL  },
150 /* 111  o  */    {  NULL,    NULL,      NULL  },
151 /* 112  p  */    {  NULL,    NULL,      NULL  },
152 /* 113  q  */    {  NULL,    NULL,      NULL  },
153 /* 114  r  */    {  NULL,    NULL,      NULL  },
154 /* 115  s  */    {  NULL,    NULL,      NULL  },
155 /* 116  t  */    {  NULL,    NULL,      NULL  },
156 /* 117  u  */    {  NULL,    NULL,      NULL  },
157 /* 118  v  */    {  NULL,    NULL,      NULL  },
158 /* 119  w  */    {  NULL,    NULL,      NULL  },
159 /* 120  x  */    {  NULL,    NULL,      NULL  },
160 /* 121  y  */    {  NULL,    NULL,      NULL  },
161 /* 122  z  */    {  NULL,    NULL,      NULL  },
162 /* 123  {  */    { "%7b" ,   "{",       NULL  },
163 /* 124  |  */    { "%7c" ,   "|",       NULL  },
164 /* 125  }  */    { "%7d" ,   "}",       NULL  },
165 /* 126  ~  */    { "%7e" ,   "~",       NULL  },
166 /* 127  \7f */    { "%7f" ,   "\7f",        NULL  },
167 /* 128  \80   */    { "%80" ,   "\80",      NULL  },
168 /* 129  \81   */   { "%81" ,   "\81",       NULL  },
169 /* 130  \82   */   { "%82" ,   "\82",       NULL  },
170 /* 131  \83   */   { "%83" ,   "\83",       NULL  },
171 /* 132  \84   */   { "%84" ,   "\84",       NULL  },
172 /* 133  \85   */   { "%85" ,   "\85",       NULL  },
173 /* 134  \86   */   { "%86" ,   "\86",       NULL  },
174 /* 135  \87   */   { "%87" ,   "\87",       NULL  },
175 /* 136  \88   */   { "%88" ,   "\88",       NULL  },
176 /* 137  \89   */   { "%89" ,   "\89",       NULL  },
177 /* 138  \8a   */   { "%8a" ,   "\8a",       NULL  },
178 /* 139  \8b   */   { "%8b" ,   "\8b",       NULL  },
179 /* 140  \8c   */   { "%8c" ,   "\8c",       NULL  },
180 /* 141  \8d   */   { "%8d" ,   "\8d",       NULL  },
181 /* 142  \8e   */   { "%8e" ,   "\8e",       NULL  },
182 /* 143  \8f   */   { "%8f" ,   "\8f",       NULL  },
183 /* 144  \90   */   { "%90" ,   "\90",       NULL  },
184 /* 145  \91   */   { "%91" ,   "\91",       NULL  },
185 /* 146  \92   */   { "%92" ,   "\92",       NULL  },
186 /* 147  \93   */   { "%93" ,   "\93",       NULL  },
187 /* 148  \94   */   { "%94" ,   "\94",       NULL  },
188 /* 149  \95   */   { "%95" ,   "\95",       NULL  },
189 /* 150  \96   */   { "%96" ,   "\96",       NULL  },
190 /* 151  \97   */   { "%97" ,   "\97",       NULL  },
191 /* 152  \98   */   { "%98" ,   "\98",       NULL  },
192 /* 153  \99   */   { "%99" ,   "\99",       NULL  },
193 /* 154  \9a   */   { "%9a" ,   "\9a",       NULL  },
194 /* 155  \9b   */   { "%9b" ,   "\9b",       NULL  },
195 /* 156  \9c   */   { "%9c" ,   "\9c",       NULL  },
196 /* 157  \9d   */   { "%9d" ,   "\9d",       NULL  },
197 /* 158  \9e   */   { "%9e" ,   "\9e",       NULL  },
198 /* 159  \9f   */   { "%9f" ,   "\9f",       NULL  },
199 /* 160     */    { "%a0" ,   "",        NULL  },
200 /* 161     */    { "%a1" ,   "",        NULL  },
201 /* 162     */    { "%a2" ,   "",        NULL  },
202 /* 163     */    { "%a3" ,   "",        NULL  },
203 /* 164     */    { "%a4" ,   "",        NULL  },
204 /* 165     */    { "%a5" ,   "",        NULL  },
205 /* 166     */    { "%a6" ,   "",        NULL  },
206 /* 167     */    { "%a7" ,   "",        NULL  },
207 /* 168     */    { "%a8" ,   "",        NULL  },
208 /* 169     */    { "%a9" ,   "",        NULL  },
209 /* 170     */    { "%aa" ,   "",        NULL  },
210 /* 171     */    { "%ab" ,   "",        NULL  },
211 /* 172     */    { "%ac" ,   "",        NULL  },
212 /* 173     */    { "%ad" ,   "",        NULL  },
213 /* 174     */    { "%ae" ,   "",        NULL  },
214 /* 175     */    { "%af" ,   "",        NULL  },
215 /* 176     */    { "%b0" ,   "",        NULL  },
216 /* 177     */    { "%b1" ,   "",        NULL  },
217 /* 178     */    { "%b2" ,   "",        NULL  },
218 /* 179     */    { "%b3" ,   "",        NULL  },
219 /* 180     */    { "%b4" ,   "",        NULL  },
220 /* 181     */    { "%b5" ,   "",        NULL  },
221 /* 182     */    { "%b6" ,   "",        NULL  },
222 /* 183     */    { "%b7" ,   "",        NULL  },
223 /* 184     */    { "%b8" ,   "",        NULL  },
224 /* 185     */    { "%b9" ,   "",        NULL  },
225 /* 186     */    { "%ba" ,   "",        NULL  },
226 /* 187     */    { "%bb" ,   "",        NULL  },
227 /* 188     */    { "%bc" ,   "",        NULL  },
228 /* 189     */    { "%bd" ,   "",        NULL  },
229 /* 190     */    { "%be" ,   "",        NULL  },
230 /* 191     */    { "%bf" ,   "",        NULL  },
231 /* 192     */    { "%c0" ,   "&Agrave;",    "A"  },
232 /* 193     */    { "%c1" ,   "&Aacute;",    "A"  },
233 /* 194     */    { "%c2" ,   "&Acirc;",     "A"  },
234 /* 195     */    { "%c3" ,   "&Atilde;",    "A"  },
235 /* 196     */    { "%c4" ,   "&Auml;",      "Ae"  },
236 /* 197     */    { "%c5" ,   "&Aring;",     "A"  },
237 /* 198     */    { "%c6" ,   "&AElig;",     "AE"  },
238 /* 199     */    { "%c7" ,   "&Ccedil;",    "C"  },
239 /* 200     */    { "%c8" ,   "&Egrave;",    "E"  },
240 /* 201     */    { "%c9" ,   "&Eacute;",    "E"  },
241 /* 202     */    { "%ca" ,   "&Ecirc;",     "E"  },
242 /* 203     */    { "%cb" ,   "&Euml;",      "E"  },
243 /* 204     */    { "%cc" ,   "&Igrave;",    "I"  },
244 /* 205     */    { "%cd" ,   "&Iacute;",    "I"  },
245 /* 206     */    { "%ce" ,   "&Icirc;",     "I"  },
246 /* 207     */    { "%cf" ,   "&Iuml;",      "I"  },
247 /* 208     */    { "%d0" ,   "&ETH;",       "Eth"  },
248 /* 209     */    { "%d1" ,   "&Ntilde;",    "N"  },
249 /* 210     */    { "%d2" ,   "&Ograve;",    "O"  },
250 /* 211     */    { "%d3" ,   "&Oacute;",    "O"  },
251 /* 212     */    { "%d4" ,   "&Ocirc;",     "O"  },
252 /* 213     */    { "%d5" ,   "&Otilde;",    "O"  },
253 /* 214     */    { "%d6" ,   "&Ouml;",      "Oe"  },
254 /* 215     */    { "%d7" ,   "x",           "x"  },
255 /* 216     */    { "%d8" ,   "&Oslash;",    "O"  },
256 /* 217     */    { "%d9" ,   "&Ugrave;",    "U"  },
257 /* 218     */    { "%da" ,   "&Uacute;",    "U"  },
258 /* 219     */    { "%db" ,   "&Ucirc;",     "U"  },
259 /* 220     */    { "%dc" ,   "&Uuml;",      "Ue"  },
260 /* 221     */    { "%dd" ,   "&Yacute;",    "Y"  },
261 /* 222     */    { "%de" ,   "&THORN;",     NULL  },
262 /* 223     */    { "%df" ,   "&szlig;",     "ss"  },
263 /* 224     */    { "%e0" ,   "&agrave;",    "a"  },
264 /* 225     */    { "%e1" ,   "&aacute;",    "a"  },
265 /* 226     */    { "%e2" ,   "&acirc;",     "a"  },
266 /* 227     */    { "%e3" ,   "&atilde;",    "a"  },
267 /* 228     */    { "%e4" ,   "&auml;",      "ae"  },
268 /* 229     */    { "%e5" ,   "&aring;",     "a"  },
269 /* 230     */    { "%e6" ,   "&aelig;",     "ae"  },
270 /* 231     */    { "%e7" ,   "&ccedil;",    "c"  },
271 /* 232     */    { "%e8" ,   "&egrave;",    "e"  },
272 /* 233     */    { "%e9" ,   "&eacute;",    "e"  },
273 /* 234     */    { "%ea" ,   "&ecirc;",     "e"  },
274 /* 235     */    { "%eb" ,   "&euml;",      "e"  },
275 /* 236     */    { "%ec" ,   "&igrave;",    "i"  },
276 /* 237     */    { "%ed" ,   "&iacute;",    "i"  },
277 /* 238     */    { "%ee" ,   "&icirc;",     "i"  },
278 /* 239     */    { "%ef" ,   "&iuml;",      "i"  },
279 /* 240     */    { "%f0" ,   "&eth;",       "eth"  },
280 /* 241     */    { "%f1" ,   "&ntilde;",    "n"  },
281 /* 242     */    { "%f2" ,   "&ograve;",    "o"  },
282 /* 243     */    { "%f3" ,   "&oacute;",    "o"  },
283 /* 244     */    { "%f4" ,   "&ocirc;",     "o"  },
284 /* 245     */    { "%f5" ,   "&otilde;",    "o"  },
285 /* 246     */    { "%f6" ,   "&ouml;",      "oe"  },
286 /* 247     */    { "%f7" ,   "/",           "/"  },
287 /* 248     */    { "%f8" ,   "&oslash;",    "o"  },
288 /* 249     */    { "%f9" ,   "&ugrave;",    "u"  },
289 /* 250     */    { "%fa" ,   "&uacute;",    "u"  },
290 /* 251     */    { "%fb" ,   "&ucirc;",     "u"  },
291 /* 252     */    { "%fc" ,   "&uuml;",      "ue"  },
292 /* 253     */    { "%fd" ,   "&yacute;",    "y"  },
293 /* 254     */    { "%fe" ,   "&thorn;",     NULL  },
294 /* 255     */    { "%ff" ,   "&yuml;",      "y"  },
295 /* 256  EOF*/    {  NULL,    NULL,          NULL  },
296 };
297
298 #endif /* _SUPPORT_ */
299
300