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

📄 htparse.h

📁 elinks下lynx是最重要的二个文本浏览器, 在linux下非常实用, lynx比elinks早的多, 目前好像停止开发, 这是lynx源代码
💻 H
字号:
/*                                   HTParse:  URL parsing in the WWW Library**				HTPARSE****  This module of the WWW library contains code to parse URLs and various**  related things.**  Implemented by HTParse.c .*/#ifndef HTPARSE_H#define HTPARSE_H#ifndef HTUTILS_H#include <HTUtils.h>#endif/***  The following are flag bits which may be ORed together to form**  a number to give the 'wanted' argument to HTParse.*/#define PARSE_ACCESS            16#define PARSE_HOST               8#define PARSE_PATH               4#define PARSE_ANCHOR             2#define PARSE_PUNCTUATION        1#define PARSE_ALL               31#define PARSE_ALL_WITHOUT_ANCHOR  (PARSE_ALL ^ PARSE_ANCHOR)/***  Additional flag bits for more details on components already**  covered by the above.  The PARSE_PATH above doesn't really**  strictly refer to the path component in the sense of the URI**  specs only, but rather to that combined with a possible query**  component. - kw*/#define PARSE_STRICTPATH        32#define PARSE_QUERY             64/***  The following are valid mask values.  The terms are the BNF names**  in the URL document.*/#define URL_XALPHAS     UCH(1)#define URL_XPALPHAS    UCH(2)#define URL_PATH        UCH(4)/*	Strip white space off a string.				HTStrip()**	-------------------------------**** On exit,**	Return value points to first non-white character, or to 0 if none.**	All trailing white space is OVERWRITTEN with zero.*/extern char * HTStrip PARAMS((	char *		s));/*	Parse a Name relative to another name.			HTParse()**	--------------------------------------****	This returns those parts of a name which are given (and requested)**	substituting bits from the related name where necessary.**** On entry,**	aName		A filename given**      relatedName     A name relative to which aName is to be parsed**      wanted          A mask for the bits which are wanted.**** On exit,**	returns		A pointer to a malloc'd string which MUST BE FREED*/extern char * HTParse PARAMS((	CONST char *	aName,	CONST char *	relatedName,	int		wanted));/*	HTParseAnchor(), fast HTParse() specialization**	----------------------------------------------**** On exit,**	returns		A pointer within input string (probably to its end '\0')*/extern CONST char * HTParseAnchor PARAMS((	CONST char *	aName));/*	Simplify a filename.				HTSimplify()**	--------------------****  A unix-style file is allowed to contain the seqeunce xxx/../ which may**  be replaced by "" , and the seqeunce "/./" which may be replaced by "/".**  Simplification helps us recognize duplicate filenames.****	Thus,	/etc/junk/../fred	becomes /etc/fred**		/etc/junk/./fred	becomes	/etc/junk/fred****      but we should NOT change**		http://fred.xxx.edu/../..****	or	../../albert.html*/extern void HTSimplify PARAMS((	char *		filename));/*	Make Relative Name.					HTRelative()**	-------------------**** This function creates and returns a string which gives an expression of** one address as related to another.  Where there is no relation, an absolute** address is retured.****  On entry,**	Both names must be absolute, fully qualified names of nodes**	(no anchor bits)****  On exit,**	The return result points to a newly allocated name which, if**	parsed by HTParse relative to relatedName, will yield aName.**	The caller is responsible for freeing the resulting name later.***/extern char * HTRelative PARAMS((	CONST char *	aName,	CONST char *	relatedName));/*		Escape undesirable characters using %		HTEscape()**		-------------------------------------****	This function takes a pointer to a string in which**	some characters may be unacceptable are unescaped.**	It returns a string which has these characters**	represented by a '%' character followed by two hex digits.****	Unlike HTUnEscape(), this routine returns a malloc'd string.*/extern char * HTEscape PARAMS((	CONST char *	str,	unsigned char	mask));/*		Escape unsafe characters using %		HTEscapeUnsafe()**		--------------------------------****	This function takes a pointer to a string in which**	some characters may be that may be unsafe are unescaped.**	It returns a string which has these characters**	represented by a '%' character followed by two hex digits.****	Unlike HTUnEscape(), this routine returns a malloc'd string.*/extern char * HTEscapeUnsafe PARAMS((	CONST char *	str));/*	Escape undesirable characters using % but space to +.	HTEscapeSP()**	-----------------------------------------------------****	This function takes a pointer to a string in which**	some characters may be unacceptable are unescaped.**	It returns a string which has these characters**	represented by a '%' character followed by two hex digits,**	except that spaces are converted to '+' instead of %2B.****	Unlike HTUnEscape(), this routine returns a malloc'd string.*/extern char * HTEscapeSP PARAMS((	CONST char *	str,	unsigned char	mask));/*	Decode %xx escaped characters.				HTUnEscape()**	------------------------------****	This function takes a pointer to a string in which some**	characters may have been encoded in %xy form, where xy is**	the acsii hex code for character 16x+y.**	The string is converted in place, as it will never grow.*/extern char * HTUnEscape PARAMS((	char *		str));/*	Decode some %xx escaped characters.		      HTUnEscapeSome()**	-----------------------------------			Klaus Weide**							    (kweide@tezcat.com)**	This function takes a pointer to a string in which some**	characters may have been encoded in %xy form, where xy is**	the acsii hex code for character 16x+y, and a pointer to**	a second string containing one or more characters which**	should be unescaped if escaped in the first string.**	The first string is converted in place, as it will never grow.*/extern char * HTUnEscapeSome PARAMS((	char *		str,	CONST char *	do_trans));/***  Turn a string which is not a RFC 822 token into a quoted-string. - KW*/extern void HTMake822Word PARAMS((	char **		str,	int		quoted));#endif  /* HTPARSE_H */

⌨️ 快捷键说明

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