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

📄 htchunk.h

📁 elinks下lynx是最重要的二个文本浏览器, 在linux下非常实用, lynx比elinks早的多, 目前好像停止开发, 这是lynx源代码
💻 H
字号:
/*						  HTChunk: Flexible array handling for libwww *					CHUNK HANDLING: *					FLEXIBLE ARRAYS * * This module implements a flexible array.  It is a general utility module.  A * chunk is a structure which may be extended.	These routines create and * append data to chunks, automatically reallocating them as necessary. * */#ifndef HTCHUNK_H#define HTCHUNK_H 1#ifndef HTUTILS_H#include <HTUtils.h>#endif#include <UCMap.h>typedef struct {	int	size;		/* In bytes			*/	int	growby;		/* Allocation unit in bytes	*/	int	allocated;	/* Current size of *data	*/	char *	data;		/* Pointer to malloced area or 0 */	int	failok;		/* allowed to fail without exiting program? */} HTChunk;/* * Initialize a chunk's allocation data and allocation-increment. */extern void HTChunkInit PARAMS((HTChunk * ch, int grow));/* * * Create new chunk * *   ON ENTRY, * *   growby		The number of bytes to allocate at a time when the chunk *			is later extended.  Arbitrary but normally a trade-off *			of time vs memory. * *   ON EXIT, * *   returns		A chunk pointer to the new chunk, * */extern HTChunk * HTChunkCreate PARAMS((int growby));/* *  Create a chunk for which an allocation error is not a fatal application *  error if failok != 0, but merely resets the chunk.  When using a chunk *  created this way, the caller should always check whether the contents *  are ok each time after data have been appended. *  The create call may also fail and will reurn NULL in that case. - kw */extern HTChunk * HTChunkCreateMayFail PARAMS((int growby, int failok));/* *  Like HTChunkCreate but with initial allocation - kw * */extern HTChunk * HTChunkCreate2 PARAMS((int growby, size_t needed));/* * * Free a chunk * *   ON ENTRY, * *   ch			A valid chunk pointer made by HTChunkCreate() * *   ON EXIT, * *   ch			is invalid and may not be used. * */extern void HTChunkFree PARAMS((HTChunk * ch));/* * * Clear a chunk * *   ON ENTRY, * *   ch			A valid chunk pointer made by HTChunkCreate() * *   ON EXIT, * *   *ch		The size of the chunk is zero. * */extern void HTChunkClear PARAMS((HTChunk * ch));/* * * Realloc a chunk * *   ON ENTRY, * *   ch			A valid chunk pointer made by HTChunkCreate() * *   growby		growby * *   ON EXIT, * *   *ch		Expanded by growby * */extern BOOL HTChunkRealloc PARAMS((HTChunk * ch, int growby));/* * * Ensure a chunk has a certain space in * *   ON ENTRY, * *   ch			A valid chunk pointer made by HTChunkCreate() * *   s			The size required * *   ON EXIT, * *   *ch		Has size at least s * */extern void HTChunkEnsure PARAMS((HTChunk * ch, int s));/* * * Append a character to a  chunk * *   ON ENTRY, * *   ch			A valid chunk pointer made by HTChunkCreate() * *   c			The character to be appended * *   ON EXIT, * *   *ch		Is one character bigger * */extern void HTChunkPutc PARAMS((HTChunk * ch, char c));extern void HTChunkPutb PARAMS((HTChunk * ch, CONST char *b, int l));extern void HTChunkPutUtf8Char PARAMS((HTChunk * ch, UCode_t code));/* * Append a string to a  chunk * *   ON ENTRY, * *   ch			A valid chunk pointer made by HTChunkCreate() * *   str		Points to a zero-terminated string to be appended * *   ON EXIT, * *   *ch		Is bigger by strlen(str) * */extern void HTChunkPuts PARAMS((HTChunk * ch, CONST char *str));/* * * Append a zero character to a  chunk * *//* * *   ON ENTRY, * *   ch			A valid chunk pointer made by HTChunkCreate() * *   ON EXIT, * *   *ch		Is one character bigger * */extern void HTChunkTerminate PARAMS((HTChunk * ch));#endif /* HTCHUNK_H */

⌨️ 快捷键说明

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