aboutsummaryrefslogtreecommitdiffstats
path: root/common/ccparray.h
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-05-24 13:43:16 +0000
committerWerner Koch <[email protected]>2016-05-24 13:43:16 +0000
commit2421f7f7ed74ed20372efd63a2efd58d3b55005c (patch)
tree8c5ae41ee35e2629d51b6313be7f4b6e2ea1ca40 /common/ccparray.h
parentcommon,w32: Silence an unused arg warning message. (diff)
downloadgnupg-2421f7f7ed74ed20372efd63a2efd58d3b55005c.tar.gz
gnupg-2421f7f7ed74ed20372efd63a2efd58d3b55005c.zip
common: Add simple dynamic array function.
* common/ccparray.c: New. * common/ccparray.h: New. * common/t-ccparray.c: New. * common/Makefile.am (common_sources): Add files. (module_tests): Add test file. (t_ccparray_LDADD): New. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'common/ccparray.h')
-rw-r--r--common/ccparray.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/common/ccparray.h b/common/ccparray.h
new file mode 100644
index 000000000..241d42db0
--- /dev/null
+++ b/common/ccparray.h
@@ -0,0 +1,51 @@
+/* ccparray.c - A simple dynamic array for character pointer.
+ * Copyright (C) 2016 g10 Code GmbH
+ *
+ * This file is part of GnuPG.
+ *
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of either
+ *
+ * - the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * or
+ *
+ * - the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * or both in parallel, as here.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GNUPG_COMMON_CCPARRAY_H
+#define GNUPG_COMMON_CCPARRAY_H
+
+/* The definition of the structure is private, we only need it here,
+ * so it can be allocated on the stack. */
+struct _ccparray_private_s
+{
+ unsigned int count;
+ unsigned int size;
+ int out_of_core;
+ const char **array;
+};
+
+typedef struct _ccparray_private_s ccparray_t;
+
+
+void ccparray_init (ccparray_t *cpa, unsigned int initialsize);
+void ccparray_put (ccparray_t *cpa, const char *value);
+const char **ccparray_get (ccparray_t *cpa, size_t *r_nelems);
+
+
+#endif /*GNUPG_COMMON_CCPARRAY_H*/