diff --git a/kernel/register.cc b/kernel/register.cc index dae47f976..f6f5804b5 100644 --- a/kernel/register.cc +++ b/kernel/register.cc @@ -391,7 +391,43 @@ struct HelpPass : public Pass { fprintf(f, "\\label{cmd:%s}\n", cmd_unescaped.c_str()); fprintf(f, "\\begin{lstlisting}[numbers=left,frame=single]\n"); fprintf(f, "%s\n\\end{lstlisting}\n\n", text.c_str()); + } + void escape_html(std::string &html) + { + size_t pos = 0; + while ((pos = html.find_first_of("<>&", pos)) != std::string::npos) + switch (html[pos]) { + case '<': + html.replace(pos, 1, "<"); + pos += 4; + break; + case '>': + html.replace(pos, 1, ">"); + pos += 4; + break; + case '&': + html.replace(pos, 1, "&"); + pos += 5; + break; + } + } + void write_html(FILE *idxf, std::string cmd, std::string title, std::string text) + { + FILE *f = fopen(stringf("cmd_%s.in", cmd.c_str()).c_str(), "wt"); + fprintf(idxf, "
%s\n", text.c_str()); + fprintf(f, "@footer@\n"); + + fclose(f); } virtual void execute(std::vector