home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 31 / CDASC_31_1996_juillet_aout.iso / internet / wsplug31.zip / DOS2HTML.C < prev    next >
Text File  |  1996-02-06  |  2KB  |  96 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. main(argc,argv)
  6. int argc;
  7. char **argv;
  8. { FILE *ft, *fh ;
  9.   int no,nd,more=1,i,nc,j,header   ;
  10.   char buft[512],bufh[1024]        ;
  11.  
  12.   if (argc < 4)
  13.   { printf("Missing arguments ...\n");
  14.     printf("dos2html dos_file html_file  type(TT, H1, H2 ...) [cgi-dos-appli]\n");
  15.     return(0);
  16.   }
  17.  
  18.   if (argc == 5) header=1 ;
  19.   else           header=0 ;
  20.  
  21.  
  22.   ft = fopen(argv[1],"rb");
  23.   if (ft == NULL)
  24.     { printf("Can't open %s\n",argv[1]);
  25.       return(0) ;
  26.     }
  27.  
  28.   fh = fopen(argv[2],"w+b");
  29.   if (fh == NULL)
  30.   { printf("Can't create %s\n",argv[2]);
  31.     fclose(ft);
  32.     return(0) ;
  33.   }
  34.  
  35. strcpy(bufh,"HTTP/1.0 200 OK \r\n")        ;
  36. strcat(bufh,"Server: Wsplug/3.0 \r\n")     ;
  37. strcat(bufh,"Content-Type: text/html \r\n");
  38. strcat(bufh,"\r\n");
  39.  
  40. strcat(bufh,"<html><head><TITLE>CGI-DOS</TITLE></head><body><H1>CGI-DOS</H1>");
  41. strcat(bufh,"<");strcat(bufh,argv[3]);strcat(bufh,">");
  42.  
  43.  
  44. if (header)
  45. { strcat(bufh,"<FORM ACTION=\"");
  46.   strcat(bufh,argv[4]);
  47.   strcat(bufh,"\"><HR>COMMAND:<INPUT NAME=\"\"  SIZE=\"60\"><br>");
  48.   strcat(bufh,"<INPUT VALUE=\"Send\" TYPE=submit><INPUT VALUE=\"Cancel\" TYPE=reset>");
  49.   strcat(bufh,"</FORM>");
  50. }
  51. strcat(bufh,"<HR>");
  52.  
  53. fwrite(bufh,1,strlen(bufh),fh);
  54.  
  55.   nc = 0;
  56.   while (more)
  57.   {   no = fread(buft,1,512,ft) ;
  58.       nd=0 ;
  59.       if (no <= 0) more=0 ;
  60.  
  61.       else
  62.       { for(i=0;i<no;i++)
  63.     { if      (buft[i] == 0xD) bufh[nd++] = buft[i] ;
  64.       else if (buft[i] == 0xA)
  65.       { bufh[nd++] = buft[i] ;
  66.         strcpy(&bufh[nd],"<br>");
  67.         nd+=4 ;
  68.         nc=0  ;
  69.       }
  70.       else if (buft[i] == 0x9)
  71.       { for(j=0;j<(8-nc%8);j++) nc++; bufh[nd++]=' ';}
  72.       else
  73.       { nc++ ; bufh[nd++] = buft[i] ;}
  74.  
  75.       if(nd > 512)
  76.       { fwrite(bufh,1,nd,fh) ; nd=0;}
  77.  
  78.     }
  79.       }
  80.  
  81.      if (nd) fwrite(bufh,1,nd,fh);
  82.   }
  83.  
  84.  
  85.   strcat(bufh,"\n\r</");strcat(bufh,argv[3]);strcat(bufh,">");
  86.  
  87.   strcpy(bufh,"</body></html>\r\n") ;
  88.   fwrite(bufh,1,strlen(bufh),fh)    ;
  89.  
  90.  
  91.   fclose(ft);
  92.   fclose(fh);
  93.  
  94.  
  95.  return(0);
  96. }