X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=init.c;h=8bd2854ca1c201221ca00960147fbcd73035eb1c;hp=d7eef246c169b29cc5a19e076605bb5163b525a3;hb=10e80e482eff3762b0b8d41b0c7795b76704479c;hpb=05a3bbbe420e4afc76e0eea24ce32f859405dc4a diff --git a/init.c b/init.c index d7eef24..8bd2854 100644 --- a/init.c +++ b/init.c @@ -22,20 +22,22 @@ #include #include #include +#include + +#include #include +#include #include "mutt.h" -#include "history.h" #include "keymap.h" -#include "mbyte.h" #include "charset.h" #include "thread.h" #include #include "mutt_idna.h" #if defined(USE_SSL) || defined(USE_GNUTLS) -#include +#include #endif #if defined (USE_LIBESMTP) && (defined (USE_SSL) || defined (USE_GNUTLS)) @@ -45,7 +47,6 @@ #include "mx.h" #include "init.h" -#include "lib/rx.h" #include "lib/list.h" #include @@ -527,7 +528,7 @@ static int addr_from_string (struct option_t* dst, const char* val, char* errbuf __attribute__ ((unused)), size_t errlen __attribute__ ((unused))) { if (!dst) return (0); - address_delete ((address_t**) dst->data); + address_list_wipe((address_t**) dst->data); if (val && *val) *((address_t**) dst->data) = rfc822_parse_adrlist (NULL, val); return (1); @@ -624,9 +625,9 @@ int query_quadoption (int opt, const char *prompt) /* not reached */ } -static void add_to_list (LIST ** list, const char *str) +static void add_to_list (string_list_t ** list, const char *str) { - LIST *t, *last = NULL; + string_list_t *t, *last = NULL; /* don't add a NULL or empty string to the list */ if (!str || *str == '\0') @@ -644,7 +645,7 @@ static void add_to_list (LIST ** list, const char *str) } if (!*list || last) { - t = p_new(LIST, 1); + t = p_new(string_list_t, 1); t->data = m_strdup(str); if (last) { last->next = t; @@ -671,7 +672,7 @@ static int add_to_rx_list (list2_t** list, const char *s, int flags, i = rx_lookup ((*list), rx->pattern); if (i >= 0) - rx_free (&rx); + rx_delete(&rx); else list_push_back (list, rx); return 0; @@ -754,7 +755,7 @@ static int remove_from_spam_list (SPAM_LIST ** list, const char *pat) return 0; if (spam->rx && !m_strcmp(spam->rx->pattern, pat)) { *list = spam->next; - rx_free (&spam->rx); + rx_delete(&spam->rx); p_delete(&spam->template); p_delete(&spam); return 1; @@ -764,7 +765,7 @@ static int remove_from_spam_list (SPAM_LIST ** list, const char *pat) for (spam = prev->next; spam;) { if (!m_strcmp(spam->rx->pattern, pat)) { prev->next = spam->next; - rx_free (&spam->rx); + rx_delete(&spam->rx); p_delete(&spam->template); p_delete(&spam); spam = prev->next; @@ -778,12 +779,12 @@ static int remove_from_spam_list (SPAM_LIST ** list, const char *pat) } -static void remove_from_list (LIST ** l, const char *str) +static void remove_from_list (string_list_t ** l, const char *str) { - LIST *p, *last = NULL; + string_list_t *p, *last = NULL; if (m_strcmp("*", str) == 0) - mutt_free_list (l); /* ``unCMD *'' means delete all current entries */ + string_list_wipe(l); /* ``unCMD *'' means delete all current entries */ else { p = *l; last = NULL; @@ -809,14 +810,14 @@ static int remove_from_rx_list (list2_t** l, const char *str) int i = 0; if (m_strcmp("*", str) == 0) { - list_del (l, (list_del_t*) rx_free); + list_del (l, (list_del_t*) rx_delete); return (0); } else { i = rx_lookup ((*l), str); if (i >= 0) { rx_t* r = list_pop_idx ((*l), i); - rx_free (&r); + rx_delete(&r); return (0); } } @@ -925,7 +926,7 @@ static int parse_list (BUFFER * buf, BUFFER * s, { do { mutt_extract_token (buf, s, 0); - add_to_list ((LIST **) data, buf->data); + add_to_list ((string_list_t **) data, buf->data); } while (MoreArgs (s)); @@ -1026,7 +1027,7 @@ static int parse_spam_list (BUFFER * buf, BUFFER * s, unsigned long data, /* "*" is a special case. */ if (!m_strcmp(buf->data, "*")) { mutt_free_spam_list (&SpamList); - list_del (&NoSpamList, (list_del_t*) rx_free); + list_del (&NoSpamList, (list_del_t*) rx_delete); return 0; } @@ -1055,10 +1056,10 @@ static int parse_unlist (BUFFER * buf, BUFFER * s, unsigned long data, * Check for deletion of entire list */ if (m_strcmp(buf->data, "*") == 0) { - mutt_free_list ((LIST **) data); + string_list_wipe((string_list_t **) data); break; } - remove_from_list ((LIST **) data, buf->data); + remove_from_list ((string_list_t **) data, buf->data); } while (MoreArgs (s)); @@ -1090,10 +1091,10 @@ static void _attachments_clean (void) { } } -static int parse_attach_list (BUFFER *buf, BUFFER *s, LIST **ldata, +static int parse_attach_list (BUFFER *buf, BUFFER *s, string_list_t **ldata, BUFFER *err __attribute__ ((unused))) { ATTACH_MATCH *a; - LIST *listp, *lastp; + string_list_t *listp, *lastp; char *p; char *tmpminor; int len; @@ -1147,7 +1148,7 @@ static int parse_attach_list (BUFFER *buf, BUFFER *s, LIST **ldata, debug_print (5, ("parse_attach_list: added %s/%s [%d]\n", a->major, a->minor, a->major_int)); - listp = p_new(LIST, 1); + listp = p_new(string_list_t, 1); listp->data = (char *)a; listp->next = NULL; if (lastp) { @@ -1163,10 +1164,10 @@ static int parse_attach_list (BUFFER *buf, BUFFER *s, LIST **ldata, return 0; } -static int parse_unattach_list (BUFFER *buf, BUFFER *s, LIST **ldata, +static int parse_unattach_list (BUFFER *buf, BUFFER *s, string_list_t **ldata, BUFFER *err __attribute__ ((unused))) { ATTACH_MATCH *a; - LIST *lp, *lastp, *newlp; + string_list_t *lp, *lastp, *newlp; char *tmp; int major; char *minor; @@ -1190,7 +1191,7 @@ static int parse_unattach_list (BUFFER *buf, BUFFER *s, LIST **ldata, major = mutt_check_mime_type(tmp); /* We must do our own walk here because remove_from_list() will only - * remove the LIST->data, not anything pointed to by the LIST->data. */ + * remove the string_list_t->data, not anything pointed to by the string_list_t->data. */ lastp = NULL; for(lp = *ldata; lp; ) { a = (ATTACH_MATCH *)lp->data; @@ -1226,7 +1227,7 @@ static int parse_unattach_list (BUFFER *buf, BUFFER *s, LIST **ldata, return 0; } -static int print_attach_list (LIST *lp, char op, const char *name) { +static int print_attach_list (string_list_t *lp, char op, const char *name) { while (lp) { printf("attachments %c%s %s/%s\n", op, name, ((ATTACH_MATCH *)lp->data)->major, @@ -1241,7 +1242,7 @@ static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data __attribute__ ((unused)), BUFFER *err) { char op, *category; - LIST **listp; + string_list_t **listp; mutt_extract_token(buf, s, 0); if (!buf->data || *buf->data == '\0') { @@ -1291,7 +1292,7 @@ static int parse_attachments (BUFFER *buf, BUFFER *s, static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long data __attribute__ ((unused)), BUFFER *err) { char op, *p; - LIST **listp; + string_list_t **listp; mutt_extract_token(buf, s, 0); if (!buf->data || *buf->data == '\0') { @@ -1382,7 +1383,7 @@ static int parse_unalias (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)), BUFFER * err __attribute__ ((unused))) { - ALIAS *tmp, *last = NULL; + alias_t *tmp, *last = NULL; do { mutt_extract_token (buf, s, 0); @@ -1394,7 +1395,7 @@ static int parse_unalias (BUFFER * buf, BUFFER * s, set_option (OPTFORCEREDRAWINDEX); } else - mutt_free_alias (&Aliases); + alias_list_wipe(&Aliases); break; } else @@ -1411,7 +1412,7 @@ static int parse_unalias (BUFFER * buf, BUFFER * s, else Aliases = tmp->next; tmp->next = NULL; - mutt_free_alias (&tmp); + alias_list_wipe(&tmp); break; } last = tmp; @@ -1425,8 +1426,8 @@ static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)), BUFFER * err) { - ALIAS *tmp = Aliases; - ALIAS *last = NULL; + alias_t *tmp = Aliases; + alias_t *last = NULL; char *estr = NULL; if (!MoreArgs (s)) { @@ -1447,8 +1448,7 @@ static int parse_alias (BUFFER * buf, BUFFER * s, if (!tmp) { /* create a new alias */ - tmp = p_new(ALIAS, 1); - tmp->self = tmp; + tmp = alias_new(); tmp->name = m_strdup(buf->data); /* give the main addressbook code a chance */ if (CurrentMenu == MENU_ALIAS) @@ -1456,7 +1456,7 @@ static int parse_alias (BUFFER * buf, BUFFER * s, } else { /* override the previous value */ - address_delete (&tmp->addr); + address_list_wipe(&tmp->addr); if (CurrentMenu == MENU_ALIAS) set_option (OPTFORCEREDRAWINDEX); } @@ -1495,15 +1495,15 @@ parse_unmy_hdr (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)), BUFFER * err __attribute__ ((unused))) { - LIST *last = NULL; - LIST *tmp = UserHeader; - LIST *ptr; + string_list_t *last = NULL; + string_list_t *tmp = UserHeader; + string_list_t *ptr; size_t l; do { mutt_extract_token (buf, s, 0); if (m_strcmp("*", buf->data) == 0) - mutt_free_list (&UserHeader); + string_list_wipe(&UserHeader); else { tmp = UserHeader; last = NULL; @@ -1522,7 +1522,7 @@ parse_unmy_hdr (BUFFER * buf, BUFFER * s, UserHeader = tmp->next; tmp = tmp->next; ptr->next = NULL; - mutt_free_list (&ptr); + string_list_wipe(&ptr); } else { last = tmp; @@ -1538,7 +1538,7 @@ parse_unmy_hdr (BUFFER * buf, BUFFER * s, static int parse_my_hdr (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)), BUFFER * err) { - LIST *tmp; + string_list_t *tmp; size_t keylen; char *p; @@ -1562,11 +1562,11 @@ static int parse_my_hdr (BUFFER * buf, BUFFER * s, unsigned long data __attribut if (!tmp->next) break; } - tmp->next = mutt_new_list (); + tmp->next = string_item_new(); tmp = tmp->next; } else { - tmp = mutt_new_list (); + tmp = string_item_new(); UserHeader = tmp; } tmp->data = buf->data; @@ -1990,7 +1990,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, r = -1; break; } else if (DTYPE (option->type) == DT_ADDR) - address_delete ((address_t **) option->data); + address_list_wipe((address_t **) option->data); else if (DTYPE (option->type) == DT_USER) /* to unset $user_ means remove */ hash_delete (ConfigOptions, option->option, @@ -2514,9 +2514,9 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos) } /* Implement the -Q command line flag */ -int mutt_query_variables (LIST * queries) +int mutt_query_variables (string_list_t * queries) { - LIST *p; + string_list_t *p; char errbuff[STRING]; char command[STRING]; @@ -2543,7 +2543,7 @@ int mutt_query_variables (LIST * queries) return 0; } -static int mutt_execute_commands (LIST * p) +static int mutt_execute_commands (string_list_t * p) { BUFFER err, token; char errstr[SHORT_STRING]; @@ -2563,7 +2563,7 @@ static int mutt_execute_commands (LIST * p) return 0; } -void mutt_init (int skip_sys_rc, LIST * commands) +void mutt_init (int skip_sys_rc, string_list_t * commands) { struct passwd *pw; struct utsname utsname; @@ -2608,7 +2608,8 @@ void mutt_init (int skip_sys_rc, LIST * commands) if (!Homedir) Homedir = m_strdup(pw->pw_dir); - Realname = m_strdup(mutt_gecos_name (rnbuf, sizeof(rnbuf), pw)); + mutt_gecos_name(rnbuf, sizeof(rnbuf), pw, GecosMask.rx); + Realname = m_strdup(rnbuf); Shell = m_strdup(pw->pw_shell); endpwent (); } @@ -2641,7 +2642,7 @@ void mutt_init (int skip_sys_rc, LIST * commands) else Hostname = m_strdup(utsname.nodename); - if (!p && getdnsdomainname (buffer, sizeof(buffer)) == -1) + if (!p && getdnsdomainname(buffer, sizeof(buffer)) == -1) Fqdn = m_strdup("@"); else if (*buffer != '@') {