"SfR Fresh" - the SfR Freeware/Shareware Archive 
As a special service "SfR Fresh" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting with prefixed line numbers.
Alternatively you can here view or download the uninterpreted source code file.
That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
1 /*****************************************************************************
2 ** Semantische Ueberpruefungen ***
3 ** ***
4 ** Da z.b. ein I,l,1 sehr gleich aussehen werden bei nicht-erfolgreicher ***
5 ** Suche im Woerterbuch einfach mal die anderen Moeglichkeiten eingesetzt. ***
6 ** ***
7 *****************************************************************************/
8
9 #include <stdlib.h>
10 #include <stdio.h>
11 #include "baum.h"
12 #include "win.h"
13
14
15 char GefundeneWoerter[60][60];
16 extern struct Objekt *WListe,*Wort,*WEingabe,*FLERNEN,*FWEITER;
17 extern char *arg1;
18 extern long Statu;
19 long aha;
20
21 short int GrossAnfang(Text,Anzahl)
22 char *Text;
23 long Anzahl;
24 {
25 char retten;
26 retten=Text[0];
27 if ((Text[0]>='A') && (Text[0]<='Z')) Text[0]=Text[0]-'A'+'a';
28 if (Text[0]=='Ö') Text[0]='ö';
29 if (Text[0]=='Ü') Text[0]='ü';
30 if (Text[0]=='Ä') Text[0]='ä';
31 if (SucheElement(Text)) { Text[0]=retten; return(1); }
32 Text[0]=retten;
33 if ((Text[0]>='a') && (Text[0]<='z')) Text[0]=Text[0]-'a'+'A';
34 if (Text[0]=='ü') Text[0]='Ü';
35 if (Text[0]=='Ö') Text[0]='ö';
36 if (Text[0]=='Ä') Text[0]='ä';
37 if (SucheElement(Text)) { Text[0]=retten; return(1); }
38 Text[0]=retten;
39 return(0);
40 }
41
42 short int SematischerCheck(Puffer,Anzahl)
43 char *Puffer;
44 long Anzahl;
45 {
46 char Text[100],retten;
47 long t,i;
48 aha=0;
49 strcpy(Text,Puffer);
50 if (Anzahl==1) return(1);
51
52 /*************************/
53 /* Grossb. durch Kleinb. */
54 /*************************/
55
56 for (i=0;i<Anzahl;i++)
57 {
58 if ((Text[i]>='A') && (Text[i]<='Z')) { Text[i]=Text[i]-'A'+'a'; }
59 if (Text[i]=='Ä') Text[i]='ä';
60 if (Text[i]=='Ö') Text[i]='ö';
61 if (Text[i]=='Ü') Text[i]='ü';
62 }
63 if (SucheElement(Text)) { return(1); }
64 Text[0]=Text[0]-'a'+'A';
65 if (SucheElement(Text)) { return(1); }
66 for (i=0;i<Anzahl;i++)
67 {
68 if ((Text[i]>='a') && (Text[i]<='z')) { Text[i]=Text[i]-'a'+'A'; }
69 if (Text[i]=='ä') Text[i]='Ä';
70 if (Text[i]=='ü') Text[i]='Ü';
71 if (Text[i]=='ö') Text[i]='Ö';
72 }
73 if (SucheElement(Text)) { return(1); }
74 strcpy(Text,Puffer);
75
76
77 for (t=0;t<Anzahl;t++)
78 {
79 retten=Text[t];
80
81 /***************************/
82 /* Check ob I,l,1 vorkommt */
83 /***************************/
84
85 if (Text[t]=='1')
86 {
87 Text[t]='l';
88 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
89 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
90 Text[t]='I';
91 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
92 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
93 Text[t]=retten;
94 }
95
96 if (Text[t]=='I')
97 {
98 Text[t]='l';
99 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
100 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
101 Text[t]=retten;
102 }
103
104 if (Text[t]=='l')
105 {
106 Text[t]='I';
107 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
108 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
109 Text[t]=retten;
110 }
111
112 if ((Text[t]=='I') && (Text[t+1]=='I'))
113 {
114 Text[t]='l'; Text[t+1]='l';
115 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
116 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
117 Text[t]='I'; Text[t+1]='l';
118 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
119 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
120 Text[t]='l'; Text[t+1]='I';
121 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
122 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
123 Text[t]=retten; Text[t+1]=Puffer[t+1];
124 }
125
126 if ((Text[t]=='I') && (Text[t+1]=='l'))
127 {
128 Text[t]='I'; Text[t+1]='I';
129 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
130 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
131 Text[t]='l'; Text[t+1]='I';
132 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
133 if (GrossAnfang(Text,Anzahl)){ Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
134 Text[t]='l'; Text[t+1]='l';
135 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
136 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
137 Text[t]=retten; Text[t+1]=Puffer[t+1];
138 }
139
140
141 if ((Text[t]=='l') && (Text[t+1]=='I'))
142 {
143 Text[t]='l'; Text[t+1]='l';
144 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
145 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
146 Text[t]='I'; Text[t+1]='I';
147 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
148 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
149 Text[t]='I'; Text[t+1]='l';
150 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
151 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
152 Text[t]=retten; Text[t+1]=Puffer[t+1];
153 }
154
155 if ((Text[t]=='l') && (Text[t+1]=='l'))
156 {
157 Text[t]='I'; Text[t+1]='I';
158 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
159 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
160 Text[t]='l'; Text[t+1]='I';
161 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
162 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
163 Text[t]='I'; Text[t+1]='l';
164 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
165 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
166 Text[t]=retten; Text[t+1]=Puffer[t+1];
167 }
168
169 if ((Text[t]=='I') && (Text[t+1]=='1'))
170 {
171 Text[t]='l'; Text[t+1]='l';
172 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
173 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
174 Text[t]='I'; Text[t+1]='l';
175 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
176 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
177 Text[t]='l'; Text[t+1]='I';
178 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
179 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
180 Text[t]='I'; Text[t+1]='I';
181 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
182 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
183 Text[t]=retten; Text[t+1]=Puffer[t+1];
184 }
185
186 if ((Text[t]=='1') && (Text[t+1]=='I'))
187 {
188 Text[t]='I'; Text[t+1]='I';
189 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
190 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
191 Text[t]='l'; Text[t+1]='I';
192 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
193 if (GrossAnfang(Text,Anzahl)){ Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
194 Text[t]='l'; Text[t+1]='l';
195 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
196 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
197 Text[t]='I'; Text[t+1]='l';
198 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
199 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
200 Text[t]=retten; Text[t+1]=Puffer[t+1];
201 }
202
203 if ((Text[t]=='l') && (Text[t+1]=='1'))
204 {
205 Text[t]='l'; Text[t+1]='l';
206 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
207 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
208 Text[t]='I'; Text[t+1]='l';
209 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
210 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
211 Text[t]='l'; Text[t+1]='I';
212 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
213 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
214 Text[t]='I'; Text[t+1]='I';
215 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
216 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
217 Text[t]=retten; Text[t+1]=Puffer[t+1];
218 }
219
220 if ((Text[t]=='1') && (Text[t+1]=='l'))
221 {
222 Text[t]='I'; Text[t+1]='I';
223 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
224 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
225 Text[t]='l'; Text[t+1]='I';
226 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
227 if (GrossAnfang(Text,Anzahl)){ Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
228 Text[t]='l'; Text[t+1]='l';
229 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
230 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
231 Text[t]='I'; Text[t+1]='l';
232 if (SucheElement(Text)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
233 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; Puffer[t+1]=Text[t+1]; return(1); }
234 Text[t]=retten; Text[t+1]=Puffer[t+1];
235 }
236
237 /****************************/
238 /* Check ob 8,B,ß vorkommt */
239 /****************************/
240
241 if (Text[t]=='8')
242 {
243 Text[t]='B';
244 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
245 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
246 Text[t]='ß';
247 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
248 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
249 Text[t]=retten;
250 }
251 if (Text[t]=='ß')
252 {
253 Text[t]='B';
254 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
255 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
256 }
257 if (Text[t]=='B')
258 {
259 Text[t]='ß';
260 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
261 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
262 }
263
264 /**************************/
265 /* Check O,D vorkommt */
266 /**************************/
267
268 if (Text[t]=='O')
269 {
270 Text[t]='D';
271 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
272 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
273 Text[t]=retten;
274 }
275
276 if (Text[t]=='D')
277 {
278 Text[t]='O';
279 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
280 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
281 Text[t]=retten;
282 }
283
284 /*************************/
285 /* Check ob k,h,b */
286 /*************************/
287
288 if (Text[t]=='b')
289 {
290 Text[t]='h';
291 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
292 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
293 Text[t]='k';
294 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
295 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
296 Text[t]=retten;
297 }
298 if (Text[t]=='h')
299 {
300 Text[t]='b';
301 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
302 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
303 Text[t]='k';
304 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
305 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
306 Text[t]=retten;
307 }
308 if (Text[t]=='k')
309 {
310 Text[t]='h';
311 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
312 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
313 Text[t]='b';
314 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
315 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
316 Text[t]=retten;
317 }
318
319 /*************************/
320 /* Check M,W */
321 /*************************/
322
323 if (Text[t]=='M')
324 {
325 Text[t]='W';
326 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
327 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
328 Text[t]=retten;
329 }
330 if (Text[t]=='W')
331 {
332 Text[t]='M';
333 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
334 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
335 Text[t]=retten;
336 }
337
338 /*************************/
339 /* Check U,V */
340 /*************************/
341
342 if (Text[t]=='U')
343 {
344 Text[t]='V';
345 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
346 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
347 Text[t]=retten;
348 }
349 if (Text[t]=='V')
350 {
351 Text[t]='U';
352 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
353 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
354 Text[t]=retten;
355 }
356
357 /*************************/
358 /* Check f,t */
359 /*************************/
360
361 if (Text[t]=='f')
362 {
363 Text[t]='t';
364 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
365 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
366 Text[t]=retten;
367 }
368 if (Text[t]=='t')
369 {
370 Text[t]='f';
371 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
372 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
373 Text[t]=retten;
374 }
375
376 /*************************/
377 /* Check H,tt */
378 /*************************/
379
380 if (Text[t]=='H')
381 {
382 for (i=Anzahl;i!=t;i--) Text[i+1]=Text[i];
383 Text[t]='t';
384 Text[t+1]='t';
385 if (SucheElement(Text)) { strcpy(Puffer,Text); return(1); }
386 if (GrossAnfang(Text,Anzahl)) { strcpy(Puffer,Text); return(1); }
387 strcpy(Text,Puffer);
388 }
389 if ((Text[t]=='t') && (Text[t+1]=='t'))
390 {
391 for (i=t;i<=Anzahl;i++) Text[i]=Text[i+1];
392 Text[t]='H';
393 if (SucheElement(Text)) { strcpy(Puffer,Text); return(1); }
394 if (GrossAnfang(Text,Anzahl)) { strcpy(Puffer,Text); return(1); }
395 strcpy(Text,Puffer);
396 }
397
398 /*************************/
399 /* Check m,rn */
400 /*************************/
401
402 if (Text[t]=='m')
403 {
404 for (i=Anzahl;i!=t;i--) Text[i+1]=Text[i];
405 Text[t]='r';
406 Text[t+1]='n';
407 if (SucheElement(Text)) { strcpy(Puffer,Text); return(1); }
408 if (GrossAnfang(Text,Anzahl)) { strcpy(Puffer,Text); return(1); }
409 strcpy(Text,Puffer);
410 }
411 if ((Text[t]=='r') && (Text[t+1]=='n'))
412 {
413 for (i=t;i<=Anzahl;i++) Text[i]=Text[i+1];
414 Text[t]='m';
415 if (SucheElement(Text)) { strcpy(Puffer,Text); return(1); }
416 if (GrossAnfang(Text,Anzahl)) { strcpy(Puffer,Text); return(1); }
417 strcpy(Text,Puffer);
418 }
419
420 /*************************/
421 /* Check rr,n */
422 /*************************/
423
424 if (Text[t]=='n')
425 {
426 for (i=Anzahl;i!=t;i--) Text[i+1]=Text[i];
427 Text[t]='r';
428 Text[t+1]='r';
429 if (SucheElement(Text)) { strcpy(Puffer,Text); return(1); }
430 if (GrossAnfang(Text,Anzahl)) { strcpy(Puffer,Text); return(1); }
431 strcpy(Text,Puffer);
432 }
433 if ((Text[t]=='r') && (Text[t+1]=='r'))
434 {
435 for (i=t;i<=Anzahl;i++) Text[i]=Text[i+1];
436 Text[t]='n';
437 if (SucheElement(Text)) { strcpy(Puffer,Text); return(1); }
438 if (GrossAnfang(Text,Anzahl)) { strcpy(Puffer,Text); return(1); }
439 strcpy(Text,Puffer);
440 }
441
442 /*************************/
443 /* Check n,u,v */
444 /*************************/
445
446 if (Text[t]=='n')
447 {
448 Text[t]='u';
449 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
450 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
451 Text[t]='v';
452 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
453 if (GrossAnfang(Text,Anzahl)) { Puffer[t]=Text[t]; return(1); }
454 Text[t]=retten;
455 }
456 if (Text[t]=='v')
457 {
458 Text[t]='u';
459 if (SucheElement(Text)) { Puffer[t]=Text[t]; return(1); }
460 if (GrossAnfang(Text,Anzahl)) { Puffer[t