home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 607.lha / AppServer_v3.01 / ass.c < prev    next >
C/C++ Source or Header  |  1992-01-31  |  4KB  |  140 lines

  1. /* AppServerServer 1.0 by Juha Tuominen 11-Jan-92
  2.  
  3.     NOTE:    If you're a fanatic noise module listener don't use
  4.             this program. The detecting part is quite simple and
  5.             it won't detect noise modules if you've changed modules' file
  6.             names. But who listens noise modules anyways? :-) */
  7.  
  8. #include <exec/types.h>
  9. #include <libraries/dos.h>
  10. #include <dos/dostags.h>
  11. #include <libraries/dosextens.h>
  12. #include <proto/dos.h>
  13. #include <stdio.h>
  14. #include <stdlib.h>
  15.  
  16. char    picviewer[81]="c:show",
  17.         textviewer[81]="c:more",
  18.         sampleplayer[81]="c:play",
  19.         defa[81]="c:more",
  20.         itextviewer[81]="sys:system/notepad",
  21.         gifviewer[81]="c:virtgif",
  22.         modplayer[81]="c:modplayer",
  23.         lhunarc[81]="c:lhunarc",
  24.         unzip[81]="c:unzip",
  25.         unzoo[81]="c:unzoo",
  26.         animplayer[81]="c:rtap";
  27.  
  28.  
  29. BOOL    readconfig(void);
  30. void    lowercase(register char *dst,register char *src);
  31.  
  32.  
  33. BOOL readconfig(void)
  34. {    FILE    *fp;
  35.     char    thisline[81],nextline[81];
  36.  
  37.     if(fp=fopen("s:ass-config","r"))
  38.     {    while(!feof(fp))
  39.         {    fgets(thisline,80,fp);
  40.             if(thisline[0]=='%')
  41.             {    fgets(nextline,80,fp);
  42.                 nextline[strlen(nextline)-1]=0;
  43.                 if(!strncmp("%picviewer:",thisline,11))        strcpy(picviewer,nextline);
  44.                 if(!strncmp("%textviewer:",thisline,12))    strcpy(textviewer,nextline);
  45.                 if(!strncmp("%itextviewer:",thisline,13))    strcpy(itextviewer,nextline);
  46.                 if(!strncmp("%sampleplayer:",thisline,14))    strcpy(sampleplayer,nextline);
  47.                 if(!strncmp("%gifviewer:",thisline,11))        strcpy(gifviewer,nextline);
  48.                 if(!strncmp("%default:",thisline,9))        strcpy(defa,nextline);
  49.                 if(!strncmp("%modplayer:",thisline,11))        strcpy(modplayer,nextline);
  50.                 if(!strncmp("%lhunarc:",thisline,9))        strcpy(lhunarc,nextline);
  51.                 if(!strncmp("%unzip:",thisline,7))            strcpy(unzip,nextline);
  52.                 if(!strncmp("%unzoo:",thisline,7))            strcpy(unzoo,nextline);
  53.                 if(!strncmp("%animplayer:",thisline,12))    strcpy(animplayer,nextline);
  54.             }
  55.         }
  56.         fclose(fp);
  57.         return TRUE;
  58.     }
  59.  
  60.     return FALSE;
  61. }
  62.  
  63. void lowercase(register char *dst,register char *src)
  64. {    while(*dst++=tolower(*src++));
  65. }
  66.  
  67. void main(int argc, char *argv[])
  68. {    FILE    *fp;
  69.     UBYTE    buffer[81];
  70.     LONG    err=0;
  71.     BOOL    i=FALSE;
  72.  
  73.     struct TagItem    taglist[]={
  74.         {SYS_Input,NULL},
  75.         {SYS_Output,NULL},
  76.         {0,}
  77.     };
  78.  
  79.     if(readconfig())
  80.     {    if(argc>1)
  81.         {    if(fp=fopen(argv[1],"rb"))
  82.             {    fgets(buffer,12,fp);
  83.                 fclose(fp);
  84.                 if(strncmp(buffer,"FORM",4))
  85.                 {    if(!strncmp(buffer,"GIF87",5))
  86.                         sprintf(buffer,"%s %s",gifviewer,argv[1]);
  87.                     else
  88.                     {    if(!strncmp(buffer+2,"-lh",3))
  89.                             sprintf(buffer,"%s %s",lhunarc,argv[1]);
  90.                         else
  91.                         {    if(!strncmp(buffer,"ZOO",3))
  92.                                 sprintf(buffer,"%s %s",unzoo,argv[1]);
  93.                             else
  94.                             {    if(!strncmp(buffer,"PK",2))
  95.                                     sprintf(buffer,"%s %s",unzip,argv[1]);
  96.                                 else
  97.                                 {    while(err++<80 || !i)
  98.                                     {    if(buffer[err]>127)
  99.                                             i=TRUE;
  100.                                     }
  101.                                     if(!i)
  102.                                         sprintf(buffer,"%s %s",textviewer,argv[1]);
  103.                                     else
  104.                                     {    err=strlen(argv[1]);
  105.                                         lowercase(argv[1],argv[1]);
  106.                                         for(i=0;i<=err;i++)
  107.                                             buffer[i]=tolower(buffer[i]);
  108.                                         if(!strncmp(buffer,argv[1]+err-strlen(buffer),strlen(buffer)))
  109.                                             sprintf(buffer,"%s %s",modplayer,argv[1]);
  110.                                         else
  111.                                             sprintf(buffer,"%s %s",defa,argv[1]);
  112.                                         
  113.                                     }
  114.                                 }
  115.                             }
  116.                         }
  117.                     }
  118.                 }
  119.                 else
  120.                 {    if(!strncmp(buffer+8,"ILBM",4))
  121.                         sprintf(buffer,"%s %s",picviewer,argv[1]);
  122.                     else
  123.                     {    if(!strncmp(buffer+8,"WORD",4))
  124.                             sprintf(buffer,"%s %s",itextviewer,argv[1]);
  125.                         else
  126.                         {    if(!strncmp(buffer+8,"8SVX",4))
  127.                                 sprintf(buffer,"%s %s",sampleplayer,argv[1]);
  128.                             else
  129.                             {    if(!strncmp(buffer+8,"ANIM",4))
  130.                                     sprintf(buffer,"%s %s",animplayer,argv[1]);
  131.                             }
  132.                         }
  133.                     }
  134.                 }
  135.                 err=System(buffer,taglist);
  136.             }
  137.         }
  138.     }
  139. }
  140.