commit 20ff63a8a1d92875130a5d6b059e011b1de2201d from: Florian Westphal date: Thu Jul 28 16:12:50 2005 UTC add array_cat0_temporary() and array_init() commit - 21a067e0b1cd307ff33babe973e9edda6eecd1b3 commit + 20ff63a8a1d92875130a5d6b059e011b1de2201d blob - f45c0a3aecd29a3d1d6f1471f84488866b55b70a blob + bbff5a145c937fa125fd507a563890495662c43d --- src/ngircd/array.c +++ src/ngircd/array.c @@ -12,7 +12,7 @@ #include "array.h" -static char UNUSED id[] = "$Id: array.c,v 1.4 2005/07/14 09:14:12 alex Exp $"; +static char UNUSED id[] = "$Id: array.c,v 1.5 2005/07/28 16:12:50 fw Exp $"; #include @@ -47,6 +47,16 @@ safemult_uint(unsigned int a, unsigned int b, unsigned return true; } + +void +array_init(array *a) +{ + assert(a); + a->mem = NULL; + a->allocated = 0; + a->used = 0; +} + /* if realloc() fails, array_alloc return NULL. otherwise return pointer to elem pos in array */ void * @@ -221,6 +231,18 @@ array_cat0(array * a) } +/* append trailing NUL byte to array, but do not count it. */ +bool +array_cat0_temporary(array * a) +{ + unsigned int len = array_bytes(a); + if (!array_catb(a, "", 1)) + return false; + + array_truncate(a, 1, len); + return true; +} + /* add contents of array src to array dest. */ bool array_cat(array * dest, const array * const src) blob - 82ea2f0d78bc9f528d16f924fbcdcf424a56dd49 blob + 236724c545cd277ff77c2a6be50c99f8d27c4c79 --- src/ngircd/array.h +++ src/ngircd/array.h @@ -8,7 +8,7 @@ * libarray - dynamically allocate arrays. * Copyright (c) 2005 Florian Westphal (westphal@foo.fh-furtwangen.de) * - * $Id: array.h,v 1.2 2005/07/14 09:11:38 alex Exp $ + * $Id: array.h,v 1.3 2005/07/28 16:12:50 fw Exp $ */ #ifndef array_h_included @@ -28,6 +28,9 @@ typedef struct { #define array_unallocated(x) (array_bytes(x)==0) #define INIT_ARRAY { NULL, 0, 0 } +/* set all variables in a to 0 */ +extern void array_init PARAMS((array *a)); + /* allocates space for at least nmemb+1 elements of size bytes each. return pointer to elem at pos, or NULL if realloc() fails */ extern void * array_alloc PARAMS((array *a, unsigned int size, unsigned int pos)); @@ -64,6 +67,9 @@ extern bool array_cats PARAMS((array* dest, const char /* append NUL byte to dest */ extern bool array_cat0 PARAMS((array* dest)); +/* append NUL byte to dest, but do not count null byte */ +extern bool array_cat0_temporary PARAMS((array* dest)); + /* append contents of array src to array dest. */ extern bool array_cat PARAMS((array* dest, const array* const src));