about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTChunk.h
diff options
context:
space:
mode:
authorThomas E. Dickey <dickey@invisible-island.net>1996-09-02 19:39:24 -0400
committerThomas E. Dickey <dickey@invisible-island.net>1996-09-02 19:39:24 -0400
commite087f6d44e87f489fcb3056e86319ebba4218156 (patch)
treed045b58011bfbbf5186d34c4fed9e0dedb363275 /WWW/Library/Implementation/HTChunk.h
downloadlynx-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.h160
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 */