/* PCV.c */
#include "../Utilities.h"
/*--------------------------------------------------------------------*/
/*
--------------------------------------------
purpose -- to free a pointer to char vector
must have been created by PCVinit
created -- 95sep22, cca
--------------------------------------------
*/
void
PCVfree (
char **p_cvec
) {
if ( p_cvec != NULL ) {
FREE(p_cvec) ;
}
return ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------------
purpose -- to allocate and initialize to NULL
a vector of pointer to char
created -- 95sep22, cca
---------------------------------------------
*/
char **
PCVinit (
int size
) {
char **p_cvec = NULL ;
if ( size > 0 ) {
int i ;
ALLOCATE(p_cvec, char *, size) ;
for ( i = 0 ; i < size ; i++ ) {
p_cvec[i] = NULL ;
}
}
return(p_cvec) ; }
/*--------------------------------------------------------------------*/
/*
-------------------------------------
purpose -- to set up a pointer vector
created -- 95sep22, cca
-------------------------------------
*/
void
PCVsetup (
int length,
int sizes[],
char cvec[],
char *p_cvec[]
) {
if ( length > 0 ) {
if ( sizes == NULL || cvec == NULL || p_cvec == NULL ) {
fprintf(stderr, "\n fatal error in PCVsetup, invalid data"
"\n length = %d, sizes = %p, cvec = %p, p_cvec = %p\n",
length, sizes, cvec, p_cvec) ;
exit(-1) ;
} else {
int j ;
for ( j = 0 ; j < length ; j++ ) {
if ( sizes[j] > 0 ) {
p_cvec[j] = cvec ;
cvec += sizes[j] ;
} else {
p_cvec[j] = NULL ;
}
}
}
}
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------------------
purpose -- to copy a pointer vector
created -- 95sep22, cca
-----------------------------------
*/
void
PCVcopy (
int length,
char *p_cvec1[],
char *p_cvec2[]
) {
if ( length > 0 ) {
if ( p_cvec1 == NULL || p_cvec2 == NULL ) {
fprintf(stdout, "\n fatal error in PCVcopy, invalid data"
"\n length = %d, p_cvec1 = %p, p_cvec2 = %p\n",
length, p_cvec1, p_cvec2) ;
exit(-1) ;
} else {
int j ;
for ( j = 0 ; j < length ; j++ ) {
p_cvec1[j] = p_cvec2[j] ;
}
}
}
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1