diff options
author | Thomas E. Dickey <dickey@invisible-island.net> | 1996-09-02 19:39:24 -0400 |
---|---|---|
committer | Thomas E. Dickey <dickey@invisible-island.net> | 1996-09-02 19:39:24 -0400 |
commit | e087f6d44e87f489fcb3056e86319ebba4218156 (patch) | |
tree | d045b58011bfbbf5186d34c4fed9e0dedb363275 /WWW/Library/Implementation/HTChunk.h | |
download | lynx-snapshots-e087f6d44e87f489fcb3056e86319ebba4218156.tar.gz |
snapshot of project "lynx", label v2_6
Diffstat (limited to 'WWW/Library/Implementation/HTChunk.h')
-rw-r--r-- | WWW/Library/Implementation/HTChunk.h | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HTChunk.h b/WWW/Library/Implementation/HTChunk.h new file mode 100644 index 00000000..260f798a --- /dev/null +++ b/WWW/Library/Implementation/HTChunk.h @@ -0,0 +1,160 @@ +/* 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. + + */ +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 */ +} HTChunk; + + +#ifdef SHORT_NAMES +#define HTChunkClear HTChClea +#define HTChunkPutc HTChPutc +#define HTChunkPuts HTChPuts +#define HTChunkCreate HTChCrea +#define HTChunkTerminate HTChTerm +#define HTChunkEnsure HtChEnsu +#endif + + +/* + +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 time vs. + memory + + ON EXIT, + + returns A chunk pointer to the new chunk, + + */ + +extern HTChunk * HTChunkCreate PARAMS((int growby)); + + +/* + +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)); + + +/* + +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)); + +/* + +Append a string to a chunk + + ON ENTRY, + + ch A valid chunk pointer made by HTChunkCreate() + + str Tpoints 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)); + +/* + + end */ |