Admin Panel
/* xadClientVer (c) 2011 Chris Young <chris@unsatisfactorysoftware.co.uk> */
#include <proto/xadmaster.h>
#include <proto/exec.h>
#include <proto/dos.h>
#ifdef __AROS__
#include <string.h>
#include <stdio.h>
struct xadMasterBase *xadMasterBase;
#endif
int main(int argc, char **argv)
{
LONG rarray[] = {0,0};
struct RDArgs *args;
int ret=0;
char *client = NULL;
BOOL rev = FALSE;
enum
{
A_CLIENT,
A_REV
};
STRPTR template = "CLIENT/A,REV=REVISION/S";
args = ReadArgs(template,rarray,NULL);
if(args)
{
if(rarray[A_CLIENT])
client = strdup(rarray[A_CLIENT]);
if(rarray[A_REV])
rev = TRUE;
FreeArgs(args);
}
else
{
printf("xadClientVer\nhttp://www.unsatisfactorysoftware.co.uk\n\n");
return 0;
}
if((xadMasterBase = (struct xadMasterBase *) OpenLibrary("xadmaster.library", 13)))
{
#ifdef __amigaos4__
IxadMaster = (struct xadMasterIFace *)GetInterface(xadMasterBase,"main",1,NULL);
#endif
struct xadClient *xc;
if((xc = xadGetClientInfo()))
{
while(xc && (ret==0))
{printf("'%s'\t%d\t%d\n",xc->xc_ArchiverName,xc->xc_ClientVersion,xc->xc_ClientRevision);
#ifdef __amigaos4__
if(!strncmp(client,xc->xc_ArchiverName))
#else
if(!strcmp(client,xc->xc_ArchiverName))
#endif
{
printf("%ld.%ld\n",xc->xc_ClientVersion,xc->xc_ClientRevision);
if(rev) ret = xc->xc_ClientRevision;
else ret = xc->xc_ClientVersion;
}
xc = xc->xc_Next;
}
}
#ifdef __amigaos4__
if(IxadMaster) DropInterface((struct Interface *)IxadMaster);
#endif
CloseLibrary((struct Library *) xadMasterBase);
}
else
printf("Could not open xadmaster.library\n");
return ret;
}