Annotation of OpenXM/src/asir-doc/html_tools/gen_hh_new.c, Revision 1.4
1.1 noro 1: #include <stdio.h>
2: #include <string.h>
3: #include <dirent.h>
4:
5: gen_hhp(out,n,prefix,lang)
6: char *out;
7: int n;
8: char *prefix,*lang;
9: {
10: int i;
11: FILE *outf;
12:
13: outf = fopen(out,"w");
14: fprintf(outf,"[OPTIONS]\n");
15: fprintf(outf,"Compatibility=1.1 or later\n");
16: fprintf(outf,"Compiled file=%shelp-%s.chm\n",prefix,lang);
17: fprintf(outf,"Contents file=%shelp-%s.hhc\n",prefix,lang);
18: fprintf(outf,"Default topic=html\\%s-%s_toc.html\n",prefix,lang);
19: fprintf(outf,"Display compile progress=No\n");
20: fprintf(outf,"Index file=%shelp-%s.hhk\n",prefix,lang);
21: fprintf(outf,"Language=0x411 “ú–{Œê\n\n\n[FILES]\n");
22:
1.4 ! noro 23: fprintf(outf,"html\\%s-%s_toc.html\n",prefix,lang);
1.1 noro 24: for ( i = 1; i <= n; i++ )
25: fprintf(outf,"html\\%s-%s_%d.html\n",prefix,lang,i);
26:
27: fprintf(outf,"\n[INFOTYPES]\n");
28: }
29:
30: conv_toc(in,out,prefix_)
31: char *in,*out,*prefix_;
32: {
33: char buf[BUFSIZ];
34: char *fname,*ptr,*ptr1;
35: int c;
36: FILE *inf,*outf;
37:
38: inf = fopen(in,"r");
39: outf = fopen(out,"w");
40: fprintf(outf,"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n");
41: fprintf(outf,"<HTML>\n<HEAD>\n");
42: fprintf(outf,"<meta name=\"GENERATOR\" content=\"Microsoft® HTML Help Workshop 4.1\">\n");
43: fprintf(outf,"<!-- Sitemap 1.0 -->\n</HEAD><BODY>\n");
44: fprintf(outf,"<OBJECT type=\"text/site properties\">\n");
45: fprintf(outf,"<param name=\"ImageType\" value=\"Folder\">\n");
46: fprintf(outf,"</OBJECT>\n<UL>\n");
47:
48: while ( 1 ) {
49: c = fgetc(inf);
50: if ( c == EOF )
51: break;
52: ungetc(c,inf);
53: fgets(buf,BUFSIZ,inf);
54: if ( !strncmp(buf,"Jump to:",strlen("Jump to:")) )
55: break;
56: if ( fname = strstr(buf,prefix_) ) {
57: ptr = strchr(buf,'#');
58: *ptr = 0;
59: ptr = strchr(ptr+1,'>');
60: ptr++;
61: if ( *ptr == '<' )
62: ptr = strchr(ptr+1,'>')+1;
63: ptr1 = strchr(ptr,'<');
64: *ptr1 = 0;
65: fprintf(outf,"<LI><OBJECT type=\"text/sitemap\">\n");
66: fprintf(outf,"<param name=\"Name\" value=\"%s\">\n",ptr);
67: fprintf(outf,"<param name=\"Local\" value=\"html\\%s\">\n",fname);
68: fprintf(outf,"</OBJECT>\n");
69: }
70: }
71: fprintf(outf,"</UL>\n</BODY></HTML>\n");
72: }
73:
74: conv_index (in,out,prefix_)
75: char *in,*out,*prefix_;
76: {
77: char buf[BUFSIZ];
78: char *fname,*ptr,*ptr1;
79: FILE *inf,*outf;
80:
81: inf = fopen(in,"r");
82: outf = fopen(out,"w");
83:
84: fprintf(outf,"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n");
85: fprintf(outf,"<HTML>\n<HEAD>\n");
86: fprintf(outf,"<meta name=\"GENERATOR\" content=\"Microsoft® HTML Help Workshop 4.1\">\n");
87: fprintf(outf,"<!-- Sitemap 1.0 -->\n</HEAD><BODY>\n");
88: fprintf(outf,"</HEAD><BODY>\n");
89:
90: while ( 1 ) {
91: fgets(buf,BUFSIZ,inf);
92: if ( !strncmp(buf,"Jump to:",strlen("Jump to:")) )
93: break;
94: }
95: while ( 1 ) {
96: fgets(buf,BUFSIZ,inf);
97: if ( !strncmp(buf,"Jump to:",strlen("Jump to:")) )
98: break;
1.2 noro 99: if ( fname = strstr(buf,prefix_) ) {
1.1 noro 100: ptr = strchr(buf,'#');
101: *ptr = 0;
102: ptr = strchr(ptr+1,'>');
103: ptr++;
104: if ( *ptr == '<' )
105: ptr = strchr(ptr+1,'>')+1;
106: ptr1 = strchr(ptr,'<');
107: *ptr1 = 0;
108: fprintf(outf,"<LI><OBJECT type=\"text/sitemap\">\n");
109: fprintf(outf,"<param name=\"Name\" value=\"%s\">\n",ptr);
110: fprintf(outf,"<param name=\"Local\" value=\"html\\%s\">\n",fname);
111: fprintf(outf,"</OBJECT>\n");
112: }
113: }
114: fprintf(outf,"</BODY></HTML>\n");
115: }
116:
117: main(argc,argv)
118: int argc;
119: char **argv;
120: {
121: DIR *d;
122: struct dirent *dent;
1.3 noro 123: int i,n,n1,len;
1.1 noro 124: char *ptr,*ptr1;
125: char *indir,*outdir;
126: char in[BUFSIZ],out[BUFSIZ],name[BUFSIZ],prefix_[BUFSIZ];
127: char *prefix,*lang;
128:
129: indir = argv[1];
130: outdir = argv[2];
131: prefix = argv[3];
132: lang = argv[4];
1.3 noro 133: len = strlen(prefix);
1.1 noro 134: sprintf(in,"%s/%s-%s_toc.html",indir,prefix,lang);
135: sprintf(out,"%s/%shelp-%s.hhc",outdir,prefix,lang);
136: sprintf(prefix_,"%s-%s_",prefix,lang);
137: conv_toc(in,out,prefix_);
138: d = opendir(indir);
139: n = 0;
140: while ( dent = readdir(d) ) {
141: strcpy(name,dent->d_name);
1.3 noro 142: ptr = name+len;
143: ptr = strchr(ptr,'_');
1.1 noro 144: if ( !ptr )
145: continue;
146: ptr++;
147: ptr1 = strchr(ptr,'.');
148: if ( !ptr1 )
149: continue;
150: *ptr1 = 0;
151: if ( !strcmp(ptr,"toc") )
152: continue;
153: n1 = atoi(ptr);
154: if ( n1 > n )
155: n = n1;
156: }
157: sprintf(in,"%s/%s-%s_%d.html",indir,prefix,lang,n);
158: sprintf(out,"%s/%shelp-%s.hhk",outdir,prefix,lang);
159: conv_index(in,out,prefix_);
160: sprintf(out,"%s/%shelp-%s.hhp",outdir,prefix,lang);
161: gen_hhp(out,n,prefix,lang);
162: exit(0);
163: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>