summaryrefslogtreecommitdiffstats
path: root/include/inn/vector.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/inn/vector.h')
-rw-r--r--include/inn/vector.h87
1 files changed, 0 insertions, 87 deletions
diff --git a/include/inn/vector.h b/include/inn/vector.h
deleted file mode 100644
index ed63e32..0000000
--- a/include/inn/vector.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* $Id: vector.h 5450 2002-04-23 06:06:10Z rra $
-**
-** Vector handling (counted lists of char *'s).
-**
-** Written by Russ Allbery <[email protected]>
-** This work is hereby placed in the public domain by its author.
-**
-** A vector is a simple array of char *'s combined with a count. It's a
-** convenient way of managing a list of strings, as well as a reasonable
-** output data structure for functions that split up a string. There are
-** two basic types of vectors, regular vectors (in which case strings are
-** copied when put into a vector and freed when the vector is freed) and
-** cvectors or const vectors (where each pointer is a const char * to some
-** external string that isn't freed when the vector is freed).
-**
-** There are two interfaces here, one for vectors and one for cvectors,
-** with the basic operations being the same between the two.
-*/
-
-#ifndef INN_VECTOR_H
-#define INN_VECTOR_H 1
-
-#include <inn/defines.h>
-
-struct vector {
- size_t count;
- size_t allocated;
- char **strings;
-};
-
-struct cvector {
- size_t count;
- size_t allocated;
- const char **strings;
-};
-
-BEGIN_DECLS
-
-/* Create a new, empty vector. */
-struct vector *vector_new(void);
-struct cvector *cvector_new(void);
-
-/* Add a string to a vector. Resizes the vector if necessary. */
-void vector_add(struct vector *, const char *string);
-void cvector_add(struct cvector *, const char *string);
-
-/* Resize the array of strings to hold size entries. Saves reallocation work
- in vector_add if it's known in advance how many entries there will be. */
-void vector_resize(struct vector *, size_t size);
-void cvector_resize(struct cvector *, size_t size);
-
-/* Reset the number of elements to zero, freeing all of the strings for a
- regular vector, but not freeing the strings array (to cut down on memory
- allocations if the vector will be reused). */
-void vector_clear(struct vector *);
-void cvector_clear(struct cvector *);
-
-/* Free the vector and all resources allocated for it. */
-void vector_free(struct vector *);
-void cvector_free(struct cvector *);
-
-/* Split functions build a vector from a string. vector_split splits on a
- specified character, while vector_split_space splits on any sequence of
- spaces or tabs (not any sequence of whitespace, as just spaces or tabs is
- more useful for INN). The cvector versions destructively modify the
- provided string in-place to insert nul characters between the strings. If
- the vector argument is NULL, a new vector is allocated; otherwise, the
- provided one is reused.
-
- Empty strings will yield zero-length vectors. Adjacent delimiters are
- treated as a single delimiter by *_split_space, but *not* by *_split, so
- callers of *_split should be prepared for zero-length strings in the
- vector. */
-struct vector *vector_split(const char *string, char sep, struct vector *);
-struct vector *vector_split_space(const char *string, struct vector *);
-struct cvector *cvector_split(char *string, char sep, struct cvector *);
-struct cvector *cvector_split_space(char *string, struct cvector *);
-
-/* Build a string from a vector by joining its components together with the
- specified string as separator. Returns a newly allocated string; caller is
- responsible for freeing. */
-char *vector_join(const struct vector *, const char *seperator);
-char *cvector_join(const struct cvector *, const char *separator);
-
-END_DECLS
-
-#endif /* INN_VECTOR_H */