#include <exec/types.h>
#include <exec/exec.h>
#include <stdio.h>
#include <stdlib.h>
#include "dh0:code/code20/defines.h"
#include "work:romconf/doorheader.h"
struct Commands cmds;
struct User U;
void end();
void sr();
#define sm sendmessage
#define gu getuserstring

int node;
main(int argc, char *argv[])
{
   char conf[200];
   char cfg[100];
   char Udat[100];
   char temp[200];
   char PutPt[200];
   int num=0;
   int cn;
   FILE *fi,*fo;
   if(argc!=2)
   {
     printf("\n");
     printf("Conference Access v1.0 written by Joseph Hodge\n");
     printf("This is an AmiExpress 1.1w+ XIM\n");
     printf("\n\n");
     exit(0);
   }
   node= argv[1][0]-'0';
   Register(argv[1][0]-'0');
   gu(conf,BB_CONFNAME);
   gu(temp,BB_LOCAL);
   sprintf(cfg,"%sconfig%d",temp,node);
   fi=fopen(cfg,"rb");
   if(fi==NULL)
   {
     sm("[31mError, can't locate config file[0m",1);

     ShutDown();
     end();
   }
   fread((APTR)&cmds,sizeof(struct Commands),1,fi);
   fclose(fi);
   
   cn=0;
   strupr(conf);
   sr(conf);
   while(cn<9)
   {
     strupr(&cmds.ConfName[cn]);
     sr(&cmds.ConfName[cn]);
     if(!strcmp(conf,&cmds.ConfName[cn]))
      break;
     cn++;
   }
   if(cn==9)
   {
     sm("[33mCan't locate conference[0m",1);
     ShutDown();
     end();
   }

   sprintf(Udat,"%sUser.Data",temp);
   fi=fopen(Udat,"rb");
   if(fi==NULL)
   {
     sm("[34mCan't locate User data file[0m",1);
     ShutDown();
     end();
   }
   sprintf(PutPt,"%sNode%d/Work/PutPt.txt",temp,node);
   fo=fopen(PutPt,"w");
   if(fo==NULL)
   {
      fclose(fi);
      sm("[31mError, can't create work file[0m",1);
      ShutDown();
      end();
   }
   fprintf(fo,"\n");
   fprintf(fo,"                         [33mConference Access List[0m\n");
   fprintf(fo,"\n");
   while(fread((APTR)&U,sizeof(struct User),1,fi)!=NULL)
   {
     if(U.Conference_Access[cn]=='X')
     {
       fprintf(fo,"     [36m[[33m%3d[36m][32m %-20.20s [35m -=+=-[32m %-20.20s[0m\n",num,U.Name,U.Location); num++;
     }
   }

   fclose(fo);
   fclose(fi);
   sprintf(PutPt,"%sNode%d/Work/PutPt",temp,node);
   showgfile(PutPt);
   unlink(PutPt);
   ShutDown();
   end();
}

void end()
{
  exit(0);
}
void sr(char *str)
{
  register int i;
  i=strlen(str)-1;
  while(i>-1)
  {
    if(*(str+i)<=32) *(str+i)='\0'; else break;
    i--;
  }
}
