/* ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. */This interprets the HTML semantics and some HTMLPlus.
This module is implemented by HTML.c, and it is a part of the Library of Common Code.
#ifndef HTML_H #define HTML_H #include "HTFormat.h" #include "HTAnchor.h" #include "HTMLPDTD.h" #define DTD HTMLP_dtd extern CONST HTStructuredClass HTMLPresentation;
extern HTStructured* HTML_new PARAMS((HTRequest * request, void * param, HTFormat input_format, HTFormat output_format, HTStream * output_stream));
extern void HTML_reopen PARAMS((HTStructured * me));
#ifndef pyramid extern HTConverter HTMLToPlain, HTMLToC, HTMLPresent, HTMLToTeX; #endif
typedef enum _HTMLCharacterSet { HTML_ISO_LATIN1, HTML_NEXT_CHARS, HTML_PC_CP950 } HTMLCharacterSet; extern void HTMLUseCharacterSet PARAMS((HTMLCharacterSet i));
extern int HTLoadError PARAMS(( HTRequest * req, int number, CONST char * message));
/* In text object \n\n \n tab \n\n\t -------------- ------------- ----- ----- ------- in Address, Blockquote, Normal, <P> <BR> - NORMAL H1-6: close+open <BR> - HEADING Glossary <DT> <DT> <DD> <P> GLOSSARY List, Menu <LI> <LI> - <P> LIST Dir <LI> <LI> <LI> DIR Pre etc \n\n \n \t PRE */ typedef enum _white_space_treatment { WS_NORMAL, WS_HEADING, WS_GLOSSARY, WS_LIST, WS_DIR, WS_PRE } white_space_treatment;
typedef struct _HTNesting { void * style; /* HTStyle *: Platform dependent */ white_space_treatment wst; struct _HTNesting * parent; int element_number; int item_number; /* only for ordered lists */ int list_level; /* how deep nested */ HTList * children; BOOL paragraph_break; int magic; BOOL object_gens_HTML; /* we don't generate HTML */ } HTNesting;
extern void HTRegenInit NOPARAMS; extern void HTRegenCharacter PARAMS(( char c, HTNesting * nesting, HTStructured * target)); extern void HTNestingChange PARAMS(( HTStructured* s, HTNesting* old, HTNesting * newnest, HTChildAnchor * info, CONST char * aName)); extern HTNesting * HTMLCommonality PARAMS(( HTNesting * s1, HTNesting * s2)); extern HTNesting * HTNestElement PARAMS((HTNesting * p, int ele)); extern /* HTStyle * */ void * HTStyleForNesting PARAMS((HTNesting * n)); extern HTNesting* HTMLAncestor PARAMS((HTNesting * old, int depth)); extern HTNesting* CopyBranch PARAMS((HTNesting * old, HTNesting * newnest, int depth)); extern HTNesting * HTInsertLevel PARAMS((HTNesting * old, int element_number, int level)); extern HTNesting * HTDeleteLevel PARAMS((HTNesting * old, int level)); extern int HTMLElementNumber PARAMS((HTNesting * s)); extern int HTMLLevel PARAMS(( HTNesting * s)); extern HTNesting* HTMLAncestor PARAMS((HTNesting * old, int depth)); #endif /* end HTML_H */end