char * expand_path(const char path[]) { char *const expanded_envvars = expand_envvars(path, 0); /* replace_tilde() frees memory pointed to by expand_envvars. */ return replace_tilde(expanded_envvars); }
/* Performs custom pattern expansion. Allocate new expanded string. */ static char * pattern_expand_hook(const char pattern[]) { char *const no_tilde = expand_tilde(pattern); char *const expanded_pattern = expand_envvars(no_tilde, 0); free(no_tilde); return expanded_pattern; }
/* Returns string after expanding expression. */ static var_t expand_builtin(const call_info_t *call_info) { var_t result; var_val_t var_val; char *str_val; char *env_expanded_str_val; str_val = var_to_string(call_info->argv[0]); env_expanded_str_val = expand_envvars(str_val, 0); var_val.string = expand_macros(env_expanded_str_val, NULL, NULL, 0); free(env_expanded_str_val); free(str_val); result = var_new(VTYPE_STRING, var_val); free(var_val.string); return result; }
char * cmds_expand_envvars(const char str[]) { return expand_envvars(str, 1); }