#include <stdio.h>
#include "detar.h"
char **extract;
int extsize;
FILE *ftar;
extern int all(),some(),strcmp();
extern int tfile;
extern char tarfile[32];

xtar(ac,av)
int ac;
char *av[];
{
    if(tfile)
    {
        if((ftar=fopen(tarfile,"rb"))==NULL)
        {
            fprintf(stderr,"detar:Can't open tarfile %s\n",tarfile);
            Exit(1);
        }
    }
    else
    {
        if(topen(0))		/* Load tape */
        {
            printf("Tar Aborted\n");
            Exit(1);
        }
    }
    if(ac==0)
    {
        do_detar(all);
    }
    else
    {
        extsize=ac;
        extract=av;
        qsort(extract,ac,sizeof(char *),strcmp);
        do_detar(some);
    }
    if(tfile) fclose(ftar);
    else tclose();
}

int all(what)
char *what;
{
    return 1;
}

int some(what)
char *what;
{
    int i;

    for(i=0;i<extsize;i++)
    {
	if(glob(what, extract[i])) return 1;
    }
    return 0;
}
