--- init.c.if Thu May 25 14:16:35 2000 +++ init.c Thu May 25 15:11:52 2000 @@ -341,9 +341,21 @@ int mutt_extract_token (BUFFER *dest, BU FREE (&expn.data); } } - else if (ch == '$' && (!qc || qc == '"') && (*tok->dptr == '{' || isalpha ((unsigned char) *tok->dptr))) + else if (ch == '$' && (!qc || qc == '"') && + ((*tok->dptr == '{' || isalpha ((unsigned char) *tok->dptr)) || + (*tok->dptr == '$' && + (tok->dptr[1] == '{' || isalpha ((unsigned char) tok->dptr[1]))))) { - char *env, *var; + int local; + char *var; + + if (*tok->dptr == '$') + { + local = 1; + ++ tok->dptr; + } + else + local = 0; if (*tok->dptr == '{') { @@ -361,8 +373,20 @@ int mutt_extract_token (BUFFER *dest, BU var = mutt_substrdup (tok->dptr, pc); tok->dptr = pc; } - if ((env = getenv (var))) - add_str (dest, env); + if (local) + { + char val[STRING]; + + if (query_value (var, val, sizeof (val)) == 0) + add_str (dest, val); + } + else + { + char *env; + + if ((env = getenv (var))) + add_str (dest, env); + } FREE (&var); } else