|
|
1.1 root 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 <string.h>
9: #include <fcntl.h>
10: #include <sys/stat.h>
11: #if defined(__unix__)
12: #include <unistd.h> /* write */
13: #define O_BINARY 0
14: #else
15: #include <io.h> /* open */
16: #endif
17:
18: int main(int argc, char **argv)
19: {
20: char *dir=".";
21: char *files[]={
22: "scfg.c"
23: ,"scfgsys.c"
24: ,"scfgmsg.c"
25: ,"scfgsub.c"
26: ,"scfgnode.c"
27: ,"scfgchat.c"
28: ,"scfgxfr1.c"
29: ,"scfgxfr2.c"
30: ,"scfgnet.c"
31: ,"scfgxtrn.c"
32: ,NULL };
33: char str[256],tmp[256];
34: int i,j,k,ixb;
35: unsigned short line;
36: long l;
37: FILE *stream,*out;
38:
39: if(argc>1)
40: dir=argv[1];
41:
42: sprintf(str,"%s/scfghelp.dat",dir);
43: if((out=fopen(str,"wb"))==NULL) {
44: fprintf(stderr,"!error opening %s\n",str);
45: return(-1); }
46:
47: sprintf(str,"%s/scfghelp.ixb",dir);
48: if((ixb=open(str,O_WRONLY|O_CREAT|O_BINARY,S_IWRITE|S_IREAD))==-1) {
49: fprintf(stderr,"!error opening %s\n",str);
50: return(-1); }
51:
52: for(i=0;files[i];i++) {
53: if((stream=fopen(files[i],"rb"))==NULL) {
54: fprintf(stderr,"!error opening %s\r\n",files[i]);
55: return(-3); }
56: printf("\r\nIndexing %s ...",files[i]);
57: line=0;
58: while(!feof(stream)) {
59: if(!fgets(str,128,stream))
60: break;
61: line++;
62: if(strstr(str,"SETHELP(WHERE);")) {
63: /* printf("%s:%u\n",files[i],line); */
64: l=ftell(out);
65: write(ixb,files[i],12);
66: write(ixb,&line,2);
67: write(ixb,&l,4);
68: fgets(str,128,stream); /* skip start comment */
69: line++;
70: while(!feof(stream)) {
71: if(!fgets(str,128,stream))
72: break;
73: if(strchr(str,9)) { /* Tab expansion */
74: strcpy(tmp,str);
75: k=strlen(tmp);
76: for(j=l=0;j<k;j++) {
77: if(tmp[j]==9) {
78: str[l++]=32;
79: while(l%4)
80: str[l++]=32; }
81: else
82: str[l++]=tmp[j]; }
83: str[l]=0; }
84: line++;
85: if(strstr(str,"*/")) /* end comment */
86: break;
87: fputs(str,out); }
88: fputc(0,out); } }
89: fclose(stream); }
90: fclose(out);
91: printf("\n");
92: return(0);
93: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.