bglibs
Functions
envstr: Environment variables in a str.

Functions

const char * envstr_find (const struct str *env, const char *var, long varlen)
 
const char * envstr_get (const struct str *env, const char *var)
 
int envstr_set (struct str *env, const char *var, const char *val, int overwrite)
 
void envstr_unset (struct str *env, const char *var)
 
int envstr_put (struct str *env, const char *asgn, int overwrite)
 
int envstr_from_array (struct str *env, char **array, int overwrite)
 
int envstr_from_string (struct str *env, const char *s, int overwrite)
 
char ** envstr_make_array (const struct str *env)
 

Detailed Description

Calling Convention

All functions that allocate memory return 0 (false) if the function failed due to being unable to allocate memory, and non-zero (true) otherwise.

Function Documentation

◆ envstr_find()

const char* envstr_find ( const struct str env,
const char *  var,
long  len 
)

Find the named variable in the environment string.

Returns
a pointer to the start of the assignment.

References obuf_endl(), obuf_puts, outbuf, striter::startptr, and striter_loop.

Referenced by envstr_get(), envstr_put(), envstr_set(), and envstr_unset().

◆ envstr_from_array()

int envstr_from_array ( struct str env,
char **  array,
int  overwrite 
)

Adds the assignments from the array of pointers to the environment string. The array must be terminated by a NULL pointer, just the same as the standard environ array.

References envstr_put().

◆ envstr_from_string()

int envstr_from_string ( struct str env,
const char *  s,
int  overwrite 
)

Adds the string-based list of assignments to the environment string. Each individual assignment in the list must be ASCII NUL terminated, and the final assignment must be followed by two ASCII NULs.

References envstr_put().

◆ envstr_get()

const char* envstr_get ( const struct str env,
const char *  var 
)

Get the value of an assignment from an environment string.

References envstr_find(), obuf_endl(), obuf_puts, and outbuf.

◆ envstr_make_array()

char** envstr_make_array ( const struct str env)

Make a environ compatable array of pointers to the environment string.

Note
The returned pointer is dynamically allocated, and must be freed.

References obuf_endl(), obuf_putc(), obuf_puti(), obuf_puts, outbuf, striter::startptr, striter_advance(), striter_start(), and striter_valid().

◆ envstr_put()

int envstr_put ( struct str env,
const char *  asgn,
int  overwrite 
)

Put an assignment, in NAME=value format, into the environment string.

Note
Unlike putenv, a copy of the assignment is made instead of keeping a copy of the given pointer.

References envstr_find().

Referenced by envstr_from_array(), and envstr_from_string().

◆ envstr_set()

int envstr_set ( struct str env,
const char *  var,
const char *  val,
int  overwrite 
)

Set the named variable to the given value in the environment string.

References envstr_find().

◆ envstr_unset()

void envstr_unset ( struct str env,
const char *  var 
)

Unset the named variable in the environment string.

References envstr_find(), str::len, and str::s.