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

📄 htstring.h

📁 elinks下lynx是最重要的二个文本浏览器, 在linux下非常实用, lynx比elinks早的多, 目前好像停止开发, 这是lynx源代码
💻 H
字号:
/*                                                   String handling for libwww                                         STRINGS                                                Case-independent string comparison and allocations with copies etc    */#ifndef HTSTRING_H#define HTSTRING_H#ifndef HTUTILS_H#include <HTUtils.h>#endif /* HTUTILS_H */extern CONST char * HTLibraryVersion;   /* String for help screen etc *//*    EBCDIC string comparison using ASCII collating sequence*/#ifdef    NOT_ASCIIextern int AS_casecomp  PARAMS((CONST char *a, CONST char *b));extern int AS_ncmp PARAMS((CONST char *a, CONST char *b, unsigned int n));#define    AS_cmp( a, b )  ( AS_ncmp( ( a ), ( b ), -1 ) )extern int AS_cmp PARAMS((CONST char *a, CONST char *b));#else#define AS_casecomp( a, b ) ( strcasecomp( ( a ), ( b ) ) )#define AS_ncmp( a, b, c )  ( strncmp( ( a ), ( b ), ( c ) ) )#define AS_cmp strcmp#endif /* NOT_ASCII *//*Case-insensitive string comparison   The usual routines (comp instead of cmp) had some problem.    */extern int strcasecomp  PARAMS((CONST char *a, CONST char *b));extern int strncasecomp PARAMS((CONST char *a, CONST char *b, int n));extern int strcasecomp8  PARAMS((CONST char *a, CONST char *b));extern int strncasecomp8 PARAMS((CONST char *a, CONST char *b, int n));       /*       **  strcasecomp8 and strncasecomp8 are variants of strcasecomp       **  and strncasecomp, but use 8bit upper/lower case information       **  from the current display charset       *//*Malloced string manipulation */#define StrAllocCopy(dest, src) HTSACopy (&(dest), src)#define StrAllocCat(dest, src)  HTSACat  (&(dest), src)extern char * HTSACopy PARAMS ((char **dest, CONST char *src));extern char * HTSACat  PARAMS ((char **dest, CONST char *src));/*optimized for heavily realloc'd strings in temp objects*/#define StrAllocCopy_extra(dest, src) HTSACopy_extra (&(dest), src)#define FREE_extra(x)   {if (x != NULL) {HTSAFree_extra(x); x = NULL;}}#define Clear_extra(x)  {if (x != NULL) {*x = '\0';}}extern char * HTSACopy_extra PARAMS ((char **dest, CONST char *src));extern void   HTSAFree_extra PARAMS ((char *s));/*Next word or quoted string */extern char * HTNextField PARAMS ((char** pstr));/* A more general parser - kw */extern char * HTNextTok PARAMS((char ** pstr,		      CONST char * delims, CONST char * bracks, char * found));#ifdef ANSI_VARARGSextern char * HTSprintf (char ** pstr, CONST char * fmt, ...)			GCC_PRINTFLIKE(2,3);extern char * HTSprintf0 (char ** pstr, CONST char * fmt, ...)			 GCC_PRINTFLIKE(2,3);#elseextern char * HTSprintf () GCC_PRINTFLIKE(2,3);extern char * HTSprintf0 () GCC_PRINTFLIKE(2,3);#endif#if defined(LY_FIND_LEAKS)	/* private otherwise */extern char * StrAllocVsprintf PARAMS((        char **		pstr,        size_t		len,        CONST char *	fmt,        va_list *	ap));#endif#if (defined(VMS) || defined(DOSPATH) || defined(__EMX__)) && !defined(__CYGWIN__)#define USE_QUOTED_PARAMETER 0#else#define USE_QUOTED_PARAMETER 1#endif#if USE_QUOTED_PARAMETERextern char *HTQuoteParameter PARAMS((CONST char *parameter));extern void HTAddXpand PARAMS((char ** result, CONST char * command, int number, CONST char * parameter));#else#define HTQuoteParameter(parameter) parameter	/* simplify ifdef'ing */#define HTAddXpand(result,command,number,parameter)  HTAddParam(result,command,number,parameter)#endifextern int HTCountCommandArgs PARAMS((CONST char * command));extern void HTAddToCmd PARAMS((char ** result, CONST char * command, int number, CONST char * string));extern void HTAddParam PARAMS((char ** result, CONST char * command, int number, CONST char * parameter));extern void HTEndParam PARAMS((char ** result, CONST char * command, int number));/* Force an option, with leading blanks, to be appended without quoting them */#define HTOptParam(result, command, number, parameter) HTSACat(result, parameter)/* Binary copy and concat */typedef struct {	char *str;	int len;} bstring;extern void HTSABCopy  PARAMS((bstring ** dest, CONST char * src, int len));extern void HTSABCopy0 PARAMS((bstring ** dest, CONST char * src));extern void HTSABCat   PARAMS((bstring ** dest, CONST char * src, int len));extern void HTSABCat0  PARAMS((bstring ** dest, CONST char * src));extern BOOL HTSABEql   PARAMS((bstring * a, bstring * b));extern void HTSABFree  PARAMS((bstring ** ptr));#define BStrLen(s)    (((s) != 0) ? (s)->len : 0)#define BStrData(s)   (((s) != 0) ? (s)->str : 0)#define BINEQ(a,b)    (HTSABEql(a,b))	/* like STREQ() */#define isBEmpty(p)   ((p) == 0 || BStrLen(p) == 0)#define BStrCopy(d,s)  HTSABCopy(  &(d), BStrData(s), BStrLen(s))#define BStrCopy0(d,s) HTSABCopy0( &(d), s)#define BStrCat(d,s)   HTSABCat(   &(d), BStrData(s), BStrLen(s))#define BStrCat0(d,s)  HTSABCat0(  &(d), s)#define BStrFree(d)    HTSABFree(  &(d))#ifdef ANSI_VARARGSextern bstring * HTBprintf (bstring ** pstr, CONST char * fmt, ...)			    GCC_PRINTFLIKE(2,3);#elseextern bstring * HTBprintf () GCC_PRINTFLIKE(2,3);#endifextern void trace_bstring PARAMS((bstring *data));extern void trace_bstring2 PARAMS((CONST char *text, int size));#endif /* HTSTRING_H */

⌨️ 快捷键说明

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