/* Public domain */
typedef struct html_notebook_tab {
const char *name;
const char *descr;
TAILQ_ENTRY(html_notebook_tab) tabs;
} HTML_NotebookTab;
typedef struct html_notebook {
const char *name;
const char *cur_tab;
int ntabs;
TAILQ_HEAD(,html_notebook_tab) tabs;
} HTML_Notebook;
__BEGIN_DECLS
void HTML_SetDirectory(CGI_Query *, const char *);
int HTML_Output(CGI_Query *, const char *);
void HTML_OutputError(CGI_Query *, const char *, ...)
FORMAT_ATTRIBUTE(__printf__, 2, 3)
NONNULL_ATTRIBUTE(2);
void HTML_SetError(const char *, ...)
FORMAT_ATTRIBUTE(__printf__, 1, 2)
NONNULL_ATTRIBUTE(1);
void HTML_SetSuccess(const char *, ...)
FORMAT_ATTRIBUTE(__printf__, 1, 2)
NONNULL_ATTRIBUTE(1);
void HTML_SelectBeginS(VAR *, const char *)
NONNULL_ATTRIBUTE(2);
void HTML_SelectBegin(VAR *, const char *, ...)
FORMAT_ATTRIBUTE(__printf__, 2, 3)
NONNULL_ATTRIBUTE(2);
void HTML_OptionS(VAR *, const char *, const char *, const char *)
NONNULL_ATTRIBUTE(2)
NONNULL_ATTRIBUTE(3)
NONNULL_ATTRIBUTE(4);
void HTML_Option(VAR *, const char *, const char *, const char *, ...)
FORMAT_ATTRIBUTE(__printf__, 4, 5)
NONNULL_ATTRIBUTE(4);
void HTML_SelectEnd(VAR *);
void HTML_NotebookInit(HTML_Notebook *, CGI_Query *, const char *,
const char *);
HTML_NotebookTab *HTML_NotebookAdd(HTML_Notebook *, const char *, const char *);
void HTML_NotebookOutput(HTML_Notebook *, const char *);
void HTML_NotebookFree(HTML_Notebook *);
__END_DECLS