/*

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;
}