tmate/tmate-env.c

37 lines
768 B
C

#include "tmate.h"
struct tmate_env {
TAILQ_ENTRY(tmate_env) entry;
char *name;
char *value;
};
TAILQ_HEAD(, tmate_env) tmate_env_list;
void tmate_set_env(const char *name, const char *value)
{
struct tmate_env *tmate_env;
TAILQ_FOREACH(tmate_env, &tmate_env_list, entry) {
if (!strcmp(tmate_env->name, name)) {
free(tmate_env->value);
tmate_env->value = xstrdup(value);
return;
}
}
tmate_env = xmalloc(sizeof(*tmate_env));
tmate_env->name = xstrdup(name);
tmate_env->value = xstrdup(value);
TAILQ_INSERT_HEAD(&tmate_env_list, tmate_env, entry);
}
void tmate_format(struct format_tree *ft)
{
struct tmate_env *tmate_env;
TAILQ_FOREACH(tmate_env, &tmate_env_list, entry) {
format_add(ft, tmate_env->name, "%s", tmate_env->value);
}
}