# Argument Manipulation API.

## Files
file | argv.h
## Functions
void | argvPrint (const char *msg, ARGV_const_t argv, FILE *fp)
| Print argv array elements.
ARGI_t | argiFree (ARGI_t argi)
| Destroy an argi array.
ARGV_t | argvNew (void)
| Create an empty argv array.
ARGV_t | argvFree (ARGV_t argv)
| Destroy an argv array.
int | argiCount (ARGI_const_t argi)
| Return no.
ARGint_t | argiData (ARGI_const_t argi)
| Return data from argi array.
int | argvCount (ARGV_const_t argv)
| Return no.
ARGV_t | argvData (ARGV_t argv)
| Return data from argv array.
int | argvCmp (const void *a, const void *b)
| Compare argv arrays (qsort/bsearch).
int | argvSort (ARGV_t argv, int(*compar)(const void *, const void *))
| Sort an argv array.
ARGV_t | argvSearch (ARGV_const_t argv, const char *val, int(*compar)(const void *, const void *))
| Find an element in an argv array.
int | argiAdd (ARGI_t *argip, int ix, int val)
| Add an int to an argi array.
int | argvAdd (ARGV_t *argvp, const char *val)
| Add a string to an argv array.
int | argvAddNum (ARGV_t *argvp, int val)
| Add a number to an argv array (converting to a string).
int | argvAppend (ARGV_t *argvp, ARGV_const_t av)
| Append one argv array to another.
int | argvSplit (ARGV_t *argvp, const char *str, const char *seps)
| Split a string into an argv array.
char * | argvJoin (ARGV_const_t argv, const char *sep)
| Join an argv array into a string.

## Function Documentation

int argiAdd | ( | ARGI_t * | argip,
|  | int | ix,
|  | int | val |
| ) |  |  |

Add an int to an argi array.

Return values:

  | *argip | argi array

Parameters:

  | ix | argi array index (or -1 to append)
  | val | int arg to add

Returns:
  0 always

int argiCount | ( | ARGI_const_t | argi | ) |

Return no.

of elements in argi array.

Parameters:

  | argi | argi array

Returns:
  no. of elements

ARGint_t argiData | ( | ARGI_const_t | argi | ) |

Return data from argi array.

Parameters:

  | argi | argi array

Returns:
  argi array data address

ARGI_t argiFree | ( | ARGI_t | argi | ) |

Destroy an argi array.

Parameters:

  | argi | argi array

Returns:
  NULL always

int argvAdd | ( | ARGV_t * | argvp,
|  | const char * | val |
| ) |  |  |

Add a string to an argv array.

Return values:

  | *argvp | argv array

Parameters:

  | val | string arg to append

Returns:
  0 always

int argvAddNum | ( | ARGV_t * | argvp,
|  | int | val |
| ) |  |  |

Add a number to an argv array (converting to a string).

Return values:

  | *argvp | argv array

Parameters:

  | val | numeric arg to append

Returns:
  0 always

int argvAppend | ( | ARGV_t * | argvp,
|  | ARGV_const_t | av |
| ) |  |  |

Append one argv array to another.

Return values:

  | *argvp | argv array

Parameters:

  | av | argv array to append

Returns:
  0 always

int argvCmp | ( | const void * | a,
|  | const void * | b |
| ) |  |  |

Compare argv arrays (qsort/bsearch).

Parameters:

  | a | 1st instance address
  | b | 2nd instance address

Returns:
  result of comparison

int argvCount | ( | ARGV_const_t | argv | ) |

Return no.

of elements in argv array.

Parameters:

  | argv | argv array

Returns:
  no. of elements

ARGV_t argvData | ( | ARGV_t | argv | ) |

Return data from argv array.

Parameters:

  | argv | argv array

Returns:
  argv array data address

ARGV_t argvFree | ( | ARGV_t | argv | ) |

Destroy an argv array.

Parameters:

  | argv | argv array

Returns:
  NULL always

char* argvJoin | ( | ARGV_const_t | argv,
|  | const char * | sep |
| ) |  |  |

Join an argv array into a string.

Parameters:

  | *argv | argv array to join
  | sep | seperator string to use

Returns:
  malloc'ed string

ARGV_t argvNew | ( | void |  | ) |

Create an empty argv array.

Returns:
  pointer to empty argv

void argvPrint | ( | const char * | msg,
|  | ARGV_const_t | argv,
|  | FILE * | fp |
| ) |  |  |

Print argv array elements.

Parameters:

  | msg | output message prefix (or NULL)
  | argv | argv array
  | fp | output file handle (NULL uses stderr)

ARGV_t argvSearch | ( | ARGV_const_t | argv,
|  | const char * | val,
|  | int(*)(const void *, const void *) | compar |
| ) |  |  |

Find an element in an argv array.

Parameters:

  | argv | argv array
  | val | string to find
  | compar | strcmp-like comparison function, or NULL for argvCmp()

Returns:
  found string (NULL on failure)

int argvSort | ( | ARGV_t | argv,
|  | int(*)(const void *, const void *) | compar |
| ) |  |  |

Sort an argv array.

Parameters:

  | argv | argv array
  | compar | strcmp-like comparison function, or NULL for argvCmp()

Returns:
  0 always

int argvSplit | ( | ARGV_t * | argvp,
|  | const char * | str,
|  | const char * | seps |
| ) |  |  |

Split a string into an argv array.

Return values:

  | *argvp | argv array

Parameters:

  | str | string arg to split
  | seps | seperator characters

Returns:
  0 always