/*
findall.c
*/
#include <stdio.h>
#define YES 1
#define NO 0
/* Grobal */
char data[2000], keyword[180], getword[180];
main()
{
FILE *inp, *out;
char buf[80], dirname[40], fname[40], link[40], link_old[40];
int i, j, key;
/* get current directory */
system("pwd>list_dir");
sprintf(fname, "%s", "list_dir");
if((inp=fopen(fname, "r"))==NULL){
printf("Can't open <%s>.\n", fname);
exit(0);
}
fgets(buf, 80, inp);
for(i=strlen(buf); buf[i]!='/'; i--);
i=i+1;
for(j=0; buf[i]!='\n'; i++,j++)
dirname[j]=buf[i];
dirname[j]='\0';
fclose(inp);
/* open list_all.txt for write */
sprintf(fname, "list_all");
if((out=fopen(fname, "w"))==NULL){
printf("Can't open <%s>.\n", fname);
exit(0);
}
/* open index file for work */
sprintf(fname, "%s.html", dirname);
if((inp=fopen(fname, "r"))==NULL){
printf("Can't open <%s>.\n", fname);
exit(0);
}
strcpy(link_old, "");
while(fgets(data,2000,inp)!=NULL){
strcpy(keyword, "=\"../wmaker/preview/");
if((i=search())>=0){
for(i=i+strlen(keyword), j=0;;i++, j++){
if(data[i]=='\"')
break;
link[j]=data[i];
}
link[j]='\0';
if(strcmp(link_old, link)!=0)
fprintf(out, "%s\n", link);
strcpy(link_old, link);
}
}
}
search()
{
int i, j, key;
char buf[180];
strcpy(getword, keyword);
for(i=0; data[i]!='\n'; i++){
key=YES;
for(j=0; getword[j]!='\0'; j++){
if(getword[j]=='?')
getword[j]=data[i+j];
if(getword[j]!=data[i+j]){
key=NO; break;
}
}
if(key==YES){
getword[j]='\0';
return i;
}
}
return -1;
}