int merge_env_file( char ***env, FILE *f, const char *fname) { /* NOTE: this function supports braceful and braceless variable expansions, * plus "extended" substitutions, unlike other exported parsing functions. */ return parse_env_file_internal(f, fname, NEWLINE, merge_env_file_push, env, NULL); }
int load_env_file_pairs(FILE *f, const char *fname, char ***rl) { char **m = NULL; int r; r = parse_env_file_internal(f, fname, load_env_file_push_pairs, &m, NULL); if (r < 0) { strv_free(m); return r; } *rl = m; return 0; }
int load_env_file(const char *fname, const char *newline, char ***rl) { char **m = NULL; int r; if (!newline) newline = NEWLINE; r = parse_env_file_internal(fname, newline, load_env_file_push, &m); if (r < 0) { strv_free(m); return r; } *rl = m; return 0; }
int parse_env_file( const char *fname, const char *newline, ...) { va_list ap; int r; if (!newline) newline = NEWLINE; va_start(ap, newline); r = parse_env_file_internal(fname, newline, parse_env_file_push, &ap); va_end(ap); return r; }
int parse_env_file( const char *fname, const char *newline, ...) { va_list ap; int r, n_pushed = 0; if (!newline) newline = NEWLINE; va_start(ap, newline); r = parse_env_file_internal(NULL, fname, newline, parse_env_file_push, &ap, &n_pushed); va_end(ap); return r < 0 ? r : n_pushed; }
int parse_env_filev( FILE *f, const char *fname, va_list ap) { int r, n_pushed = 0; va_list aq; va_copy(aq, ap); r = parse_env_file_internal(f, fname, parse_env_file_push, &aq, &n_pushed); va_end(aq); if (r < 0) return r; return n_pushed; }