X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=init.c;h=94c82b2e6fb6e4fa5110eaea3e5b33906a549d1f;hp=21bdd4f255773d36d7a38fa66c6f712797a8ac92;hb=b218f5706bf6bf15bd59a58d9d8d18df17f0b7c9;hpb=f3cbb9f51357972f6e74244494236a41dc4d84cd diff --git a/init.c b/init.c index 21bdd4f..94c82b2 100644 --- a/init.c +++ b/init.c @@ -139,8 +139,8 @@ static int user_from_string (struct option_t* dst, const char* val, static struct { unsigned short type; - void (*opt_to_string) (char* dst, ssize_t dstlen, struct option_t* option); - int (*opt_from_string) (struct option_t* dst, const char* val, + void (*opt_tostr) (char* dst, ssize_t dstlen, struct option_t* option); + int (*opt_fromstr) (struct option_t* dst, const char* val, char* errbuf, ssize_t errlen); } FuncTable[] = { { 0, NULL, NULL }, /* there's no DT_ type with 0 */ @@ -499,7 +499,7 @@ static void addr_to_string (char* dst, ssize_t dstlen, struct option_t* option) { char s[HUGE_STRING]; s[0] = '\0'; - rfc822_write_address (s, sizeof(s), *((address_t**) option->data), 0); + rfc822_addrcat(s, sizeof(s), *((address_t**) option->data), 0); snprintf (dst, dstlen, "%s=\"%s\"", option->option, NONULL (s)); } @@ -523,7 +523,7 @@ int mutt_option_value (const char* val, char* dst, ssize_t dstlen) { return (0); } tmp = p_new(char, dstlen+1); - FuncTable[DTYPE (option->type)].opt_to_string (tmp, dstlen, option); + FuncTable[DTYPE(option->type)].opt_tostr (tmp, dstlen, option); /* as we get things of type $var=value and don't want to bloat the * above "just" for expansion, we do the stripping here */ @@ -726,70 +726,6 @@ static int remove_from_rx_list(rx_t **l, const char *str) return -1; } -static int parse_ifdef (BUFFER * tmp, BUFFER * s, unsigned long data, - BUFFER * err) -{ - int i, j; - unsigned long res = 0; - BUFFER token; - struct option_t* option = NULL; - - p_clear(&token, 1); - mutt_extract_token (tmp, s, 0); - - /* is the item defined as a variable or a function? */ - if ((option = hash_find (ConfigOptions, tmp->data)) != NULL) - res = 1; - else { - for (i = 0; !res && i < MENU_MAX; i++) { - struct binding_t *b = km_get_table (Menus[i].value); - - if (!b) - continue; - - for (j = 0; b[j].name; j++) - if (!ascii_strncasecmp (tmp->data, b[j].name, m_strlen(tmp->data)) - && (m_strlen(b[j].name) == m_strlen(tmp->data))) { - res = 1; - break; - } - } - } - /* check for feature_* */ - if (!res && ascii_strncasecmp (tmp->data, "feature_", 8) == 0 && - (j = m_strlen(tmp->data)) > 8) { - i = 0; - while (Features[i]) { - if (m_strlen(Features[i]) == j-8 && - ascii_strncasecmp (Features[i], tmp->data+8, j-8) == 0) { - res = 1; - break; - } - i++; - } - } - - if (!MoreArgs (s)) { - if (data) - snprintf (err->data, err->dsize, _("ifdef: too few arguments")); - else - snprintf (err->data, err->dsize, _("ifndef: too few arguments")); - return (-1); - } - - mutt_extract_token (tmp, s, M_TOKEN_SPACE); - - if (data == res) { - if (mutt_parse_rc_line (tmp->data, &token, err) == -1) { - mutt_error ("Error: %s", err->data); - p_delete(&token.data); - return (-1); - } - p_delete(&token.data); - } - return 0; -} - static int parse_unignore (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)), BUFFER * err __attribute__ ((unused))) @@ -802,8 +738,7 @@ static int parse_unignore (BUFFER * buf, BUFFER * s, add_to_list (&UnIgnore, buf->data); remove_from_list (&Ignore, buf->data); - } - while (MoreArgs (s)); + } while (MoreArgs (s)); return 0; } @@ -816,9 +751,7 @@ static int parse_ignore (BUFFER * buf, BUFFER * s, mutt_extract_token (buf, s, 0); remove_from_list (&UnIgnore, buf->data); add_to_list (&Ignore, buf->data); - } - while (MoreArgs (s)); - + } while (MoreArgs(s)); return 0; } @@ -829,9 +762,7 @@ static int parse_list (BUFFER * buf, BUFFER * s, do { mutt_extract_token (buf, s, 0); add_to_list ((string_list_t **) data, buf->data); - } - while (MoreArgs (s)); - + } while (MoreArgs(s)); return 0; } @@ -1488,7 +1419,7 @@ static void mutt_set_default(const char *name __attribute__ ((unused)), void* p, return; ptr = hash_find(ConfigOptions, (const char *)ptr->data); } - if (!ptr || *ptr->init || !FuncTable[DTYPE (ptr->type)].opt_from_string) + if (!ptr || *ptr->init || !FuncTable[DTYPE (ptr->type)].opt_fromstr) return; mutt_option_value(ptr->option, buf, sizeof(buf)); @@ -1569,9 +1500,9 @@ static void mutt_restore_default (const char* name __attribute__ ((unused)), } if (!ptr) return; - if (FuncTable[DTYPE (ptr->type)].opt_from_string) { + if (FuncTable[DTYPE (ptr->type)].opt_fromstr) { init_expand (&init, ptr); - if (!FuncTable[DTYPE (ptr->type)].opt_from_string (ptr, init, errbuf, + if (!FuncTable[DTYPE (ptr->type)].opt_fromstr (ptr, init, errbuf, sizeof(errbuf))) { if (!option (OPTNOCURSES)) mutt_endwin (NULL); @@ -1787,7 +1718,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, set_option (OPTREDRAWTREE); return (0); } - else if (!FuncTable[DTYPE (option->type)].opt_from_string) { + else if (!FuncTable[DTYPE (option->type)].opt_fromstr) { snprintf (err->data, err->dsize, _("$%s is read-only"), option->option); r = -1; break; @@ -1848,7 +1779,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, DTYPE (option->type) == DT_SYS) { if (unset) { CHECK_PAGER; - if (!FuncTable[DTYPE (option->type)].opt_from_string) { + if (!FuncTable[DTYPE (option->type)].opt_fromstr) { snprintf (err->data, err->dsize, _("$%s is read-only"), option->option); r = -1; @@ -1866,13 +1797,13 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, } if (query || *s->dptr != '=') { - FuncTable[DTYPE (option->type)].opt_to_string + FuncTable[DTYPE (option->type)].opt_tostr (err->data, err->dsize, option); break; } /* the $madmutt_ variables are read-only */ - if (!FuncTable[DTYPE (option->type)].opt_from_string) { + if (!FuncTable[DTYPE (option->type)].opt_fromstr) { snprintf (err->data, err->dsize, _("$%s is read-only"), option->option); r = -1; @@ -1881,7 +1812,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, CHECK_PAGER; s->dptr++; mutt_extract_token (tmp, s, 0); - if (!FuncTable[DTYPE (option->type)].opt_from_string + if (!FuncTable[DTYPE (option->type)].opt_fromstr (option, tmp->data, err->data, err->dsize)) r = -1; } @@ -2302,8 +2233,7 @@ int mutt_var_value_complete (char *buffer, ssize_t len, int pos) mutt_pretty_mailbox (tmp); } else if (DTYPE (option->type) == DT_ADDR) { - rfc822_write_address (tmp, sizeof(tmp), - *((address_t **) option->data), 0); + 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)]); @@ -2406,7 +2336,7 @@ int mutt_query_variables (string_list_t * queries) static int mutt_execute_commands (string_list_t * p) { BUFFER err, token; - char errstr[SHORT_STRING]; + char errstr[STRING]; p_clear(&err, 1); err.data = errstr; @@ -2708,8 +2638,7 @@ int mutt_dump_variables (int full) { } printf("set "); - FuncTable[DTYPE(option->type)].opt_to_string - (buf, sizeof(buf), option); + FuncTable[DTYPE(option->type)].opt_tostr(buf, sizeof(buf), option); printf ("%s\n", buf); }