36 struct ast_var_t *_ast_var_assign(
const char *name,
const char *value,
const char *file,
int lineno,
const char *
function)
39 int name_len = strlen(name) + 1;
40 int value_len = strlen(value) + 1;
42 var = __ast_calloc(
sizeof(*var) + name_len + value_len,
sizeof(
char),
43 file, lineno,
function);
49 var->value = var->name + name_len;
55 void ast_var_delete(
struct ast_var_t *var)
60 const char *ast_var_name(
const struct ast_var_t *var)
64 if (var == NULL || (name = var->name) == NULL)
75 const char *ast_var_full_name(
const struct ast_var_t *var)
77 return (var ? var->name : NULL);
80 const char *ast_var_value(
const struct ast_var_t *var)
82 return (var ? var->value : NULL);
85 char *ast_var_find(
const struct varshead *head,
const char *name)
90 if (!strcmp(name, var->name)) {
97 struct varshead *ast_var_list_create(
void)
109 void ast_var_list_destroy(
struct varshead *head)
133 clone = ast_var_list_create();
138 AST_VAR_LIST_TRAVERSE(head, var) {
139 newvar = ast_var_assign(var->name, var->value);
141 ast_var_list_destroy(clone);
144 AST_VAR_LIST_INSERT_TAIL(clone, newvar);
Asterisk main include file. File version handling, generic pbx functions.
String manipulation functions.
#define AST_LIST_REMOVE_HEAD(head, field)
Removes and returns the head entry from a list.
#define AST_LIST_TRAVERSE(head, var, field)
Loops over (traverses) the entries in a list.
#define ast_calloc(num, len)
A wrapper for calloc()
#define AST_LIST_HEAD_INIT_NOLOCK(head)
Initializes a list head structure.
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.