setup home directory for globbing
[unix-history] / usr / src / usr.bin / diction / style2 / ehash.c
CommitLineData
2958d0fe 1#ifndef lint
1a1cc2cb 2static char ehash_sccsid[] = "@(#)ehash.c 4.2 (Berkeley) 82/11/06";
2958d0fe
RH
3#endif not lint
4
5#
6struct hnode {
7 char *aakey;
8 struct dict *aadata;
9};
10struct dict {
11 char *entry;
12 char val;
13};
14char able();
15struct dict able_d[];
16char ace();
17struct dict ace_d[];
18char age();
19struct dict age_d[];
20char ance();
21struct dict ance_d[];
22char ant();
23struct dict ant_d[];
24char cal();
25struct dict cal_d[];
26char cle();
27struct dict cle_d[];
28char ee();
29struct dict ee_d[];
30char ence();
31struct dict ence_d[];
32char ess();
33struct dict ess_d[];
34char est();
35struct dict est_d[];
36char ful();
37struct dict ful_d[];
38char ible();
39struct dict ible_d[];
40char ic();
41struct dict ic_d[];
42char ice();
43struct dict ice_d[];
44char ion();
45struct dict ion_d[];
46char ional();
47struct dict ional_d[];
48char is();
49struct dict is_d[];
50char ish();
51struct dict ish_d[];
52char ist();
53struct dict ist_d[];
54char ite();
55struct dict ite_d[];
56char ive();
57struct dict ive_d[];
58char ize();
59struct dict ize_d[];
60char lar();
61struct dict lar_d[];
62char less();
63struct dict less_d[];
64char man();
65struct dict man_d[];
66char ment();
67struct dict ment_d[];
68char ness();
69struct dict ness_d[];
70char ous();
71struct dict ous_d[];
72char ship();
73struct dict ship_d[];
74char ss();
75struct dict ss_d[];
76char ure();
77struct dict ure_d[];
78char us();
79struct dict us_d[];
80char ing();
81struct dict ing_d[];
82char ed();
83struct dict ed_d[];
84struct fandd {
85 char (*fun)();
86 struct dict *yd;
87} arr[] = {
88able, able_d,
89ace, ace_d,
90age, age_d,
91ance, ance_d,
92ant, ant_d,
93cal, cal_d,
94cle, cle_d,
95ee, ee_d,
96ence, ence_d,
97ess, ess_d,
98est, est_d,
99ful, ful_d,
100ible, ible_d,
101ic, ic_d,
102ice, ice_d,
103ion, ion_d,
104ional, ional_d,
105is, is_d,
106ish, ish_d,
107ist, ist_d,
108ite, ite_d,
109ive, ive_d,
110ize, ize_d,
111lar, lar_d,
112less, less_d,
113man, man_d,
114ment, ment_d,
115ness, ness_d,
116ous, ous_d,
117ship, ship_d,
118ss, ss_d,
119ure, ure_d,
120us, us_d,
121ing, ing_d,
122ed, ed_d,
1230, 0
124};
125egetd(){
126 struct dict *pp;
127 struct fandd *ptr;
128 ptr = arr;
129 while(ptr->fun != 0){
130 pp = ptr->yd;
131 while(pp->entry != 0){
132 (*ptr->fun)(pp->entry,0,pp);
133 pp++;
134 }
135 ptr++;
136 }
137}
138char
139aahash(s,ex,aatsize,aapr1,aapr2,tbl,data)
140char *s;
141struct hnode tbl[];
142struct dict *data;
143{
144 char *cp;
145 int i, key, c, p1, p2;
146 cp = s;
147 key =0;
148 while (c = *cp++)
149 key = key + (key<<5) + c;
150 key &= 077777;
151 p1 = key%aapr1;
152 p2 = key%aapr2;
153 if (p2==0) p2=17;
154 for(i=0; i<aatsize; i++)
155 {
156 if (tbl[p1].aakey==0)
157 { /* new item */
158 if (ex ==0)
159 {
160 tbl[p1].aakey = s;
161 tbl[p1].aadata= data;
162 return(tbl[p1].aadata->val);
163 }
164 else
165 return(0);
166 }
167 else
168 if(strcmp(tbl[p1].aakey, s)== 0)
169 {
170 return(tbl[p1].aadata->val);
171 }
172 p1 = (p1+p2)%aatsize;
173 }
174 fprintf(stderr, "hash table full\n");
175 exit();
176}
177struct hnode aa1root[43];
178#define aa1tsize 43
179#define aa1p1 37
180#define aa1p2 41
181char
182able(a0,a1,ptr)
183 char *a0;
184 struct dict *ptr;
185{
186 return(aahash(a0,a1,aa1tsize,aa1p1,aa1p2,aa1root,ptr));
187}
188struct hnode aa2root[11];
189#define aa2tsize 11
190#define aa2p1 5
191#define aa2p2 7
192char
193ace(a0,a1,ptr)
194 char *a0;
195 struct dict *ptr;
196{
197 return(aahash(a0,a1,aa2tsize,aa2p1,aa2p2,aa2root,ptr));
198}
199struct hnode aa3root[61];
200#define aa3tsize 61
201#define aa3p1 53
202#define aa3p2 59
203char
204age(a0,a1,ptr)
205 char *a0;
206 struct dict *ptr;
207{
208 return(aahash(a0,a1,aa3tsize,aa3p1,aa3p2,aa3root,ptr));
209}
1a1cc2cb
RH
210struct hnode aa4root[37];
211#define aa4tsize 37
212#define aa4p1 29
213#define aa4p2 31
2958d0fe
RH
214char
215ance(a0,a1,ptr)
216 char *a0;
217 struct dict *ptr;
218{
219 return(aahash(a0,a1,aa4tsize,aa4p1,aa4p2,aa4root,ptr));
220}
221struct hnode aa5root[31];
222#define aa5tsize 31
223#define aa5p1 23
224#define aa5p2 29
225char
226ant(a0,a1,ptr)
227 char *a0;
228 struct dict *ptr;
229{
230 return(aahash(a0,a1,aa5tsize,aa5p1,aa5p2,aa5root,ptr));
231}
232struct hnode aa7root[19];
233#define aa7tsize 19
234#define aa7p1 13
235#define aa7p2 17
236char
237cal(a0,a1,ptr)
238 char *a0;
239 struct dict *ptr;
240{
241 return(aahash(a0,a1,aa7tsize,aa7p1,aa7p2,aa7root,ptr));
242}
243struct hnode aa8root[13];
244#define aa8tsize 13
245#define aa8p1 7
246#define aa8p2 11
247char
248cle(a0,a1,ptr)
249 char *a0;
250 struct dict *ptr;
251{
252 return(aahash(a0,a1,aa8tsize,aa8p1,aa8p2,aa8root,ptr));
253}
254struct hnode aa10root[31];
255#define aa10tsize 31
256#define aa10p1 23
257#define aa10p2 29
258char
259ee(a0,a1,ptr)
260 char *a0;
261 struct dict *ptr;
262{
263 return(aahash(a0,a1,aa10tsize,aa10p1,aa10p2,aa10root,ptr));
264}
1a1cc2cb
RH
265struct hnode aa11root[31];
266#define aa11tsize 31
267#define aa11p1 23
268#define aa11p2 29
2958d0fe
RH
269char
270ence(a0,a1,ptr)
271 char *a0;
272 struct dict *ptr;
273{
274 return(aahash(a0,a1,aa11tsize,aa11p1,aa11p2,aa11root,ptr));
275}
276struct hnode aa13root[47];
277#define aa13tsize 47
278#define aa13p1 41
279#define aa13p2 43
280char
281ess(a0,a1,ptr)
282 char *a0;
283 struct dict *ptr;
284{
285 return(aahash(a0,a1,aa13tsize,aa13p1,aa13p2,aa13root,ptr));
286}
287struct hnode aa14root[67];
288#define aa14tsize 67
289#define aa14p1 59
290#define aa14p2 61
291char
292est(a0,a1,ptr)
293 char *a0;
294 struct dict *ptr;
295{
296 return(aahash(a0,a1,aa14tsize,aa14p1,aa14p2,aa14root,ptr));
297}
298struct hnode aa15root[43];
299#define aa15tsize 43
300#define aa15p1 37
301#define aa15p2 41
302char
303ful(a0,a1,ptr)
304 char *a0;
305 struct dict *ptr;
306{
307 return(aahash(a0,a1,aa15tsize,aa15p1,aa15p2,aa15root,ptr));
308}
309struct hnode aa18root[19];
310#define aa18tsize 19
311#define aa18p1 13
312#define aa18p2 17
313char
314ible(a0,a1,ptr)
315 char *a0;
316 struct dict *ptr;
317{
318 return(aahash(a0,a1,aa18tsize,aa18p1,aa18p2,aa18root,ptr));
319}
320struct hnode aa19root[151];
321#define aa19tsize 151
322#define aa19p1 139
323#define aa19p2 149
324char
325ic(a0,a1,ptr)
326 char *a0;
327 struct dict *ptr;
328{
329 return(aahash(a0,a1,aa19tsize,aa19p1,aa19p2,aa19root,ptr));
330}
331struct hnode aa20root[11];
332#define aa20tsize 11
333#define aa20p1 5
334#define aa20p2 7
335char
336ice(a0,a1,ptr)
337 char *a0;
338 struct dict *ptr;
339{
340 return(aahash(a0,a1,aa20tsize,aa20p1,aa20p2,aa20root,ptr));
341}
1a1cc2cb
RH
342struct hnode aa21root[89];
343#define aa21tsize 89
344#define aa21p1 79
345#define aa21p2 83
2958d0fe
RH
346char
347ion(a0,a1,ptr)
348 char *a0;
349 struct dict *ptr;
350{
351 return(aahash(a0,a1,aa21tsize,aa21p1,aa21p2,aa21root,ptr));
352}
353struct hnode aa22root[13];
354#define aa22tsize 13
355#define aa22p1 7
356#define aa22p2 11
357char
358ional(a0,a1,ptr)
359 char *a0;
360 struct dict *ptr;
361{
362 return(aahash(a0,a1,aa22tsize,aa22p1,aa22p2,aa22root,ptr));
363}
364struct hnode aa23root[11];
365#define aa23tsize 11
366#define aa23p1 5
367#define aa23p2 7
368char
369is(a0,a1,ptr)
370 char *a0;
371 struct dict *ptr;
372{
373 return(aahash(a0,a1,aa23tsize,aa23p1,aa23p2,aa23root,ptr));
374}
375struct hnode aa24root[71];
376#define aa24tsize 71
377#define aa24p1 61
378#define aa24p2 67
379char
380ish(a0,a1,ptr)
381 char *a0;
382 struct dict *ptr;
383{
384 return(aahash(a0,a1,aa24tsize,aa24p1,aa24p2,aa24root,ptr));
385}
386struct hnode aa25root[151];
387#define aa25tsize 151
388#define aa25p1 139
389#define aa25p2 149
390char
391ist(a0,a1,ptr)
392 char *a0;
393 struct dict *ptr;
394{
395 return(aahash(a0,a1,aa25tsize,aa25p1,aa25p2,aa25root,ptr));
396}
397struct hnode aa26root[79];
398#define aa26tsize 79
399#define aa26p1 71
400#define aa26p2 73
401char
402ite(a0,a1,ptr)
403 char *a0;
404 struct dict *ptr;
405{
406 return(aahash(a0,a1,aa26tsize,aa26p1,aa26p2,aa26root,ptr));
407}
408struct hnode aa28root[151];
409#define aa28tsize 151
410#define aa28p1 139
411#define aa28p2 149
412char
413ive(a0,a1,ptr)
414 char *a0;
415 struct dict *ptr;
416{
417 return(aahash(a0,a1,aa28tsize,aa28p1,aa28p2,aa28root,ptr));
418}
419struct hnode aa29root[11];
420#define aa29tsize 11
421#define aa29p1 5
422#define aa29p2 7
423char
424ize(a0,a1,ptr)
425 char *a0;
426 struct dict *ptr;
427{
428 return(aahash(a0,a1,aa29tsize,aa29p1,aa29p2,aa29root,ptr));
429}
430struct hnode aa30root[37];
431#define aa30tsize 37
432#define aa30p1 29
433#define aa30p2 31
434char
435lar(a0,a1,ptr)
436 char *a0;
437 struct dict *ptr;
438{
439 return(aahash(a0,a1,aa30tsize,aa30p1,aa30p2,aa30root,ptr));
440}
441struct hnode aa31root[11];
442#define aa31tsize 11
443#define aa31p1 5
444#define aa31p2 7
445char
446less(a0,a1,ptr)
447 char *a0;
448 struct dict *ptr;
449{
450 return(aahash(a0,a1,aa31tsize,aa31p1,aa31p2,aa31root,ptr));
451}
452struct hnode aa33root[11];
453#define aa33tsize 11
454#define aa33p1 5
455#define aa33p2 7
456char
457man(a0,a1,ptr)
458 char *a0;
459 struct dict *ptr;
460{
461 return(aahash(a0,a1,aa33tsize,aa33p1,aa33p2,aa33root,ptr));
462}
1a1cc2cb
RH
463struct hnode aa34root[37];
464#define aa34tsize 37
465#define aa34p1 29
466#define aa34p2 31
2958d0fe
RH
467char
468ment(a0,a1,ptr)
469 char *a0;
470 struct dict *ptr;
471{
472 return(aahash(a0,a1,aa34tsize,aa34p1,aa34p2,aa34root,ptr));
473}
474struct hnode aa35root[11];
475#define aa35tsize 11
476#define aa35p1 5
477#define aa35p2 7
478char
479ness(a0,a1,ptr)
480 char *a0;
481 struct dict *ptr;
482{
483 return(aahash(a0,a1,aa35tsize,aa35p1,aa35p2,aa35root,ptr));
484}
485struct hnode aa37root[11];
486#define aa37tsize 11
487#define aa37p1 5
488#define aa37p2 7
489char
490ous(a0,a1,ptr)
491 char *a0;
492 struct dict *ptr;
493{
494 return(aahash(a0,a1,aa37tsize,aa37p1,aa37p2,aa37root,ptr));
495}
496struct hnode aa39root[11];
497#define aa39tsize 11
498#define aa39p1 5
499#define aa39p2 7
500char
501ship(a0,a1,ptr)
502 char *a0;
503 struct dict *ptr;
504{
505 return(aahash(a0,a1,aa39tsize,aa39p1,aa39p2,aa39root,ptr));
506}
507struct hnode aa40root[61];
508#define aa40tsize 61
509#define aa40p1 53
510#define aa40p2 59
511char
512ss(a0,a1,ptr)
513 char *a0;
514 struct dict *ptr;
515{
516 return(aahash(a0,a1,aa40tsize,aa40p1,aa40p2,aa40root,ptr));
517}
518struct hnode aa42root[89];
519#define aa42tsize 89
520#define aa42p1 79
521#define aa42p2 83
522char
523ure(a0,a1,ptr)
524 char *a0;
525 struct dict *ptr;
526{
527 return(aahash(a0,a1,aa42tsize,aa42p1,aa42p2,aa42root,ptr));
528}
529struct hnode aa43root[19];
530#define aa43tsize 19
531#define aa43p1 13
532#define aa43p2 17
533char
534us(a0,a1,ptr)
535 char *a0;
536 struct dict *ptr;
537{
538 return(aahash(a0,a1,aa43tsize,aa43p1,aa43p2,aa43root,ptr));
539}
540struct hnode aa44root[23];
541#define aa44tsize 23
542#define aa44p1 17
543#define aa44p2 19
544char
545ing(a0,a1,ptr)
546 char *a0;
547 struct dict *ptr;
548{
549 return(aahash(a0,a1,aa44tsize,aa44p1,aa44p2,aa44root,ptr));
550}
1a1cc2cb
RH
551struct hnode aa45root[47];
552#define aa45tsize 47
553#define aa45p1 41
554#define aa45p2 43
2958d0fe
RH
555char
556ed(a0,a1,ptr)
557 char *a0;
558 struct dict *ptr;
559{
560 return(aahash(a0,a1,aa45tsize,aa45p1,aa45p2,aa45root,ptr));
561}