home *** CD-ROM | disk | FTP | other *** search
- /*
- * main ( int argc, char *argv[] )
- *
- * VersCheckGUI
- *
- * Copyright 1999 by Michaela Prüß
- *
- */
-
- #include "main.h"
-
- int main(int argc, char *argv[])
- {
- if (argc==2 && argv[1][0]=='?') {
- PRINT_VERSION;
- exit(0);
- }
-
- if(!verscheck_init())
- {
- verscheck_close();
- return(1L);
- }
-
- IDisplayBorders(ri, win, &verscheck_border_data[0], 0, 0);
- IDisplayGadgets(win,gl);
-
- verscheck_action();
-
- verscheck_close();
-
- return(0L);
- }
-
- BOOL verscheck_init( void )
- {
- if (!(IntuiSupBase = (struct Library*)OpenLibrary(IntuiSupName,IntuiSupVersion)) )
- return FALSE;
-
- if (!(ri = IGetRenderInfo(NULL, RENDER_INFO_FLAGS)) )
- return FALSE;
-
- if (!(win = IOpenWindow(ri, &verscheck_new_window,OPEN_WINDOW_FLAGS)) )
- return FALSE;
-
- if (!(gl = ICreateGadgets(ri,&verscheck_gadget_data[0], 0, 0, NULL)) )
- return FALSE;
-
- verscheck_defaults(0);
-
- return TRUE;
- }
-
- void verscheck_close( void )
- {
- if (gl) IRemoveGadgets(gl);
- if (gl) IFreeGadgets(gl);
- if (win) ICloseWindow(win, FALSE);
- if (ri) IFreeRenderInfo(ri);
- if (IntuiSupBase) CloseLibrary(IntuiSupBase);
- }
-
- void verscheck_action( void )
- {
- UBYTE exestr[512];
- UBYTE tmpstr[512];
- BOOL keepon =TRUE;
- int start =0;
- int libcheck=0;
- int all =1;
- int sysinfo =1;
- int fullpath=1;
- int merge =0;
- int noreq =0;
- int html =1;
- int verbose =1;
- int ppc =0;
- int images =0;
-
- do
- {
- struct IntuiMessage *msg;
-
- WaitPort(win->UserPort);
- while (msg = IGetMsg(win->UserPort))
- {
- ULONG Class=msg->Class;
- USHORT Code=msg->Code;
- LONG IAddress=(LONG)msg->IAddress;
-
- IReplyMsg(msg);
-
- switch(Class)
- {
- case CLOSEWINDOW:
- keepon = FALSE;
- break;
-
- case ISUP_ID:
- switch(Code)
- {
- case VERSCHECK_GADGET_LIBCHECK:
- libcheck=IAddress;
- verscheck_defaults(libcheck);
- break;
-
- case VERSCHECK_GADGET_ALL:
- all=IAddress;
- break;
-
- case VERSCHECK_GADGET_SYSINFO:
- sysinfo=IAddress;
- break;
-
- case VERSCHECK_GADGET_FULLPATH:
- fullpath=IAddress;
- break;
-
- case VERSCHECK_GADGET_MERGE:
- merge=IAddress;
- break;
-
- case VERSCHECK_GADGET_NOREQ:
- noreq=IAddress;
- break;
-
- case VERSCHECK_GADGET_HTML:
- html=IAddress;
- break;
-
- case VERSCHECK_GADGET_VERBOSE:
- verbose=IAddress;
- break;
-
- case VERSCHECK_GADGET_POWEREXE:
- ppc=IAddress;
- break;
-
- case VERSCHECK_GADGET_IMAGES:
- images=IAddress;
- break;
-
- case VERSCHECK_GADGET_SUFFIX:
- sprintf(suffix,"%s",(char *)IAddress);
- break;
-
- case VERSCHECK_GADGET_LIST:
- sprintf(chklst,"%s",(char *)IAddress);
- break;
-
- case VERSCHECK_GADGET_OUTFILE:
- sprintf(ofname,"%s",(char *)IAddress);
- break;
-
- case VERSCHECK_GADGET_FILEDIR:
- sprintf(dirnam,"%s",(char *)IAddress);
- break;
-
- case VERSCHECK_GADGET_START:
- keepon=FALSE;
- start=1; /* start ONE check */
- break;
-
- case VERSCHECK_GADGET_STARTALL:
- keepon=FALSE;
- libcheck=0;
- start=2; /* start ALL checks */
- break;
-
- }
- }
- }
- } while (keepon == TRUE);
-
- while(start)
- {
- if (start==2)
- {
- verscheck_defaults(libcheck);
- sysinfo=1;
- images=0;
- noreq=1;
- }
-
- strcpy(exestr,"VersCheck ");
- switch(libcheck)
- {
- case 1:
- strcat(exestr,"-2 ");
- break;
- case 2:
- strcat(exestr,"-3 ");
- break;
- case 3:
- strcat(exestr,"-4 ");
- break;
- case 4:
- strcat(exestr,"-5 ");
- break;
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- sprintf(tmpstr, "-0s %s -0l %s -0n %s ", suffix, chklst, ofname);
- strcat(exestr,tmpstr);
- strcpy(dirnam,"Sys:Classes");
- merge=2;
- sysinfo=0;
- break;
- case 10:
- break;
- default:
- strcat(exestr,"-1 ");
- break;
- }
-
- if (all) strcat(exestr,"-a ");
- if (sysinfo) strcat(exestr,"-s ");
- if (fullpath) strcat(exestr,"-f ");
- if (merge) strcat(exestr,"-m ");
- if (noreq) strcat(exestr,"-n ");
- if (html) strcat(exestr,"-o ");
- if (verbose) strcat(exestr,"-v ");
-
- switch(ppc)
- {
- case 1:
- strcat(exestr,"-x1 ");
- break;
- case 2:
- strcat(exestr,"-x2 ");
- break;
- case 3:
- strcat(exestr,"-x3 ");
- break;
- default:
- break;
- }
-
- switch(images)
- {
- case 1:
- strcat(exestr,"-p ");
- break;
- case 2:
- strcat(exestr,"-P ");
- break;
- default:
- break;
- }
- if (merge==2)
- {
- sprintf(tmpstr,"%s -s MUI: >CON:0/0/640/250/VersCheckGUI",exestr);
- Execute(tmpstr,0L,0L);
- }
- sprintf(tmpstr,"\"%s\"",dirnam); /* make shure that blank in filename will work */
- strcat(exestr,tmpstr);
- strcat(exestr," >CON:0/0/640/250/VersCheckGUI");
- Execute(exestr,0L,0L);
-
- if (start==1) break;
-
- libcheck++;
- if (libcheck>9) start=0;
- };
- }
-
- void verscheck_set_gadgets(int check)
- {
- if (check<3)
- {
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_HTML,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, 1,
- (void *) USE_CURRENT_VALUE);
- }
- else
- {
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_HTML,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, 0,
- (void *) USE_CURRENT_VALUE);
- }
-
- if (check<5)
- {
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_MERGE,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_IMAGES,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, 0,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_SUFFIX,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- suffix);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_LIST,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- chklst);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_OUTFILE,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- ofname);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_FILEDIR,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- dirnam);
- }
- else if (check>4 && check<10)
- {
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_MERGE,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, 1,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_IMAGES,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, 0,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_SUFFIX,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- suffix);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_LIST,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- chklst);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_OUTFILE,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- ofname);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_FILEDIR,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- dirnam);
- }
- else if (check==10)
- {
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_MERGE,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_IMAGES,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_SUFFIX,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- suffix);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_LIST,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- chklst);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_OUTFILE,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- ofname);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_FILEDIR,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- dirnam);
- }
- else if (check>10)
- {
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_MERGE,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_IMAGES,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- (void *) USE_CURRENT_VALUE);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_SUFFIX,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- suffix);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_LIST,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- chklst);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_OUTFILE,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- ofname);
-
- ISetGadgetAttributes(gl, VERSCHECK_GADGET_FILEDIR,
- GADGET_DATA_FLAG_DISABLED, 0,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE,
- dirnam);
- }
- }
-
- void verscheck_defaults(int check)
- {
-
- switch(check)
- {
- case 1:
- strcpy(suffix,"<intern>");
- strcpy(chklst,"<intern>");
- strcpy(ofname,"<intern>");
- strcpy(dirnam,"Devs:");
- break;
- case 2:
- strcpy(suffix,"<intern>");
- strcpy(chklst,"<intern>");
- strcpy(ofname,"<intern>");
- strcpy(dirnam,"Sys:Classes/Datatypes");
- break;
- case 3:
- strcpy(suffix,"<intern>");
- strcpy(chklst,"<intern>");
- strcpy(ofname,"<intern>");
- strcpy(dirnam,"MUI:Libs/MUI");
- break;
- case 4:
- strcpy(suffix,"<intern>");
- strcpy(chklst,"<intern>");
- strcpy(ofname,"<intern>");
- strcpy(dirnam,"l:");
- break;
- case 5:
- strcpy(suffix,".class");
- strcpy(chklst,"ClassList");
- strcpy(ofname,"CLASS");
- strcpy(dirnam,"<intern>");
- break;
- case 6:
- strcpy(suffix,".image");
- strcpy(chklst,"ImageList");
- strcpy(ofname,"CLASSIMG");
- strcpy(dirnam,"<intern>");
- break;
- case 7:
- strcpy(suffix,".gadget");
- strcpy(chklst,"GadgetList");
- strcpy(ofname,"CLASSGAD");
- strcpy(dirnam,"<intern>");
- break;
- case 8:
- strcpy(suffix,".codec");
- strcpy(chklst,"CodecList");
- strcpy(ofname,"CLASSCOD");
- strcpy(dirnam,"<intern>");
- break;
- case 9:
- strcpy(suffix,".decoder");
- strcpy(chklst,"DecoderList");
- strcpy(ofname,"CLASSDEC");
- strcpy(dirnam,"<intern>");
- break;
- case 10:
- strcpy(suffix,"");
- strcpy(chklst,"");
- strcpy(ofname,"");
- strcpy(dirnam,"");
- break;
- case 11:
- strcpy(suffix,"<OFF>");
- strcpy(chklst,"<OFF>");
- strcpy(ofname,"<OFF>");
- strcpy(dirnam,"c:");
- break;
- default:
- strcpy(suffix,"<intern>");
- strcpy(chklst,"<intern>");
- strcpy(ofname,"<intern>");
- strcpy(dirnam,"Libs:");
- break;
- }
- verscheck_set_gadgets(check);
- }
-