1
0
Files
irix-657m-src/irix/cmd/xfs/db/strvec.c
2022-09-29 17:59:04 +03:00

86 lines
1.0 KiB
C

#ident "$Revision: 1.5 $"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "strvec.h"
#include "output.h"
#include "malloc.h"
static int count_strvec(char **vec);
void
add_strvec(
char ***vecp,
char *str)
{
char *dup;
int i;
char **vec;
dup = xstrdup(str);
vec = *vecp;
i = count_strvec(vec);
vec = xrealloc(vec, sizeof(*vec) * (i + 2));
vec[i] = dup;
vec[i + 1] = NULL;
*vecp = vec;
}
char **
copy_strvec(
char **vec)
{
int i;
char **rval;
i = count_strvec(vec);
rval = new_strvec(i);
for (i = 0; vec[i] != NULL; i++)
rval[i] = xstrdup(vec[i]);
return rval;
}
static int
count_strvec(
char **vec)
{
int i;
for (i = 0; vec[i] != NULL; i++)
continue;
return i;
}
void
free_strvec(
char **vec)
{
int i;
for (i = 0; vec[i] != NULL; i++)
xfree(vec[i]);
xfree(vec);
}
char **
new_strvec(
int count)
{
char **rval;
rval = xmalloc(sizeof(*rval) * (count + 1));
rval[count] = NULL;
return rval;
}
void
print_strvec(
char **vec)
{
int i;
for (i = 0; vec[i] != NULL; i++)
dbprintf("%s", vec[i]);
}