X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=init.c;h=f6efc621b2f96f6382a9d5d6afab23dea8c22f3c;hp=2d6f7fd97d1e94583877a6da7e380dc84dfe1431;hb=d23094706c228c63c7c7ab8f337fb5dd886c4109;hpb=c8bf978fc5c4f6c793620a515fa2456a3fa9eb13 diff --git a/init.c b/init.c index 2d6f7fd..f6efc62 100644 --- a/init.c +++ b/init.c @@ -20,20 +20,25 @@ #include #include #include +#include +#include +#include + +#include + +#include #include "mutt.h" -#include "mapping.h" -#include "mutt_curses.h" #include "history.h" #include "keymap.h" #include "mbyte.h" #include "charset.h" #include "thread.h" -#include "mutt_crypt.h" +#include #include "mutt_idna.h" #if defined(USE_SSL) || defined(USE_GNUTLS) -#include "mutt_ssl.h" +#include #endif #if defined (USE_LIBESMTP) && (defined (USE_SSL) || defined (USE_GNUTLS)) @@ -43,9 +48,7 @@ #include "mx.h" #include "init.h" -#include "lib/rx.h" #include "lib/list.h" -#include "lib/debug.h" #include #include @@ -186,7 +189,8 @@ static void bool_to_string (char* dst, size_t dstlen, } static int bool_from_string (struct option_t* dst, const char* val, - char* errbuf, size_t errlen) { + char* errbuf __attribute__ ((unused)), + size_t errlen __attribute__ ((unused))) { int flag = -1; if (!dst) @@ -262,18 +266,18 @@ static void sys_to_string (char* dst, size_t dstlen, char *val = NULL, *t = NULL; int clean = 0; - /* get some $muttng_ values dynamically */ - if (ascii_strcmp ("muttng_pwd", option->option) == 0) { + /* get some $madmutt_ values dynamically */ + if (ascii_strcmp ("madmutt_pwd", option->option) == 0) { val = p_new(char, _POSIX_PATH_MAX); val = getcwd (val, _POSIX_PATH_MAX-1); clean = 1; - } else if (ascii_strcmp ("muttng_folder_path", option->option) == 0 && + } else if (ascii_strcmp ("madmutt_folder_path", option->option) == 0 && CurrentFolder && *CurrentFolder) { val = CurrentFolder; - } else if (ascii_strcmp ("muttng_folder_name", option->option) == 0 && + } else if (ascii_strcmp ("madmutt_folder_name", option->option) == 0 && CurrentFolder && *CurrentFolder) { - size_t Maildirlength = m_strlen(Maildir); + ssize_t Maildirlength = m_strlen(Maildir); /* * if name starts with $folder, just strip it to keep hierarchy @@ -290,10 +294,10 @@ static void sys_to_string (char* dst, size_t dstlen, val = t+1; /* default: use as-is */ else - val = CurrentFolder; + val = (char *) CurrentFolder; } else - val = option->init; + val = (char *) option->init; snprintf (dst, dstlen, "%s=\"%s\"", option->option, NONULL (val)); if (clean) @@ -301,7 +305,7 @@ static void sys_to_string (char* dst, size_t dstlen, } static int path_from_string (struct option_t* dst, const char* val, - char* errbuf, size_t errlen) { + char* errbuf __attribute__ ((unused)), size_t errlen __attribute__ ((unused))) { char path[_POSIX_PATH_MAX]; if (!dst) @@ -315,7 +319,7 @@ static int path_from_string (struct option_t* dst, const char* val, path[0] = '\0'; m_strcpy(path, sizeof(path), val); mutt_expand_path (path, sizeof(path)); - str_replace ((char **) dst->data, path); + m_strreplace((char **) dst->data, path); return (1); } @@ -327,12 +331,12 @@ static int str_from_string (struct option_t* dst, const char* val, if (!check_special (dst->option, (unsigned long) val, errbuf, errlen)) return (0); - str_replace ((char**) dst->data, val); + m_strreplace((char**) dst->data, val); return (1); } static int user_from_string (struct option_t* dst, const char* val, - char* errbuf, size_t errlen) { + char* errbuf __attribute__ ((unused)), size_t errlen __attribute__ ((unused))) { /* if dst == NULL, we may get here in case the user did unset it, * see parse_set() where item is free()'d before coming here; so * just silently ignore it */ @@ -342,7 +346,7 @@ static int user_from_string (struct option_t* dst, const char* val, dst->data = (unsigned long) m_strdup(val); else { char* s = (char*) dst->data; - str_replace (&s, val); + m_strreplace(&s, val); } if (m_strlen(dst->init) == 0) dst->init = m_strdup((char*) dst->data); @@ -357,7 +361,7 @@ static void quad_to_string (char* dst, size_t dstlen, } static int quad_from_string (struct option_t* dst, const char* val, - char* errbuf, size_t errlen) { + char* errbuf __attribute__ ((unused)), size_t errlen __attribute__ ((unused))) { int flag = -1; if (!dst) @@ -467,7 +471,7 @@ static int rx_from_string (struct option_t* dst, const char* val, p_delete(&p->rx); } - str_replace (&p->pattern, val); + m_strreplace(&p->pattern, val); p->rx = rx; p->not = not; @@ -491,7 +495,7 @@ static void magic_to_string (char* dst, size_t dstlen, } static int magic_from_string (struct option_t* dst, const char* val, - char* errbuf, size_t errlen) { + char* errbuf __attribute__ ((unused)), size_t errlen __attribute__ ((unused))) { int flag = -1; if (!dst || !val || !*val) @@ -517,17 +521,17 @@ static void addr_to_string (char* dst, size_t dstlen, struct option_t* option) { char s[HUGE_STRING]; s[0] = '\0'; - rfc822_write_address (s, sizeof(s), *((ADDRESS**) option->data), 0); + rfc822_write_address (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, size_t errlen) { + char* errbuf __attribute__ ((unused)), size_t errlen __attribute__ ((unused))) { if (!dst) return (0); - rfc822_free_address ((ADDRESS**) dst->data); + address_delete ((address_t**) dst->data); if (val && *val) - *((ADDRESS**) dst->data) = rfc822_parse_adrlist (NULL, val); + *((address_t**) dst->data) = rfc822_parse_adrlist (NULL, val); return (1); } @@ -669,7 +673,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; @@ -752,7 +756,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; @@ -762,7 +766,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; @@ -807,14 +811,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); } } @@ -824,7 +828,8 @@ static int remove_from_rx_list (list2_t** l, const char *str) static int parse_ifdef (BUFFER * tmp, BUFFER * s, unsigned long data, BUFFER * err) { - int i, j, res = 0; + int i, j; + unsigned long res = 0; BUFFER token; struct option_t* option = NULL; @@ -884,8 +889,9 @@ static int parse_ifdef (BUFFER * tmp, BUFFER * s, unsigned long data, return 0; } -static int parse_unignore (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_unignore (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { do { mutt_extract_token (buf, s, 0); @@ -901,8 +907,9 @@ static int parse_unignore (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_ignore (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_ignore (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { do { mutt_extract_token (buf, s, 0); @@ -914,8 +921,9 @@ static int parse_ignore (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_list (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_list (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { do { mutt_extract_token (buf, s, 0); @@ -936,8 +944,9 @@ static void _alternates_clean (void) } } -static int parse_alternates (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_alternates (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { _alternates_clean (); do { @@ -952,8 +961,9 @@ static int parse_alternates (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_unalternates (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_unalternates (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { _alternates_clean (); do { @@ -1018,7 +1028,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; } @@ -1039,7 +1049,7 @@ static int parse_spam_list (BUFFER * buf, BUFFER * s, unsigned long data, } static int parse_unlist (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) + BUFFER * err __attribute__ ((unused))) { do { mutt_extract_token (buf, s, 0); @@ -1057,7 +1067,8 @@ static int parse_unlist (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_lists (BUFFER * buf, BUFFER * s, unsigned long data, +static int parse_lists (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), BUFFER * err) { do { @@ -1082,7 +1093,7 @@ static void _attachments_clean (void) { } static int parse_attach_list (BUFFER *buf, BUFFER *s, LIST **ldata, - BUFFER *err) { + BUFFER *err __attribute__ ((unused))) { ATTACH_MATCH *a; LIST *listp, *lastp; char *p; @@ -1154,7 +1165,8 @@ static int parse_attach_list (BUFFER *buf, BUFFER *s, LIST **ldata, return 0; } -static int parse_unattach_list (BUFFER *buf, BUFFER *s, LIST **ldata, BUFFER *err) { +static int parse_unattach_list (BUFFER *buf, BUFFER *s, LIST **ldata, + BUFFER *err __attribute__ ((unused))) { ATTACH_MATCH *a; LIST *lp, *lastp, *newlp; char *tmp; @@ -1175,7 +1187,7 @@ static int parse_unattach_list (BUFFER *buf, BUFFER *s, LIST **ldata, BUFFER *er *minor = '\0'; ++minor; } else { - minor = "unknown"; + minor = m_strdup("unknown"); } major = mutt_check_mime_type(tmp); @@ -1227,7 +1239,9 @@ static int print_attach_list (LIST *lp, char op, const char *name) { return 0; } -static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) { +static int parse_attachments (BUFFER *buf, BUFFER *s, + unsigned long data __attribute__ ((unused)), + BUFFER *err) { char op, *category; LIST **listp; @@ -1277,7 +1291,7 @@ static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER return parse_attach_list(buf, s, listp, err); } -static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) { +static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long data __attribute__ ((unused)), BUFFER *err) { char op, *p; LIST **listp; @@ -1313,8 +1327,9 @@ static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFF return parse_unattach_list(buf, s, listp, err); } -static int parse_unlists (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_unlists (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { do { mutt_extract_token (buf, s, 0); @@ -1330,7 +1345,7 @@ static int parse_unlists (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_subscribe (BUFFER * buf, BUFFER * s, unsigned long data, +static int parse_subscribe (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)), BUFFER * err) { do { @@ -1348,8 +1363,9 @@ static int parse_subscribe (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_unsubscribe (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_unsubscribe (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { do { mutt_extract_token (buf, s, 0); @@ -1364,8 +1380,9 @@ static int parse_unsubscribe (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_unalias (BUFFER * buf, BUFFER * s, unsigned long data, - BUFFER * err) +static int parse_unalias (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { ALIAS *tmp, *last = NULL; @@ -1406,7 +1423,8 @@ static int parse_unalias (BUFFER * buf, BUFFER * s, unsigned long data, return 0; } -static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data, +static int parse_alias (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), BUFFER * err) { ALIAS *tmp = Aliases; @@ -1440,7 +1458,7 @@ static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data, } else { /* override the previous value */ - rfc822_free_address (&tmp->addr); + address_delete (&tmp->addr); if (CurrentMenu == MENU_ALIAS) set_option (OPTFORCEREDRAWINDEX); } @@ -1460,7 +1478,7 @@ static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data, } #ifdef DEBUG if (DebugLevel >= 2) { - ADDRESS *a; + address_t *a; /* A group is terminated with an empty address, so check a->mailbox */ for (a = tmp->addr; a && a->mailbox; a = a->next) { @@ -1475,7 +1493,9 @@ static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data, } static int -parse_unmy_hdr (BUFFER * buf, BUFFER * s, unsigned long data, BUFFER * err) +parse_unmy_hdr (BUFFER * buf, BUFFER * s, + unsigned long data __attribute__ ((unused)), + BUFFER * err __attribute__ ((unused))) { LIST *last = NULL; LIST *tmp = UserHeader; @@ -1517,7 +1537,7 @@ parse_unmy_hdr (BUFFER * buf, BUFFER * s, unsigned long data, BUFFER * err) return 0; } -static int parse_my_hdr (BUFFER * buf, BUFFER * s, unsigned long data, +static int parse_my_hdr (BUFFER * buf, BUFFER * s, unsigned long data __attribute__ ((unused)), BUFFER * err) { LIST *tmp; @@ -1582,7 +1602,7 @@ parse_sort (struct option_t* dst, const char *s, const struct mapping_t *map, } /* if additional data more == 1, we want to resolve synonyms */ -static void mutt_set_default(const char *name, void* p, unsigned long more) +static void mutt_set_default(const char *name __attribute__ ((unused)), void* p, unsigned long more) { char buf[LONG_STRING]; struct option_t *ptr = p; @@ -1663,8 +1683,8 @@ static int init_expand (char** dst, struct option_t* src) { } /* if additional data more == 1, we want to resolve synonyms */ -static void mutt_restore_default (const char* name, void* p, - unsigned long more) { +static void mutt_restore_default (const char* name __attribute__ ((unused)), + void* p, unsigned long more) { char errbuf[STRING]; struct option_t* ptr = (struct option_t*) p; char* init = NULL; @@ -1705,7 +1725,7 @@ static void mutt_restore_default (const char* name, void* p, } /* check whether value for $dsn_return would be valid */ -static int check_dsn_return (const char* option, unsigned long p, +static int check_dsn_return (const char* option __attribute__ ((unused)), unsigned long p, char* errbuf, size_t errlen) { char* val = (char*) p; if (val && *val && m_strncmp(val, "hdrs", 4) != 0 && @@ -1721,7 +1741,8 @@ static int check_dsn_return (const char* option, unsigned long p, static int check_dsn_notify (const char* option, unsigned long p, char* errbuf, size_t errlen) { list2_t* list = NULL; - int i = 0, rc = 1; + size_t i = 0; + int rc = 1; char* val = (char*) p; if (!val || !*val) @@ -1768,7 +1789,7 @@ static int check_debug (const char* option, unsigned long p, } #endif -static int check_history (const char* option, unsigned long p, +static int check_history (const char* option __attribute__ ((unused)), unsigned long p, char* errbuf, size_t errlen) { if (!check_num ("history", p, errbuf, errlen)) return (0); @@ -1800,8 +1821,7 @@ static const struct mapping_t* get_sortmap (struct option_t* option) { map = SortBrowserMethods; break; case DT_SORT_KEYS: - if ((WithCrypto & APPLICATION_PGP)) - map = SortKeyMethods; + map = SortKeyMethods; break; case DT_SORT_AUX: map = SortAuxMethods; @@ -1972,7 +1992,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, r = -1; break; } else if (DTYPE (option->type) == DT_ADDR) - rfc822_free_address ((ADDRESS **) option->data); + address_delete ((address_t **) option->data); else if (DTYPE (option->type) == DT_USER) /* to unset $user_ means remove */ hash_delete (ConfigOptions, option->option, @@ -1989,7 +2009,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, break; } - /* the $muttng_ variables are read-only */ + /* the $madmutt_ variables are read-only */ if (!FuncTable[DTYPE (option->type)].opt_from_string) { snprintf (err->data, err->dsize, _("$%s is read-only"), option->option); @@ -2131,7 +2151,8 @@ static int source_rc (const char *rcfile, BUFFER * err) #undef MAXERRS -static int parse_source (BUFFER * tmp, BUFFER * s, unsigned long data, +static int parse_source (BUFFER * tmp, BUFFER * s, + unsigned long data __attribute__ ((unused)), BUFFER * err) { char path[_POSIX_PATH_MAX]; @@ -2214,7 +2235,7 @@ char User_typed[LONG_STRING] = { 0 }; int Num_matched = 0; /* Number of matches for completion */ char Completed[STRING] = { 0 }; /* completed string (command or variable) */ -const char *Matches[MAX (NUMVARS, NUMCOMMANDS) + 1]; /* all the matches + User_typed */ +char *Matches[MAX (NUMVARS, NUMCOMMANDS) + 1]; /* all the matches + User_typed */ /* helper function for completion. Changes the dest buffer if necessary/possible to aid completion. @@ -2256,8 +2277,8 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs) if (numtabs == 1) { Num_matched = 0; m_strcpy(User_typed, sizeof(User_typed), pt); - p_clear(Matches, sizeof(Matches)); - p_clear(Completed, sizeof(Completed)); + p_clear(Matches, countof(Matches)); + p_clear(Completed, countof(Completed)); for (num = 0; Commands[num].name; num++) candidate (Completed, User_typed, Commands[num].name, sizeof(Completed)); @@ -2305,8 +2326,8 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs) if (numtabs == 1) { Num_matched = 0; m_strcpy(User_typed, sizeof(User_typed), pt); - p_clear(Matches, sizeof(Matches)); - p_clear(Completed, sizeof(Completed)); + p_clear(Matches, countof(Matches)); + p_clear(Completed, countof(Completed)); for (num = 0; MuttVars[num].option; num++) candidate(Completed, User_typed, MuttVars[num].option, sizeof(Completed)); @@ -2343,8 +2364,8 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs) if (numtabs == 1) { Num_matched = 0; m_strcpy(User_typed, sizeof(User_typed), pt); - p_clear(Matches, sizeof(Matches)); - p_clear(Completed, sizeof(Completed)); + p_clear(Matches, countof(Matches)); + p_clear(Completed, countof(Completed)); for (num = 0; menu[num].name; num++) candidate (Completed, User_typed, menu[num].name, sizeof(Completed)); /* try the generic menu */ @@ -2424,7 +2445,7 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos) } else if (DTYPE (option->type) == DT_ADDR) { rfc822_write_address (tmp, sizeof(tmp), - *((ADDRESS **) option->data), 0); + *((address_t **) option->data), 0); } else if (DTYPE (option->type) == DT_QUAD) m_strcpy(tmp, sizeof(tmp), vals[quadoption(option->data)]); @@ -2442,10 +2463,7 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos) map = SortBrowserMethods; break; case DT_SORT_KEYS: - if ((WithCrypto & APPLICATION_PGP)) - map = SortKeyMethods; - else - map = SortMethods; + map = SortKeyMethods; break; default: map = SortMethods; @@ -2481,7 +2499,7 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos) else return 0; - for (s = tmp, d = tmp2; *s && (d - tmp2) < sizeof(tmp2) - 2;) { + for (s = tmp, d = tmp2; *s && (d - tmp2) < ssizeof(tmp2) - 2;) { if (*s == '\\' || *s == '"') *d++ = '\\'; *d++ = *s++; @@ -2527,26 +2545,6 @@ int mutt_query_variables (LIST * queries) return 0; } -const char *mutt_getnamebyvalue (int val, const struct mapping_t *map) -{ - int i; - - for (i = 0; map[i].name; i++) - if (map[i].value == val) - return (map[i].name); - return NULL; -} - -int mutt_getvaluebyname (const char *name, const struct mapping_t *map) -{ - int i; - - for (i = 0; map[i].name; i++) - if (ascii_strcasecmp (map[i].name, name) == 0) - return (map[i].value); - return (-1); -} - static int mutt_execute_commands (LIST * p) { BUFFER err, token; @@ -2573,7 +2571,8 @@ void mutt_init (int skip_sys_rc, LIST * commands) struct utsname utsname; const char *p; char buffer[STRING], error[STRING]; - int i, default_rc = 0, need_pause = 0; + int default_rc = 0, need_pause = 0; + unsigned int i; BUFFER err; p_clear(&err, 1); @@ -2611,7 +2610,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 (); } @@ -2637,22 +2637,19 @@ void mutt_init (int skip_sys_rc, LIST * commands) uname (&utsname); /* some systems report the FQDN instead of just the hostname */ if ((p = strchr (utsname.nodename, '.'))) { - Hostname = str_substrdup (utsname.nodename, p); + Hostname = p_dupstr(utsname.nodename, p - utsname.nodename); p++; m_strcpy(buffer, sizeof(buffer), p); /* save the domain for below */ } else Hostname = m_strdup(utsname.nodename); -#ifndef DOMAIN -#define DOMAIN buffer - if (!p && getdnsdomainname (buffer, sizeof(buffer)) == -1) + if (!p && getdnsdomainname(buffer, sizeof(buffer)) == -1) Fqdn = m_strdup("@"); else -#endif /* DOMAIN */ - if (*DOMAIN != '@') { - Fqdn = p_new(char, m_strlen(DOMAIN) + m_strlen(Hostname) + 2); - sprintf (Fqdn, "%s.%s", NONULL (Hostname), DOMAIN); /* __SPRINTF_CHECKED__ */ + if (*buffer != '@') { + Fqdn = p_new(char, m_strlen(buffer) + m_strlen(Hostname) + 2); + sprintf (Fqdn, "%s.%s", NONULL(Hostname), buffer); /* __SPRINTF_CHECKED__ */ } else Fqdn = m_strdup(NONULL (Hostname)); @@ -2709,7 +2706,6 @@ void mutt_init (int skip_sys_rc, LIST * commands) p = "vi"; } Editor = m_strdup(p); - Visual = m_strdup(p); if ((p = getenv ("REPLYTO")) != NULL) { BUFFER buf, token; @@ -2738,14 +2734,11 @@ void mutt_init (int skip_sys_rc, LIST * commands) CurrentMenu = MENU_MAIN; - -#ifndef LOCALES_HACK /* Do we have a locale definition? */ if (((p = getenv ("LC_ALL")) != NULL && p[0]) || ((p = getenv ("LANG")) != NULL && p[0]) || ((p = getenv ("LC_CTYPE")) != NULL && p[0])) set_option (OPTLOCALES); -#endif #ifdef HAVE_GETSID /* Unset suspend by default if we're the session leader */ @@ -2773,18 +2766,18 @@ void mutt_init (int skip_sys_rc, LIST * commands) if (!Muttrc) { #if 0 - snprintf (buffer, sizeof(buffer), "%s/.muttngrc-%s", NONULL (Homedir), + snprintf (buffer, sizeof(buffer), "%s/.madmuttrc-%s", NONULL (Homedir), MUTT_VERSION); if (access (buffer, F_OK) == -1) #endif - snprintf (buffer, sizeof(buffer), "%s/.muttngrc", NONULL (Homedir)); + snprintf (buffer, sizeof(buffer), "%s/.madmuttrc", NONULL (Homedir)); if (access (buffer, F_OK) == -1) #if 0 - snprintf (buffer, sizeof(buffer), "%s/.muttng/muttngrc-%s", + snprintf (buffer, sizeof(buffer), "%s/.madmutt/madmuttrc-%s", NONULL (Homedir), MUTT_VERSION); if (access (buffer, F_OK) == -1) #endif - snprintf (buffer, sizeof(buffer), "%s/.muttng/muttngrc", + snprintf (buffer, sizeof(buffer), "%s/.madmutt/madmuttrc", NONULL (Homedir)); default_rc = 1; @@ -2802,15 +2795,15 @@ void mutt_init (int skip_sys_rc, LIST * commands) /* Process the global rc file if it exists and the user hasn't explicity requested not to via "-n". */ if (!skip_sys_rc) { - snprintf (buffer, sizeof(buffer), "%s/Muttngrc-%s", SYSCONFDIR, + snprintf (buffer, sizeof(buffer), "%s/Madmuttrc-%s", SYSCONFDIR, MUTT_VERSION); if (access (buffer, F_OK) == -1) - snprintf (buffer, sizeof(buffer), "%s/Muttngrc", SYSCONFDIR); + snprintf (buffer, sizeof(buffer), "%s/Madmuttrc", SYSCONFDIR); if (access (buffer, F_OK) == -1) - snprintf (buffer, sizeof(buffer), "%s/Muttngrc-%s", PKGDATADIR, + snprintf (buffer, sizeof(buffer), "%s/Madmuttrc-%s", PKGDATADIR, MUTT_VERSION); if (access (buffer, F_OK) == -1) - snprintf (buffer, sizeof(buffer), "%s/Muttngrc", PKGDATADIR); + snprintf (buffer, sizeof(buffer), "%s/Madmuttrc", PKGDATADIR); if (access (buffer, F_OK) != -1) { if (source_rc (buffer, &err) != 0) { fputs (err.data, stderr); @@ -2842,7 +2835,7 @@ void mutt_init (int skip_sys_rc, LIST * commands) /* warn about synonym variables */ if (!list_empty(Synonyms)) { - int i = 0; + i = 0; fprintf (stderr, _("Warning: the following synonym variables were found:\n")); for (i = 0; i < Synonyms->length; i++) { struct option_t* newopt = NULL, *oldopt = NULL; @@ -2887,7 +2880,8 @@ static int opt_cmp (const void* a, const void* b) { } /* callback for hash_map() to put all non-synonym vars into list */ -static void opt_sel_full (const char* key, void* data, +static void opt_sel_full (const char* key __attribute__ ((unused)), + void* data, unsigned long more) { list2_t** l = (list2_t**) more; struct option_t* option = (struct option_t*) data; @@ -2898,7 +2892,8 @@ static void opt_sel_full (const char* key, void* data, } /* callback for hash_map() to put all changed non-synonym vars into list */ -static void opt_sel_diff (const char* key, void* data, +static void opt_sel_diff (const char* key __attribute__ ((unused)), + void* data, unsigned long more) { list2_t** l = (list2_t**) more; struct option_t* option = (struct option_t*) data; @@ -2914,7 +2909,7 @@ static void opt_sel_diff (const char* key, void* data, /* dump out the value of all the variables we have */ int mutt_dump_variables (int full) { - int i = 0; + size_t i = 0; char outbuf[STRING]; list2_t* tmp = NULL; struct option_t* option = NULL;