#include <stdio.h>

char *prg[] =                                    /* C-PRG Quellcode */
{
   "void main(argc,argv)\n",
   "int  argc;\n",
   "char *argv[];\n{\n",
   "   char p[80],*argu[3];\n",
   "   int  handle,i,j;\n\n\n",
   "   handle  = creat(\"ram:batch\",0L);\n",
   "   write(handle, batch, sizeof(batch));\n",
   "   close(handle);\n",
   "   argu[0] = argu[2] = 0L;\n",
   "   argu[1] = p;\n",
   "   strcpy(p,\"ram:batch\");\n",
   "   for(i=1; i<argc; i++)\n   {\n",
   "      p[(j = strlen(p))+1] = 0;\n",
   "      p[j] = ' ';\n",
   "      strcat(p,argv[i]);\n   }\n",
   "   fexecv(\"execute\",argu);\n",
   "   DeleteFile(\"ram:batch\");\n}\n",
};


void main(argc,argv)
int  argc;
char *argv[];
{
   FILE *eing,*ausg,*fopen();
   int  c,z=0;
   char buffer[40];


   puts("MakeBatch von Felix Theisinger (24.7.88) \n");
   if( argc != 2 ) {
      puts("\nSyntax : \nmakebatch batchdatei \n");
      return;   
   }
   eing = fopen(argv[1], "r");
   ausg = fopen("ram:bat.c", "w");
   if(eing == NULL || ausg == NULL) {
      puts("\nfile error !!! \n");
      return;   
   }

   fputs("char batch[] = \n{\n", ausg);         /* Batch-Datei als char-Array anlegen */
   while( 1 )
   {
      c = fgetc(eing);
      if( c == -1 )
         break;  
      fprintf(ausg,"  %3d,",c);  putchar(c);
      if(z++ > 8) {
        fputc('\n',ausg);
        z=0;
      }
   }
   fputs("\n};\n\n",ausg);

   for(z=0; z < 17; z++)                         /* C-Programm abspeichern */
      fputs(prg[z], ausg);
   fclose(eing);
   fclose(ausg);

   Execute("cc >nil: ram:bat.c",0L,0L);          /* C-PRG compilieren */ 
   Execute("ln >nil: ram:bat.o -lc",0L,0L);
   strcpy(buffer,argv[1]); strcat(buffer,".bat"); 
   Rename("ram:bat",buffer);
   Execute("delete ram:bat#?# q",0L,0L); 
}
