home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 September / PCO_0998.ISO / filesbbs / dos / sbbs_src.exe / SBBS / SCFG / MAKEHELP.C < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-13  |  1.7 KB  |  80 lines

  1. /* MAKEHELP.C */
  2.  
  3. /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
  4.  
  5. /* Makes SCFG.HLP for Synchronet configuration program */
  6.  
  7. #include <stdio.h>
  8. #include <alloc.h>
  9. #include <string.h>
  10. #include <io.h>
  11. #include <fcntl.h>
  12. #include <sys/stat.h>
  13.  
  14. void main(void)
  15. {
  16.     char *files[]={ "SCFG.C"
  17.                 ,"SCFGSYS.C"
  18.                 ,"SCFGMSG.C"
  19.                 ,"SCFGSUB.C"
  20.                 ,"SCFGNODE.C"
  21.                 ,"SCFGCHAT.C"
  22.                 ,"SCFGXFR1.C"
  23.                 ,"SCFGXFR2.C"
  24.                 ,"SCFGNET.C"
  25.                 ,"SCFGXTRN.C"
  26.                 ,NULL };
  27.     char str[256],tmp[256];
  28.     int i,j,k,line,ixb;
  29.     long l;
  30.     FILE *stream,*out;
  31.  
  32. if((out=fopen("SCFGHELP.DAT","wb"))==NULL) {
  33.     printf("error opening SCFGHELP.DAT\r\n");
  34.     return; }
  35.  
  36. if((ixb=open("SCFGHELP.IXB",O_WRONLY|O_CREAT|O_BINARY,S_IWRITE|S_IREAD))==-1) {
  37.     printf("error opening SCFGHELP.IXB\r\n");
  38.     return; }
  39.  
  40. for(i=0;files[i];i++) {
  41.     if((stream=fopen(files[i],"rb"))==NULL) {
  42.         printf("error opening %s\r\n",files[i]);
  43.         return; }
  44.     printf("\r\n%s ",files[i]);
  45.     line=0;
  46.     while(!feof(stream)) {
  47.         if(!fgets(str,128,stream))
  48.             break;
  49.         line++;
  50.         if(strstr(str,"SETHELP(WHERE);")) {
  51.             l=ftell(out);
  52.             write(ixb,files[i],12);
  53.             write(ixb,&line,2);
  54.             write(ixb,&l,4);
  55.             fgets(str,128,stream);     /* skip start comment */
  56.             line++;
  57.             while(!feof(stream)) {
  58.                 if(!fgets(str,128,stream))
  59.                     break;
  60.                 if(strchr(str,9)) { /* Tab expansion */
  61.                     strcpy(tmp,str);
  62.                     k=strlen(tmp);
  63.                     for(j=l=0;j<k;j++) {
  64.                         if(tmp[j]==9) {
  65.                             str[l++]=32;
  66.                             while(l%4)
  67.                                 str[l++]=32; }
  68.                         else
  69.                             str[l++]=tmp[j]; }
  70.                     str[l]=0; }
  71.                 line++;
  72.                 if(strstr(str,"*/"))    /* end comment */
  73.                     break;
  74.                 fputs(str,out); }
  75.             fputc(0,out); } }
  76.     fclose(stream); }
  77. fclose(out);
  78. printf("\n");
  79. }
  80.