extern char **environ;

int strtoupper(char *stringain, char *stringaout){
 int i,l;
 i=0;l=strlen(stringain);
 stringaout[0]=' ';
 for (i=0; i<l; i++){
   stringaout[i+1]=(char)toupper(stringain[i]);
 }
stringaout[i]=' ';
stringaout[i+1]=0;
return 1;
}

int filtro(char *linea){
 int i;
 i=0;
 while(1){
    if (patterns[i][0]==0) break;
    if (strstr(linea,patterns[i])){ 
	if (getenv("DEBUGLEOQFILTER")){
		dataora();
		env();
		fprintf(stderr,"%s trovato in %s\n",patterns[i],linea);
	}
	return 1;
    }
    i++;
 }
 return 0;
}

env (){
int i;
i=0;
 while (1){
 fprintf(stderr,"%s,",environ[i]);
 i++;
 if (environ[i]==NULL) break;
 }

}


dataora(){
time_t t;
struct tm *tm;
t=time(0);
 tm=localtime(&t);
 fprintf(stderr,"DATAORA=%d-%02d-%02d %02d:%02d:%02d,",1900+tm->tm_year,
	tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);

}


main(){
int c;int i;int ritorno;
char linea[4097];
char lineaupper[4099];
ritorno=0;

while (1){
 fgets(linea,4096,stdin);
 strtoupper(linea,lineaupper);
 if (feof(stdin)) break;
 if (!filtro(lineaupper)) fputs(linea,stdout);
// else ritorno=31;
 else exit(99);
}
exit(ritorno) ;
}

