diff options
Diffstat (limited to 'src/htsfilters.c')
-rw-r--r-- | src/htsfilters.c | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/src/htsfilters.c b/src/htsfilters.c index 68d66f5..4cc740b 100644 --- a/src/htsfilters.c +++ b/src/htsfilters.c @@ -55,9 +55,9 @@ Please visit our Website: http://www.httrack.com #include <ctype.h> /* END specific definitions */ -// à partir d'un tableau de {"+*.toto","-*.zip","+*.tata"} définit si nom est autorisé -// optionnel: taille à contrôller (ou numéro, etc) en pointeur -// (en de détection de *size, la taille limite est écrite par dessus *size) +// à partir d'un tableau de {"+*.toto","-*.zip","+*.tata"} définit si nom est autorisé +// optionnel: taille à contrôller (ou numéro, etc) en pointeur +// (en de détection de *size, la taille limite est écrite par dessus *size) // exemple: +-*.gif*[<5] == supprimer GIF si <5KB int fa_strjoker(int type,char** filters,int nfil,char* nom,LLint* size,int* size_flag,int* depth) { int verdict = 0; // on sait pas @@ -83,7 +83,7 @@ int fa_strjoker(int type,char** filters,int nfil,char* nom,LLint* size,int* size if (sz != *size) sizelimit=sz; if (filters[i][0]=='+') - verdict = 1; // autorisé + verdict = 1; // autorisé else verdict = -1; // interdit if (depth) @@ -98,12 +98,12 @@ int fa_strjoker(int type,char** filters,int nfil,char* nom,LLint* size,int* size // supercomparateur joker (tm) // compare a et b (b=avec joker dedans), case insensitive [voir CI] -// renvoi l'adresse de la première lettre de la chaine -// (càd *[..]toto.. renvoi adresse de toto dans la chaine) -// accepte les délires du genre www.*.*/ * / * truc*.* -// cet algo est 'un peu' récursif mais ne consomme pas trop de tm +// renvoi l'adresse de la première lettre de la chaine +// (cà d *[..]toto.. renvoi adresse de toto dans la chaine) +// accepte les délires du genre www.*.*/ * / * truc*.* +// cet algo est 'un peu' récursif mais ne consomme pas trop de tm // * = toute lettre -// --?-- : spécifique à HTTrack et aux ? +// --?-- : spécifique à HTTrack et aux ? HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { //int err=0; if (strnotempty(joker)==0) { // fin de chaine joker @@ -112,20 +112,20 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { else if (chaine[0]=='?') return chaine; // --?-- pour les index.html?Choix=2 else - return NULL; // non trouvé + return NULL; // non trouvé } // on va progresser en suivant les 'mots' contenus dans le joker - // un mot peut être un * ou bien toute autre séquence de lettres + // un mot peut être un * ou bien toute autre séquence de lettres - if (strcmp(joker,"*")==0) { // ok, rien après + if (strcmp(joker,"*")==0) { // ok, rien après return chaine; } // 1er cas: jokers * ou jokers multiples *[..] if (joker[0]=='*') { // comparer joker+reste (*toto/..) - int jmp; // nombre de caractères pour le prochain mot dans joker - int cut = 0; // interdire tout caractère superflu + int jmp; // nombre de caractères pour le prochain mot dans joker + int cut = 0; // interdire tout caractère superflu char pass[256]; char LEFT='[',RIGHT=']'; int unique=0; @@ -147,7 +147,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { int i; for(i=0;i<256;i++) pass[i]=0; - // noms réservés + // noms réservés if ((strfield(joker+2,"file")) || (strfield(joker+2,"name"))) { for(i=0;i<256;i++) pass[i]=1; pass[(int) '?'] = 0; @@ -166,7 +166,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { while ((joker[i]!=RIGHT) && (joker[i]) && (i<len)) i++; } } else if (strfield(joker+2,"param")) { - if (chaine[0]=='?') { // il y a un paramètre juste là + if (chaine[0]=='?') { // il y a un paramètre juste là for(i=0;i<256;i++) pass[i]=1; } // sinon synonyme de 'rien' i=2; @@ -174,10 +174,10 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { while ((joker[i]!=RIGHT) && (joker[i]) && (i<len)) i++; } } else { - // décode les directives comme *[A-Z,âêîôû,0-9] + // décode les directives comme *[A-Z,âêîôû,0-9] i=2; - if (joker[i] == RIGHT) { // *[] signifie "plus rien après" - cut = 1; // caractère supplémentaire interdit + if (joker[i] == RIGHT) { // *[] signifie "plus rien après" + cut = 1; // caractère supplémentaire interdit } else { int len=(int) strlen(joker); while ((joker[i]!=RIGHT) && (joker[i]) && (i<len)) { @@ -189,7 +189,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { if (size) { if (*size>=0) { if (size_flag) - *size_flag=1; /* a joué */ + *size_flag=1; /* a joué */ if (joker[i-1]=='<') lverdict=(*size<lsize); else @@ -228,7 +228,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { } } } - // à sauter dans joker + // à sauter dans joker jmp=i; if (joker[i]) jmp++; @@ -254,7 +254,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { } // comparaison en boucle, c'est ca qui consomme huhu.. - // le tableau pass[256] indique les caractères ASCII autorisés + // le tableau pass[256] indique les caractères ASCII autorisés // tester sans le joker (pas ()+ mais ()*) if (!unique) { @@ -270,7 +270,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { else /* *(a) only match a (not aaaaa) */ max=1; while(i<(int) max) { - if (pass[(int) (unsigned char) chaine[i]]) { // caractère autorisé + if (pass[(int) (unsigned char) chaine[i]]) { // caractère autorisé if ( (adr=strjoker(chaine+i+1,joker+jmp,size,size_flag)) ) { return adr; } @@ -278,7 +278,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { } else i=max+2; // sortir } - // tester chaîne vide + // tester chaîne vide if (i!=max+2) // avant c'est ok if ( (adr=strjoker(chaine+max,joker+jmp,size,size_flag)) ) return adr; @@ -290,7 +290,7 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { if (strnotempty(chaine)) { int jmp=0,ok=1; - // comparer début de joker et début de chaine + // comparer début de joker et début de chaine while((joker[jmp]!='*') && (joker[jmp]) && (ok)) { // CI : remplacer streql par une comparaison != if (!streql(chaine[jmp],joker[jmp])) { @@ -314,13 +314,13 @@ HTS_INLINE char* strjoker(char* chaine,char* joker,LLint* size,int* size_flag) { } // recherche multiple -// exemple: find dans un texte de strcpybuff(*[A-Z,a-z],"*[0-9]"); va rechercher la première occurence +// exemple: find dans un texte de strcpybuff(*[A-Z,a-z],"*[0-9]"); va rechercher la première occurence // d'un strcpy sur une variable ayant un nom en lettres et copiant une chaine de chiffres -// ATTENTION!! Eviter les jokers en début, où gare au temps machine! +// ATTENTION!! Eviter les jokers en début, où gare au temps machine! char* strjokerfind(char* chaine,char* joker) { char* adr; while(*chaine) { - if ( (adr=strjoker(chaine,joker,NULL,NULL)) ) { // ok trouvé + if ( (adr=strjoker(chaine,joker,NULL,NULL)) ) { // ok trouvé return adr; } chaine++; |