#include"tcpdl.h"

struct namedata * __saveds
createfinalurl( char *string, int task )
{
char tempstring[4096];
int tempchar;
struct strippedurl final;
int i;
/*char detempstring[PFNSIZE];
BPTR deoutputfile;*/
char *pathname;

   final.type[0]=0;
   final.host[0]=0;
   final.pathfilename[0]=0;
   
/*   sprintf( detempstring, "ram:t/%08x.cfu.test", mmpoint->point[task].curldata );
   deoutputfile=Open( detempstring , MODE_NEWFILE );
   if( deoutputfile!=0 )
      FPuts( deoutputfile, string );
   if( deoutputfile!=0 )
      FPuts( deoutputfile, "\12" );
   sprintf( detempstring, "%s://%s/%s", mmpoint->point[task].surl.type, mmpoint->point[task].surl.host, mmpoint->point[task].surl.pathfilename );
   if( deoutputfile!=0 )
      FPuts( deoutputfile, detempstring );
   if( deoutputfile!=0 )
      FPuts( deoutputfile, "\12" );*/
   
   pathname=phrasestring( &final, string );
   
   if( (final.type[0]!=0) & (Strnicmp( final.type, mmpoint->point[task].surl.type, -1 )!=0) )
   {
      sprintf( tempstring, "%s://%s/%s", final.type, final.host, final.pathfilename );
/*      if( deoutputfile!=0 )
         FPuts( deoutputfile, tempstring );
      if( deoutputfile!=0 )
         FPuts( deoutputfile, "\12" );
      if( deoutputfile!=0 )
         FPuts( deoutputfile, "(1a)\12" );
      if( deoutputfile!=0 )
         Close( deoutputfile );*/
      return( getfilenumber( tempstring ) );
   }
   
   if( (final.host[0]!=0) & (Strnicmp( final.host, mmpoint->point[task].surl.host, -1 )!=0) )
   {
      sprintf( tempstring, "%s://%s/%s", final.type, final.host, final.pathfilename );
/*      if( deoutputfile!=0 )
         FPuts( deoutputfile, tempstring );
      if( deoutputfile!=0 )
         FPuts( deoutputfile, "\12" );
      if( deoutputfile!=0 )
         FPuts( deoutputfile, "(1b)\12" );
      if( deoutputfile!=0 )
         Close( deoutputfile );*/
      return( getfilenumber( tempstring ) );
   }
   
   if( (final.type[0]!=0) & (final.host[0]!=0) & (final.pathfilename[0]!=0) )
   {
      sprintf( tempstring, "%s://%s/%s", final.type, final.host, final.pathfilename );
/*      if( deoutputfile!=0 )
         FPuts( deoutputfile, tempstring );
      if( deoutputfile!=0 )
         FPuts( deoutputfile, "\12" );
      if( deoutputfile!=0 )
         FPuts( deoutputfile, "(2)\12" );
      if( deoutputfile!=0 )
         Close( deoutputfile );*/
      return( getfilenumber( tempstring ) );
   }
   
   if( final.type[0]==0 )
      sprintf( final.type, "%s", mmpoint->point[task].surl.type );
   
   if( final.host[0]==0 )
      sprintf( final.host, "%s", mmpoint->point[task].surl.host );
   
   
   i=0;
   while( TRUE )
   {
      if( (mmpoint->point[task].surl.pathfilename[i]==0) | (mmpoint->point[task].surl.pathfilename[i]==63) )
         break;
      i++;
   }
   while( TRUE )
   {
      if( mmpoint->point[task].surl.pathfilename[i]==47 )
         break;
      if( i==0 )
         break;
      i--;
   }
   tempchar = mmpoint->point[task].surl.pathfilename[i];
   mmpoint->point[task].surl.pathfilename[i]=0;
   
   sprintf( tempstring, "%s://%s/%s/%s", final.type, final.host, mmpoint->point[task].surl.pathfilename, pathname );
/*   if( deoutputfile!=0 )
      FPuts( deoutputfile, tempstring );
   if( deoutputfile!=0 )
      FPuts( deoutputfile, "\12" );*/
   
   mmpoint->point[task].surl.pathfilename[i]=tempchar;
   
   phrasestring( &final, tempstring );
   
   sprintf( tempstring, "%s://%s/%s", final.type, final.host, final.pathfilename );
/*   if( deoutputfile!=0 )
      FPuts( deoutputfile, tempstring );
   if( deoutputfile!=0 )
      FPuts( deoutputfile, "\12" );
   if( deoutputfile!=0 )
      FPuts( deoutputfile, "(3)\12" );
   if( deoutputfile!=0 )
      Close( deoutputfile );*/
   return( getfilenumber( tempstring ) );
}

