Ich habe gerade mal einen Diff f�r mkcountries.c gebastelt, der auch die
Ausland.dat ber�cksichtigt. Damit mkcountries funktioniert, mu� jetzt
zus�tzlich noch die ausland.dat nach /usr/lib/isdn kopiert werden.
Ist ein quick-hack, sollte aber eigentlich funktionieren.
Patch ist angeh�ngt (diff gegen i4ldev-CVS-Tree von gestern)
--
Jochen Erwied | EMail: [EMAIL PROTECTED] | Work: (9-18 CET)
Sauerbruchstr. 17 | Voice (q): +49-208-3880018 | Voice: +49-2151-7294-24
D-45470 Muelheim | X.75/V34/FAX: +49-208-3880019 | FAX: +49-2151-7294-50
--- /usr/src/isdn4k/isdn4k-utils/isdnlog/tools/mkcountries.c Fri Apr 16 23:55:21
1999
+++ mkcountries.c Sun May 9 20:56:35 1999
@@ -12,5 +12,8 @@
#define COUNTRIES "/usr/lib/isdn/countries.dat"
-#define MAXLAND 248
+#define AUSLAND "/usr/lib/isdn/ausland.dat"
+
+#define MAXLAND 256
+#define MAXAUSLAND 2048
#define WMAX 64
@@ -29,7 +32,8 @@
} LAND;
-
static LAND Land[MAXLAND];
+static LAND Ausland[MAXAUSLAND];
static int nLand = 0;
+static int nAusland = 0;
@@ -106,5 +110,5 @@
auto FILE *f;
auto char s[BUFSIZ], s1[BUFSIZ], us[BUFSIZ];
-
+ int nFound;
if (argc > 1) {
@@ -117,4 +121,29 @@
} /* if */
+ /* Lesen der Auslandstabelle */
+ if((f=fopen(AUSLAND, "r")) != (FILE *)NULL)
+ {
+ while(fgets(s, BUFSIZ, f))
+ {
+ if(p=strchr(s,':'))
+ {
+ *p++='\0';
+ Ausland[nAusland].vorwahl = strdup(s+1);
+ if(p1=strchr(p, '\n'))
+ {
+ *p1='\0';
+ if(p1=strchr(p,'#'))
+ {
+ *p1='\0';
+ Ausland[nAusland].hint = down(deb(strdup(p1+1)));
+ }
+ }
+ Ausland[nAusland].bez = deb(strdup(p));
+ Ausland[nAusland].used = 0;
+ Ausland[nAusland++].ubez = down(deb(strdup(p)));
+ }
+ }
+ }
+
if ((f = fopen(COUNTRIES, "r")) != (FILE *)NULL) {
while (fgets(s, BUFSIZ, f)) {
@@ -147,4 +176,33 @@
(void)down(us);
+ nFound = 0;
+
+ for(i=0; i<nAusland; i++)
+ {
+ match = 0;
+ if(strstr(Ausland[i].ubez, us))
+ match = 1;
+ else if((l = wld(us, Ausland[i].ubez)) <= DISTANCE)
+ match = 2;
+ else if(Ausland[i].hint && strstr(Ausland[i].hint, us))
+ match = 3;
+ if(match)
+ {
+ nFound++;
+ Ausland[i].used++;
+
+ printf("A:+%s%*s# %s", Ausland[i].vorwahl, 6 -
+strlen(Ausland[i].vorwahl), "", Ausland[i].bez);
+
+ if (match == 2)
+ printf(" (FUZZ %d:``%s'' ~ ``%s'')", l, s1, Ausland[i].bez);
+
+ printf("\n");
+ }
+ }
+
+ /* Schon Treffer gefunden? Wenn ja, nicht in Countries suchen */
+ if(nFound)
+ continue;
+
match = 0;