Reference

vecargs(3)

command argument vector insertion routines

NAME

vecargs - command argument vector insertion routines

SYNOPSIS

$1$2#include <vecargs.h>#include <vecargs.h>#include <vecargs.h>#include <vecargs.h>#include <vecargs.h>#include <vecargs.h>#include <vecargs.h>#include <vecargs.h>

$1$2char** vecload(char* string);char** vecload(char* string);char** vecload(char* string);char** vecload(char* string);char** vecload(char* string);char** vecload(char* string);char** vecload(char* string);char** vecload(char* string); $1$2char** vecfile(const char* path);char** vecfile(const char* path);char** vecfile(const char* path);char** vecfile(const char* path);char** vecfile(const char* path);char** vecfile(const char* path);char** vecfile(const char* path);char** vecfile(const char* path); $1$2char** vecstring(const char* string);char** vecstring(const char* string);char** vecstring(const char* string);char** vecstring(const char* string);char** vecstring(const char* string);char** vecstring(const char* string);char** vecstring(const char* string);char** vecstring(const char* string); $1$2void vecfree(char**, int);void vecfree(char**, int);void vecfree(char**, int);void vecfree(char**, int);void vecfree(char**, int);void vecfree(char**, int);void vecfree(char**, int);void vecfree(char**, int); $1$2int vecargs(char** vec, int* argcp, char*** argvp);int vecargs(char** vec, int* argcp, char*** argvp);int vecargs(char** vec, int* argcp, char*** argvp);int vecargs(char** vec, int* argcp, char*** argvp);int vecargs(char** vec, int* argcp, char*** argvp);int vecargs(char** vec, int* argcp, char*** argvp);int vecargs(char** vec, int* argcp, char*** argvp);int vecargs(char** vec, int* argcp, char*** argvp);

DESCRIPTION

$1$2vecloadvecloadvecloadvecloadvecloadvecloadvecloadvecload loads a string vector from lines in $1$2stringstringstringstringstringstringstringstring $1$2stringstringstringstringstringstringstringstring may be modified upon return. Each line in $1$2stringstringstringstringstringstringstringstring is treated as a new vector element. Lines with $1$2######## as the first character are comments. \newline joins consecutive lines. A string vector pointer is returned, 0 on error.

$1$2vecfilevecfilevecfilevecfilevecfilevecfilevecfilevecfile constructs a string vector by calling $1$2vecloadvecloadvecloadvecloadvecloadvecloadvecloadvecload on the contents of the file named by $1$2pathpathpathpathpathpathpathpath The string vector pointer is returned, 0 on error.

$1$2vecstringvecstringvecstringvecstringvecstringvecstringvecstringvecstring constructs a string vector by calling $1$2vecloadvecloadvecloadvecloadvecloadvecloadvecloadvecload on a copy of $1$2stringstringstringstringstringstringstringstring The string vector pointer is returned, 0 on error.

$1$2vecfreevecfreevecfreevecfreevecfreevecfreevecfreevecfree frees a string vector allocated by $1$2vecfilevecfilevecfilevecfilevecfilevecfilevecfilevecfile $1$2vecloadvecloadvecloadvecloadvecloadvecloadvecloadvecload or $1$2vecstringvecstringvecstringvecstringvecstringvecstringvecstringvecstring

$1$2vecargsvecargsvecargsvecargsvecargsvecargsvecargsvecargs inserts the string vector $1$2vecvecvecvecvecvecvecvec (as returned by $1$2vecfilevecfilevecfilevecfilevecfilevecfilevecfilevecfile $1$2vecloadvecloadvecloadvecloadvecloadvecloadvecloadvecload or $1$2vecstringvecstringvecstringvecstringvecstringvecstringvecstringvecstring between $1$2(*argvp)[0](*argvp)[0](*argvp)[0](*argvp)[0](*argvp)[0](*argvp)[0](*argvp)[0](*argvp)[0] and $1$2(*argvp)[1](*argvp)[1](*argvp)[1](*argvp)[1](*argvp)[1](*argvp)[1](*argvp)[1](*argvp)[1] sliding $1$2(*argvp)[1] ...(*argvp)[1] ...(*argvp)[1] ...(*argvp)[1] ...(*argvp)[1] ...(*argvp)[1] ...(*argvp)[1] ...(*argvp)[1] ... over. NULL and empty string args in $1$2vecvecvecvecvecvecvecvec are not copied. $1$2vecfree(vec)vecfree(vec)vecfree(vec)vecfree(vec)vecfree(vec)vecfree(vec)vecfree(vec)vecfree(vec) is called before the return. $1$2-1-1-1-1-1-1-1-1 is returned if the insertion failed.

EXAMPLES

$1$2vecargsvecargsvecargsvecargsvecargsvecargsvecargsvecargs is commonly used to modify command $1$2argvargvargvargvargvargvargvargv from fixed files. For example, make(1) checks for the files $1$2./Makeargs./Makeargs./Makeargs./Makeargs./Makeargs./Makeargs./Makeargs./Makeargs and $1$2./makeargs./makeargs./makeargs./makeargs./makeargs./makeargs./makeargs./makeargs to modify its arguments on startup. Its a handy way to override default options on a directory by directory basis without modify the standard control files (Makefile in this case.)

CAVEATS

This paradigm is not recommended for all commands; only a few exceptions make sense.