#include <exec/types.h>
#include <libraries/dos.h>
#include <workbench/workbench.h>
#include <workbench/startup.h>

#include <clib/alib_protos.h>
#include <clib/exec_protos.h>
#include <clib/dos_protos.h>
#include <clib/icon_protos.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct Library *IconBase=NULL;
void sr(char *s);

char source[200];
char destination[200];

main(int argc,char *argv[])
{
  char *s;
  int i;
  struct DiskObject *src;
  struct DiskObject *dst;
  struct Gadget *srcgad;
  struct DiskObject new;
  BOOL success=FALSE;
  if(argc!=3)
  {
     printf("CopyObj version 1.0, written by Joseph Hodge\n");
     printf("usage: CopyObj <source.info> <destination.info>\n");
     printf("   ie: CopyObj Serial.info BBS:Node1/Serial.info\n");
     printf("\n\n");
     exit(0);
  }
  
  strcpy(source,argv[1]);
  strcpy(destination,argv[2]);
  sr(source);
  sr(destination);
  i=strlen(source)-1;
  while(i>=0)
  {
     if(source[i]=='.') break;
     i--;
  }
  if(i) source[i]='\0';
i=strlen(destination)-1;
  while(i>=0)
  {
     if(destination[i]=='.') break;
     i--;
  }
  if(i) destination[i]='\0';

  IconBase=OpenLibrary("icon.library",0L);
  if(src=GetDiskObject(source))
  {

    srcgad=(struct Gadget *)&src->do_Gadget;
    if(dst=GetDiskObject(destination))
    {
       CopyMem(dst,&new,sizeof(struct DiskObject));
       new.do_Gadget.Width=srcgad->Width;
       new.do_Gadget.Height=srcgad->Height;
       new.do_Gadget.Flags=srcgad->Flags;
       new.do_Gadget.Activation=srcgad->Activation;
       new.do_Gadget.GadgetType=srcgad->GadgetType;
       new.do_Gadget.GadgetRender=srcgad->GadgetRender;
       new.do_Gadget.SelectRender=srcgad->SelectRender;
       PutDiskObject(destination,(struct DiskObject *)&new);
       FreeDiskObject(dst);
    }
    else
    {
      PutDiskObject(destination,src);
    }
    FreeDiskObject(src);
  }
  CloseLibrary(IconBase);
  exit(0);
}

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