⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 html.h

📁 基于rtos开发的浏览器!
💻 H
字号:
/*					HTML to rich text converter for libwww****			THE HTML TO RTF OBJECT CONVERTER****  This interprets the HTML semantics.*/#ifndef HTML_H#define HTML_H#ifndef HTUTILS_H#include "HTUtils.h"#endif /* HTUTILS_H */#include "UCDefs.h"#include "UCAux.h"#include "HTAnchor.h"#include "HTMLDTD.h"#ifdef SHORT_NAMES#define HTMLPresentation        HTMLPren#define HTMLPresent             HTMLPres#endif /* SHORT_NAMES *//* #define ATTR_CS_IN (me->T.output_utf8 ? me->UCLYhndl : 0) */#define ATTR_CS_IN me->tag_charset#define TRANSLATE_AND_UNESCAPE_ENTITIES(s, p, h) \	LYUCFullyTranslateString(s, ATTR_CS_IN, current_char_set, YES, p, h, st_HTML)#define TRANSLATE_AND_UNESCAPE_ENTITIES5(s,cs_from,cs_to,p,h) \	LYUCFullyTranslateString(s, cs_from, cs_to, YES, p, h, st_HTML)#define TRANSLATE_AND_UNESCAPE_ENTITIES6(s,cs_from,cs_to,spcls,p,h) \	LYUCFullyTranslateString(s, cs_from, cs_to, spcls, p, h, st_HTML)/* *  Strings from attributes which should be converted to some kind *  of "standard" representation (character encoding), was Latin-1, *  esp. URLs (incl. #fragments) and HTML NAME and ID stuff. */#define TRANSLATE_AND_UNESCAPE_TO_STD(s) \	LYUCFullyTranslateString(s, ATTR_CS_IN, ATTR_CS_IN, NO, NO, YES, st_URL)#define UNESCAPE_FIELDNAME_TO_STD(s) \	LYUCFullyTranslateString(s, ATTR_CS_IN, ATTR_CS_IN, NO, NO, YES, st_HTML)extern CONST HTStructuredClass HTMLPresentation;#ifdef Lynx_HTML_Handler/***	This section is semi-private to HTML.c and it's helper modules. - FM**	--------------------------------------------------------------------*/typedef struct _stack_element {	HTStyle *	style;	int		tag_number;} stack_element;/*		HTML Object**		-----------*/#define MAX_NESTING 800		/* Should be checked by parser */struct _HTStructured {    CONST HTStructuredClass * 	isa;    HTParentAnchor * 		node_anchor;    HText * 			text;    HTStream*			target;			/* Output stream */    HTStreamClass		targetClass;		/* Output routines */    HTChildAnchor *		CurrentA;	/* current HTML_A anchor */    int				CurrentANum;	/* current HTML_A number */    char *			base_href;	/* current HTML_BASE href */    char *			map_address;	/* current HTML_MAP address */    HTChunk 			title;		/* Grow by 128 */    HTChunk			object;		/* Grow by 128 */    BOOL			object_started;    BOOL			object_declare;    BOOL			object_shapes;    BOOL			object_ismap;    char *			object_usemap;    char *			object_id;    char *			object_title;    char *			object_data;    char *			object_type;    char *			object_classid;    char *			object_codebase;    char *			object_codetype;    char *			object_name;    HTChunk			option;		/* Grow by 128 */    BOOL			first_option;	/* First OPTION in SELECT? */    char *			LastOptionValue;    BOOL			LastOptionChecked;    BOOL			select_disabled;    HTChunk			textarea;	/* Grow by 128 */    char *			textarea_name;    int				textarea_name_cs;    char *			textarea_accept_cs;    char *			textarea_cols;    int 			textarea_rows;    int				textarea_disabled;    char *			textarea_id;    HTChunk			math;		/* Grow by 128 */    HTChunk			style_block;	/* Grow by 128 */    HTChunk			script;		/* Grow by 128 */    /*     *  Used for nested lists. - FM     */    int		List_Nesting_Level;	/* counter for list nesting level */    int 	OL_Counter[12];		/* counter for ordered lists */    char 	OL_Type[12];		/* types for ordered lists */    int 	Last_OL_Count;		/* last count in ordered lists */    char 	Last_OL_Type;		/* last type in ordered lists */    int				Division_Level;    short			DivisionAlignments[MAX_NESTING];    int				Underline_Level;    int				Quote_Level;    BOOL			UsePlainSpace;    BOOL			HiddenValue;    int				lastraw;    char *			comment_start;	/* for literate programming */    char *			comment_end;    HTTag *			current_tag;    BOOL			style_change;    HTStyle *			new_style;    HTStyle *			old_style;    int				current_default_alignment;    BOOL			in_word;  /* Have just had a non-white char */    stack_element 	stack[MAX_NESTING];    stack_element 	*sp;		/* Style stack pointer */    BOOL		stack_overrun;	/* Was MAX_NESTING exceeded? */    int			skip_stack; /* flag to skip next style stack operation */    /*    **  Track if we are in an anchor, paragraph, address, base, etc.    */    BOOL		inA;    BOOL		inAPPLET;    BOOL		inAPPLETwithP;    BOOL		inBadBASE;    BOOL		inBadHREF;    BOOL		inBadHTML;    BOOL		inBASE;    BOOL		inBoldA;    BOOL		inBoldH;    BOOL		inCAPTION;    BOOL		inCREDIT;    BOOL		inFIG;    BOOL		inFIGwithP;    BOOL		inFONT;    BOOL		inFORM;    BOOL		inLABEL;    BOOL		inP;    BOOL		inPRE;    BOOL		inSELECT;    BOOL		inTABLE;    BOOL		inTEXTAREA;    BOOL		inUnderline;    BOOL		needBoldH;    /*    **  UCI and UCLYhndl give the UCInfo and charset registered for    **  the HTML parser in the node_anchor's UCStages structure.  It    **  indicates what is fed to the HTML parser as the stream of character    **  data (not necessarily tags and attributes).  It should currently    **  always be set to be the same as UCI and UCLhndl for the HTEXT stage    **  in the node_anchor's UCStages structure, since the HTML parser sends    **  its input character data to the output without further charset    **  translation.    */    LYUCcharset	*	UCI;    int			UCLYhndl;    /*    **  inUCI and inUCLYhndl indicate the UCInfo and charset which the    **  HTML parser treats at the input charset.  It is normally set    **  to the UCI and UCLhndl for the SGML parser in the node_anchor's    **  UCStages structure (which may be a dummy, based on the MIME    **  parser's UCI and UCLhndl in that structure, when we are handling    **  a local file or non-http(s) gateway).  It could be changed    **  temporarily by the HTML parser, for conversions of attribute    **  strings, but should be reset once done. - FM    */    LYUCcharset	*	inUCI;    int			inUCLYhndl;    /*    **  outUCI and outUCLYhndl indicate the UCInfo and charset which    **  the HTML parser treats as the output charset.  It is normally    **  set to its own UCI and UCLhndl.  It could be changed for    **  conversions of attribute strings, but should be reset once    **  done. - FM    */    LYUCcharset	*	outUCI;    int			outUCLYhndl;    /*    **  T holds the transformation rules for conversions of strings    **  between the input and output charsets by the HTML parser. - FM    */    UCTransParams	T;    int 		tag_charset; /* charset for attribute values etc. */};extern  HTStyle *styles[HTML_ELEMENTS+31]; /* adding 24 nested list styles  */					   /* and 3 header alignment styles */					   /* and 3 div alignment styles    *//* *	Semi-Private functions. - FM */extern void HTML_put_character PARAMS((HTStructured *me, char c));extern void HTML_put_string PARAMS((HTStructured *me, CONST char *s));extern void HTML_write PARAMS((HTStructured *me, CONST char *s, int l));extern int HTML_put_entity PARAMS((HTStructured *me, int entity_number));extern void actually_set_style PARAMS((HTStructured * me));/*	Style buffering avoids dummy paragraph begin/ends.*/#define UPDATE_STYLE if (me->style_change) { actually_set_style(me); }#endif /* Lynx_HTML_Handler */extern void strtolower PARAMS((char* i));/*				P U B L I C*//***  HTConverter to present HTML*/extern HTStream* HTMLToPlain PARAMS((	HTPresentation *	pres,	HTParentAnchor *	anchor,	HTStream *		sink));extern HTStream* HTMLParsedPresent PARAMS((	HTPresentation *	pres,	HTParentAnchor *	anchor,	HTStream *		sink));extern HTStream* HTMLToC PARAMS((	HTPresentation *	pres,	HTParentAnchor *	anchor,	HTStream *		sink));extern HTStream* HTMLPresent PARAMS((	HTPresentation *	pres,	HTParentAnchor *	anchor,	HTStream *		sink));extern HTStructured* HTML_new PARAMS((	HTParentAnchor * anchor,	HTFormat	format_out,	HTStream *	target));/***  Record error message as a hypertext object.****  The error message should be marked as an error so that it can be**  reloaded later.  This implementation just throws up an error message**  and leaves the document unloaded.****  On entry,**      sink    is a stream to the output device if any**      number  is the HTTP error number**      message is the human readable message.**  On exit,**      a retrun code like HT_LOADED if object exists else 60; 0*/extern int HTLoadError PARAMS((	HTStream *	sink,	int		number,	CONST char *	message));#endif /* HTML_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -