version 1.1, 2001/03/15 03:33:09 |
version 1.3, 2013/08/31 13:45:59 |
|
|
|
/* $OpenXM: OpenXM/src/asir-doc/html_tools/gen_hh.c,v 1.2 2009/02/22 22:48:15 ohara Exp $ */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
|
#include <stdlib.h> |
#include <string.h> |
#include <string.h> |
|
#if !defined(_MSC_VER) |
#include <dirent.h> |
#include <dirent.h> |
|
#else |
|
#include <windows.h> |
|
#endif |
|
|
gen_hhp(out,n) |
void gen_hhp(char *out, int n, char *htmldir) |
char *out; |
|
int n; |
|
{ |
{ |
int i; |
int i; |
FILE *outf; |
FILE *outf; |
|
|
fprintf(outf,"Compatibility=1.1 or later\n"); |
fprintf(outf,"Compatibility=1.1 or later\n"); |
fprintf(outf,"Compiled file=asirhelp.chm\n"); |
fprintf(outf,"Compiled file=asirhelp.chm\n"); |
fprintf(outf,"Contents file=asirhelp.hhc\n"); |
fprintf(outf,"Contents file=asirhelp.hhc\n"); |
fprintf(outf,"Default topic=html\\man_toc.html\n"); |
fprintf(outf,"Default topic=%s\\man_toc.html\n",htmldir); |
fprintf(outf,"Display compile progress=No\n"); |
fprintf(outf,"Display compile progress=No\n"); |
fprintf(outf,"Index file=asirhelp.hhk\n"); |
fprintf(outf,"Index file=asirhelp.hhk\n"); |
fprintf(outf,"Language=0x411 日本語\n\n\n[FILES]\n"); |
fprintf(outf,"Language=0x411 日本語\n\n\n[FILES]\n"); |
|
|
fprintf(outf,"html\\man_toc.html\n"); |
fprintf(outf,"%s\\man_toc.html\n",htmldir); |
for ( i = 1; i <= n; i++ ) |
for ( i = 1; i <= n; i++ ) |
fprintf(outf,"html\\man_%d.html\n",i); |
fprintf(outf,"%s\\man_%d.html\n",htmldir,i); |
|
|
fprintf(outf,"\n[INFOTYPES]\n"); |
fprintf(outf,"\n[INFOTYPES]\n"); |
} |
} |
|
|
conv_toc(in,out) |
void conv_toc(char *in,char *out, char *htmldir) |
char *in,*out; |
|
{ |
{ |
char buf[BUFSIZ]; |
char buf[BUFSIZ]; |
char *fname,*ptr,*ptr1; |
char *fname,*ptr,*ptr1; |
|
|
*ptr1 = 0; |
*ptr1 = 0; |
fprintf(outf,"<LI><OBJECT type=\"text/sitemap\">\n"); |
fprintf(outf,"<LI><OBJECT type=\"text/sitemap\">\n"); |
fprintf(outf,"<param name=\"Name\" value=\"%s\">\n",ptr); |
fprintf(outf,"<param name=\"Name\" value=\"%s\">\n",ptr); |
fprintf(outf,"<param name=\"Local\" value=\"html\\%s\">\n",fname); |
fprintf(outf,"<param name=\"Local\" value=\"%s\\%s\">\n",htmldir,fname); |
fprintf(outf,"</OBJECT>\n"); |
fprintf(outf,"</OBJECT>\n"); |
} |
} |
} |
} |
fprintf(outf,"</UL>\n</BODY></HTML>\n"); |
fprintf(outf,"</UL>\n</BODY></HTML>\n"); |
} |
} |
|
|
conv_index (in,out) |
void conv_index(char *in, char *out, char *htmldir) |
char *in,*out; |
|
{ |
{ |
char buf[BUFSIZ]; |
char buf[BUFSIZ]; |
char *fname,*ptr,*ptr1; |
char *fname,*ptr,*ptr1; |
|
|
*ptr1 = 0; |
*ptr1 = 0; |
fprintf(outf,"<LI><OBJECT type=\"text/sitemap\">\n"); |
fprintf(outf,"<LI><OBJECT type=\"text/sitemap\">\n"); |
fprintf(outf,"<param name=\"Name\" value=\"%s\">\n",ptr); |
fprintf(outf,"<param name=\"Name\" value=\"%s\">\n",ptr); |
fprintf(outf,"<param name=\"Local\" value=\"html\\%s\">\n",fname); |
fprintf(outf,"<param name=\"Local\" value=\"%s\\%s\">\n",htmldir,fname); |
fprintf(outf,"</OBJECT>\n"); |
fprintf(outf,"</OBJECT>\n"); |
} |
} |
} |
} |
fprintf(outf,"</BODY></HTML>\n"); |
fprintf(outf,"</BODY></HTML>\n"); |
} |
} |
|
|
main(argc,argv) |
#if !defined(_MSC_VER) |
int argc; |
int find_files(char *indir,char *prefix) |
char **argv; |
|
{ |
{ |
DIR *d; |
DIR *d; |
struct dirent *dent; |
struct dirent *dent; |
int i,n,n1; |
int n=0,n1; |
char *ptr,*ptr1; |
char *ptr,*ptr1; |
char *indir,*outdir; |
char name[BUFSIZ]; |
char in[BUFSIZ],out[BUFSIZ],name[BUFSIZ]; |
int len=strlen(prefix); |
|
|
indir = argv[1]; |
|
outdir = argv[2]; |
|
sprintf(in,"%s/man_toc.html",indir); |
|
sprintf(out,"%s/asirhelp.hhc",outdir); |
|
conv_toc(in,out); |
|
d = opendir(indir); |
d = opendir(indir); |
n = 0; |
if(!d) { |
|
exit(1); |
|
} |
while ( dent = readdir(d) ) { |
while ( dent = readdir(d) ) { |
strcpy(name,dent->d_name); |
strcpy(name,dent->d_name); |
ptr = strchr(name,'_'); |
ptr = name+len; |
|
ptr = strchr(ptr,'_'); |
if ( !ptr ) |
if ( !ptr ) |
continue; |
continue; |
ptr++; |
ptr++; |
|
|
if ( n1 > n ) |
if ( n1 > n ) |
n = n1; |
n = n1; |
} |
} |
|
closedir(d); |
|
return n; |
|
} |
|
#else |
|
int find_files(char *indir,char *prefix) |
|
{ |
|
HANDLE h; |
|
WIN32_FIND_DATA fd; |
|
char *ptr,*ptr1; |
|
char pattern[BUFSIZ]; |
|
char name[BUFSIZ]; |
|
int n=0,n1; |
|
int len=strlen(prefix); |
|
sprintf(pattern, "%s\\%s*_*.*", indir, prefix); |
|
h = FindFirstFileEx(pattern, FindExInfoStandard, &fd, FindExSearchNameMatch, NULL, 0); |
|
if(h == INVALID_HANDLE_VALUE) { |
|
exit(1); |
|
} |
|
do { |
|
strcpy(name,fd.cFileName); |
|
ptr = name+len; |
|
ptr = strchr(ptr,'_') + 1; |
|
ptr1 = strchr(ptr,'.'); |
|
*ptr1 = 0; |
|
if ( !strcmp(ptr,"toc") ) |
|
continue; |
|
n1 = atoi(ptr); |
|
if ( n1 > n ) |
|
n = n1; |
|
} while(FindNextFile(h, &fd)); |
|
return n; |
|
} |
|
#endif |
|
|
|
int main(int argc, char *argv[]) |
|
{ |
|
int n; |
|
char *indir,*outdir; |
|
char in[BUFSIZ],out[BUFSIZ]; |
|
char *htmldir="html"; |
|
|
|
indir = argv[1]; |
|
outdir = argv[2]; |
|
if(argc>3) { |
|
htmldir=argv[3]; |
|
} |
|
|
|
sprintf(in,"%s/man_toc.html",indir); |
|
sprintf(out,"%s/asirhelp.hhc",outdir); |
|
conv_toc(in,out,htmldir); |
|
n = find_files(indir, ""); |
|
|
sprintf(in,"%s/man_%d.html",indir,n); |
sprintf(in,"%s/man_%d.html",indir,n); |
sprintf(out,"%s/asirhelp.hhk",outdir); |
sprintf(out,"%s/asirhelp.hhk",outdir); |
conv_index(in,out); |
conv_index(in,out,htmldir); |
sprintf(out,"%s/asirhelp.hhp",outdir); |
sprintf(out,"%s/asirhelp.hhp",outdir); |
gen_hhp(out,n); |
gen_hhp(out,n,htmldir); |
exit(0); |
exit(0); |
} |
} |