#include <lib-ui/curses.h>
#include <lib-ui/history.h>
#include <lib-mx/mx.h>
-#include <lib-crypt/crypt.h>
#include "mutt.h"
#include "keymap.h"
+#include "crypt.h"
#include "charset.h"
#include "thread.h"
#include "mutt_idna.h"
-
-#if defined (USE_LIBESMTP) && (defined (USE_SSL) || defined (USE_GNUTLS))
#include "mutt_libesmtp.h"
-#endif
-
#include "alias.h"
#include "init.h"
}
-static void addr_to_string (char* dst, ssize_t dstlen,
- struct option_t* option) {
- char s[HUGE_STRING];
- s[0] = '\0';
- rfc822_addrcat(s, sizeof(s), *((address_t**) option->data), 0);
- snprintf (dst, dstlen, "%s=\"%s\"", option->option, NONULL (s));
-}
-
-static int addr_from_string (struct option_t* dst, const char* val,
- char* errbuf __attribute__ ((unused)), ssize_t errlen __attribute__ ((unused))) {
- if (!dst)
- return (0);
- address_list_wipe((address_t**) dst->data);
- if (val && *val)
- *((address_t**) dst->data) = rfc822_parse_adrlist (NULL, val);
- return (1);
-}
-
static struct {
unsigned short type;
void (*opt_tostr) (char* dst, ssize_t dstlen, struct option_t* option);
{ DT_SORT, sort_to_string, sort_from_string },
{ DT_RX, rx_to_string, rx_from_string },
{ DT_MAGIC, magic_to_string, magic_from_string },
- /* synonyms should be resolved already so we don't need this
- * but must define it as DT_ is used for indexing */
- { DT_SYN, NULL, NULL },
- { DT_ADDR, addr_to_string, addr_from_string },
};
char buf[LONG_STRING];
struct option_t *ptr = p;
- if (DTYPE(ptr->type) == DT_SYN) {
- if (!more)
- return;
- ptr = hash_find(ConfigOptions, (const char *)ptr->data);
- }
if (!ptr || *ptr->init || !FuncTable[DTYPE (ptr->type)].opt_fromstr)
return;
p_delete(dst);
- if (DTYPE(src->type) == DT_STR ||
- DTYPE(src->type) == DT_PATH) {
+ if (DTYPE(src->type) == DT_STR || DTYPE(src->type) == DT_PATH) {
/* only expand for string as it's the only place where
* we want to expand vars right now */
if (src->init && *src->init) {
struct option_t* ptr = (struct option_t*) p;
char* init = NULL;
- if (DTYPE (ptr->type) == DT_SYN) {
- if (!more)
- return;
- ptr = hash_find (ConfigOptions, (char*) ptr->data);
- }
if (!ptr)
return;
if (FuncTable[DTYPE (ptr->type)].opt_fromstr) {
/* get the variable name */
mutt_extract_token (tmp, s, M_TOKEN_EQUAL);
-
- /* resolve synonyms */
- if ((option = hash_find (ConfigOptions, tmp->data)) != NULL &&
- DTYPE (option->type == DT_SYN))
- {
- struct option_t* newopt = hash_find (ConfigOptions, (char*) option->data);
- syn_t* syn = syn_new();
- syn->f = m_strdup(CurRCFile);
- syn->l = CurRCLine;
- syn->n = newopt;
- syn->o = option;
- syn_list_push(&Synonyms, syn);
- option = newopt;
- }
-
+ option = hash_find(ConfigOptions, tmp->data);
if (!option && !(reset && m_strcmp("all", tmp->data) == 0)) {
snprintf (err->data, err->dsize, _("%s: unknown variable"), tmp->data);
return (-1);
}
else if (DTYPE (option->type) == DT_STR ||
DTYPE (option->type) == DT_PATH ||
- DTYPE (option->type) == DT_ADDR ||
DTYPE (option->type) == DT_MAGIC ||
DTYPE (option->type) == DT_NUM ||
DTYPE (option->type) == DT_SORT ||
DTYPE (option->type) == DT_RX)
{
/* XXX maybe we need to get unset into handlers? */
- if (DTYPE (option->type) == DT_STR ||
- DTYPE (option->type) == DT_PATH ||
- DTYPE (option->type) == DT_ADDR)
- {
+ if (DTYPE (option->type) == DT_STR || DTYPE (option->type) == DT_PATH) {
if (unset) {
CHECK_PAGER;
- if (DTYPE (option->type) == DT_ADDR)
- address_list_wipe((address_t **) option->data);
- else
- p_delete((void **)(void *)&option->data);
+ p_delete((void **)(void *)&option->data);
break;
}
}
if (DTYPE (option->type) == DT_PATH)
mutt_pretty_mailbox (tmp);
}
- else if (DTYPE (option->type) == DT_ADDR) {
- rfc822_addrcat(tmp, sizeof(tmp), *((address_t **) option->data), 0);
- }
else if (DTYPE (option->type) == DT_QUAD)
m_strcpy(tmp, sizeof(tmp), vals[quadoption(option->data)]);
else if (DTYPE (option->type) == DT_NUM)
p_delete(&token.data);
}
- if ((p = getenv ("EMAIL")) != NULL)
- From = rfc822_parse_adrlist (NULL, p);
-
/* Set standard defaults */
hash_map (ConfigOptions, mutt_set_default, 0);
hash_map (ConfigOptions, mutt_restore_default, 0);
struct option_t *option = MuttVars + i;
char buf[LONG_STRING];
- if (DTYPE(option->type) == DT_SYN)
- continue;
-
if (!full) {
mutt_option_value(option->option, buf, sizeof(buf));
if (!m_strcmp(buf, option->init))