tmate-env.c 768 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "tmate.h"
  2. struct tmate_env {
  3. TAILQ_ENTRY(tmate_env) entry;
  4. char *name;
  5. char *value;
  6. };
  7. TAILQ_HEAD(, tmate_env) tmate_env_list;
  8. void tmate_set_env(const char *name, const char *value)
  9. {
  10. struct tmate_env *tmate_env;
  11. TAILQ_FOREACH(tmate_env, &tmate_env_list, entry) {
  12. if (!strcmp(tmate_env->name, name)) {
  13. free(tmate_env->value);
  14. tmate_env->value = xstrdup(value);
  15. return;
  16. }
  17. }
  18. tmate_env = xmalloc(sizeof(*tmate_env));
  19. tmate_env->name = xstrdup(name);
  20. tmate_env->value = xstrdup(value);
  21. TAILQ_INSERT_HEAD(&tmate_env_list, tmate_env, entry);
  22. }
  23. void tmate_format(struct format_tree *ft)
  24. {
  25. struct tmate_env *tmate_env;
  26. TAILQ_FOREACH(tmate_env, &tmate_env_list, entry) {
  27. format_add(ft, tmate_env->name, "%s", tmate_env->value);
  28. }
  29. }