diff options
author | Thomas Adam <thomas@xteddy.org> | 2015-08-28 12:01:07 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2015-08-28 12:01:07 +0100 |
commit | 31c027a37a18d11acdc5a1bc96c871dd0139744d (patch) | |
tree | 3474ad68d6038ab764bc9c757d373699ed3b2984 | |
parent | 031d7ce840b34ad0286d4b1345067e868f6ceccd (diff) | |
parent | ee9f708500c2a6987b7a3c0aba2ac5e88812d8aa (diff) | |
download | rtmux-31c027a37a18d11acdc5a1bc96c871dd0139744d.tar.gz rtmux-31c027a37a18d11acdc5a1bc96c871dd0139744d.tar.bz2 rtmux-31c027a37a18d11acdc5a1bc96c871dd0139744d.zip |
Merge branch 'obsd-master'
-rw-r--r-- | format.c | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -323,6 +323,7 @@ format_find(struct format_tree *ft, const char *key) { struct format_entry *fe, fe_find; struct options_entry *o; + struct environ_entry *envent; static char s[16]; o = options_find(&global_options, key); @@ -348,9 +349,18 @@ format_find(struct format_tree *ft, const char *key) fe_find.key = (char *) key; fe = RB_FIND(format_entry_tree, &ft->tree, &fe_find); - if (fe == NULL) - return (NULL); - return (fe->value); + if (fe != NULL) + return (fe->value); + + envent = NULL; + if (ft->s != NULL) + envent = environ_find(&ft->s->environ, key); + if (envent == NULL) + envent = environ_find(&global_environ, key); + if (envent != NULL) + return (envent->value); + + return (NULL); } /* @@ -372,7 +382,7 @@ format_replace(struct format_tree *ft, const char *key, size_t keylen, copy[keylen] = '\0'; /* Is there a length limit or whatnot? */ - if (!islower((u_char) *copy) && *copy != '@' && *copy != '?') { + if (!isalpha((u_char) *copy) && *copy != '@' && *copy != '?') { while (*copy != ':' && *copy != '\0') { switch (*copy) { case '=': |