38 #define OUTPUT_EXTENSION ".html"
59 static char *read_file(
char *fileName);
60 static void file_error(
const char *error,
char *fileName);
61 static void internal_error(
const char *error);
64 main(
int argc,
char * argv[] )
69 char *header_fileName = 0;
70 char *footer_fileName = 0;
101 docHeader = read_file (header_fileName);
104 docFooter = read_file (footer_fileName);
144 docTitle, docHeader, docFooter ) ;
145 cerr <<
"Processed " << args_info.
inputs[
i] << endl ;
153 read_file(
char *fileName)
162 if ( (file = fopen(fileName,
"rb") ) == 0 )
163 file_error (
"Error operning", fileName);
167 if (fseek (file, 0, SEEK_END) != 0)
168 file_error (
"Error positioning", fileName);
171 char_count = ftell (file);
173 file_error (
"Error reading position", fileName);
175 buffer = (
char *) malloc (char_count +1);
177 internal_error (
"Memory allocation failed");
182 if (fread ((
void *) buffer, 1, char_count, file) < (
size_t) char_count)
183 file_error (
"read error", fileName);
184 buffer[char_count] =
'\0';
193 file_error(
const char *error,
char *file)
195 fprintf (stderr,
"%s: %s, file %s\n",
PACKAGE, error, file);
200 internal_error(
const char *error)
202 fprintf (stderr,
"%s: Internal error: %s\n",
PACKAGE, error);
210 strcpy( outputFileName, inputFileName ) ;
217 const char *docHeader,
const char *docFooter) {
219 short deleteOStream = 1 ;
221 if ( outputFileName ) {
222 sout =
new ofstream(outputFileName) ;
224 cerr <<
"Error in creating " << outputFileName <<
" for output" << endl ;
229 if ( inputFileName ) {
230 in = freopen (inputFileName,
"r", stdin);
232 cerr <<
"Error in opening " << inputFileName
233 <<
" for input" << endl ;
278 generateln(
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">" ) ;
281 generateln(
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\"");
282 generateln(
" \"http://www.w3.org/TR/REC-html40/strict.dtd\">");
286 generateln(
"<meta http-equiv=\"Content-Type\"" ) ;
287 generateln(
"content=\"text/html; charset=iso-8859-1\">" ) ;
288 generate(
"<meta name=\"GENERATOR\" content=\"" ) ;
290 generate(
"\nby Lorenzo Bettini, bettini@gnu.org" ) ;
291 generate(
"\nhttp://w3.newnet.it/bettini" ) ;
299 generate(
"<link rel=\"stylesheet\" href=\"" );
304 if( cssUrl == 0 && docHeader == 0) {
305 generate (
"<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#0000EE\" ");
306 generateln (
"vlink=\"#551A8B\" alink=\"#FF0000\">" );
381 void startTAG(
const char *tag,
const char *attr,
const char *val ) {
382 (*sout) <<
"<" << tag ;
384 (*sout) <<
" " << attr <<
"=" << val ;
389 (*sout) <<
"</" << tag <<
">" ;