From 0ef255ecd838c52dbbe0b35e954a932e017fc9fa Mon Sep 17 00:00:00 2001 From: Richard Russon Date: Mon, 9 Apr 2018 18:08:24 +0100 Subject: [PATCH] Adjust the precedence of some more config items --- init.c | 22 +++++++++------------- main.c | 45 +++++++++++++++++++-------------------------- 2 files changed, 28 insertions(+), 39 deletions(-) diff --git a/init.c b/init.c index 40d0b43d5..fbe92c1fe 100644 --- a/init.c +++ b/init.c @@ -3903,22 +3903,11 @@ int mutt_init(int skip_sys_rc, struct ListHead *commands) Matches = mutt_mem_calloc(MatchesListsize, sizeof(char *)); - /* Set standard defaults */ - for (int i = 0; MuttVars[i].name; i++) - { - set_default(&MuttVars[i]); - restore_default(&MuttVars[i]); - } - /* "$mailcap_path" precedence: config file, environment, code */ - const char *env_mc = mutt_str_getenv("MAILCAPS"); - if (env_mc) - mutt_str_replace(&MailcapPath, env_mc); + MailcapPath = mutt_str_strdup(mutt_str_getenv("MAILCAPS")); /* "$tmpdir" precedence: config file, environment, code */ - const char *env_tmp = mutt_str_getenv("TMPDIR"); - if (env_tmp) - mutt_str_replace(&Tmpdir, env_tmp); + Tmpdir = mutt_str_strdup(mutt_str_getenv("TMPDIR")); /* "$visual", "$editor" precedence: config file, environment, code */ const char *env_ed = mutt_str_getenv("VISUAL"); @@ -3930,6 +3919,13 @@ int mutt_init(int skip_sys_rc, struct ListHead *commands) mutt_str_replace(&Visual, env_ed); } + /* Set standard defaults */ + for (int i = 0; MuttVars[i].name; i++) + { + set_default(&MuttVars[i]); + restore_default(&MuttVars[i]); + } + CurrentMenu = MENU_MAIN; #ifndef LOCALES_HACK diff --git a/main.c b/main.c index 7f34a5ed6..61e78139d 100644 --- a/main.c +++ b/main.c @@ -70,6 +70,10 @@ #include "nntp.h" #endif +/** + * mutt_exit - Leave NeoMutt NOW + * @param code Value to return to the calling environment + */ void mutt_exit(int code) { mutt_endwin(); @@ -176,38 +180,33 @@ static int start_curses(void) /** * get_user_info - Find the user's name, home and shell - * @param cs Config Set * @retval 0 Success * @retval 1 Error + * + * Find the login name, real name, home directory and shell. */ static int get_user_info(void) { - const char *p = mutt_str_getenv("HOME"); - if (p) - HomeDir = mutt_str_strdup(p); + Username = mutt_str_strdup(mutt_str_getenv("USER")); + HomeDir = mutt_str_strdup(mutt_str_getenv("HOME")); + Shell = mutt_str_strdup(mutt_str_getenv("SHELL")); /* Get some information about the user */ struct passwd *pw = getpwuid(getuid()); if (pw) { - char rnbuf[STRING]; - - Username = mutt_str_strdup(pw->pw_name); + if (!Username) + Username = mutt_str_strdup(pw->pw_name); if (!HomeDir) HomeDir = mutt_str_strdup(pw->pw_dir); + if (!Shell) + Shell = mutt_str_strdup(pw->pw_shell); + char rnbuf[STRING]; RealName = mutt_str_strdup(mutt_gecos_name(rnbuf, sizeof(rnbuf), pw)); - Shell = mutt_str_strdup(pw->pw_shell); endpwent(); } - if (!Username) - { - p = mutt_str_getenv("USER"); - if (p) - Username = mutt_str_strdup(p); - } - if (!Username) { mutt_error(_("unable to determine username")); @@ -221,12 +220,7 @@ static int get_user_info(void) } if (!Shell) - { - p = mutt_str_getenv("SHELL"); - if (!p) - p = "/bin/sh"; - Shell = mutt_str_strdup(p); - } + Shell = mutt_str_strdup("/bin/sh"); return 0; } @@ -554,13 +548,12 @@ int main(int argc, char *argv[], char *envp[]) mutt_list_free(&commands); #ifdef USE_NNTP - /* "$news_server" precedence: command line, environment, config file, system file */ - const char *env_nntp = NULL; + /* "$news_server" precedence: command line, config file, environment, system file */ if (cli_nntp) mutt_str_replace(&NewsServer, cli_nntp); - else if ((env_nntp = mutt_str_getenv("NNTPSERVER"))) - mutt_str_replace(&NewsServer, env_nntp); - else if (!NewsServer) + if (!NewsServer) + NewsServer = mutt_str_strdup(mutt_str_getenv("NNTPSERVER")); + if (!NewsServer) { char buffer[1024]; char *server = mutt_file_read_keyword(SYSCONFDIR "/nntpserver", buffer, sizeof(buffer)); -- 2.40.0