📄 htparse.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 + -