state lang_html
{
BEGIN {
/* RGB -> HTML color mapper function. */
sub map_color (r, g, b)
{
return sprintf ("#%02X%02X%02X", r, g, b);
}
LANGUAGE_SPECIALS = /[<>\&\"]/;
sub language_print (str)
{
str = regsuball (str, /\&/, "&");
str = regsuball (str, /, "<");
str = regsuball (str, />/, ">");
str = regsuball (str, /\"/, """);
print (str);
}
sub language_symbol (symbol)
{
return false;
}
sub header ()
{
local i;
if (current_input_file == 1)
{
print ("\n");
print ("\n
\n");
language_print (document_title);
print ("\n\n",
color
? ""
: "",
"\n\n");
if (need_version (1, 5, 1) && int (toc) == 1)
{
if (length (argv) == 0)
argv[0] = "(stdin)";
print ("Contents
\n\n");
for (i = 0; i < length (argv); i = i + 1)
print (" - ", argv[i],
"\n");
print ("
\n
\n");
}
}
print ("\n");
language_print (filename);
if (int (num_input_files) > 1)
print (" ", current_input_file, "/", num_input_files);
print ("
\n");
/* Navigation bar. */
if (need_version (1, 5, 1))
{
if (length (argv) >= 2 )
{
print ("[top]");
if (current_input_file == 1)
print ("[prev]");
else
print ("[prev]");
if (current_input_file == length (argv))
print ("[next]");
else
print ("[next]");
}
}
else
print ("[top]");
print ("\n\n");
}
sub trailer ()
{
print ("
\n");
if (current_input_file == int (num_input_files))
print ("Generated by ",
"",
substring (version, strchr (version, 'G'), length (version)),
".
\n");
}
sub face_on (face)
{
if (face[boldp])
print ("");
if (face[italicp])
print ("");
if (face[fg_color])
print ("");
/* The background color is not supported in HTML. */
}
sub face_off (face)
{
if (face[fg_color])
print ("");
if (face[italicp])
print ("");
if (face[boldp])
print ("");
}
return;
}
}
/*
Local variables:
mode: c
End:
*/