snprintf(AttachmentMarker, sizeof(AttachmentMarker), "\033]9;%" PRIu64 "\a",
mutt_rand64());
-#ifdef USE_NNTP
- p = mutt_str_getenv("NNTPSERVER");
- if (p)
- {
- FREE(&NewsServer);
- NewsServer = mutt_str_strdup(p);
- }
- else
- {
- p = mutt_file_read_keyword(SYSCONFDIR "/nntpserver", buffer, sizeof(buffer));
- NewsServer = mutt_str_strdup(p);
- }
-#endif
-
p = mutt_str_getenv("MAIL");
if (p)
SpoolFile = mutt_str_strdup(p);
char *new_magic = NULL;
char *dlevel = NULL;
char *dfile = NULL;
+#ifdef USE_NNTP
+ char *cli_nntp = NULL;
+#endif
struct Header *msg = NULL;
struct ListHead attach = STAILQ_HEAD_INITIALIZER(attach);
struct ListHead commands = STAILQ_HEAD_INITIALIZER(commands);
break;
#ifdef USE_NNTP
case 'g': /* Specify a news server */
- set_default_value("news_server", (intptr_t) mutt_str_strdup(optarg));
+ cli_nntp = optarg;
/* fallthrough */
case 'G': /* List of newsgroups */
flags |= MUTT_SELECT | MUTT_NEWS;
mutt_list_free(&commands);
+#ifdef USE_NNTP
+ /* "$news_server" precedence: command line, environment, config file, system file */
+ const char *env_nntp = NULL;
+ 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)
+ {
+ char buffer[1024];
+ char *server = mutt_file_read_keyword(SYSCONFDIR "/nntpserver", buffer, sizeof(buffer));
+ NewsServer = mutt_str_strdup(server);
+ }
+ if (NewsServer)
+ set_default_value("news_server", (intptr_t) mutt_str_strdup(NewsServer));
+#endif
+
/* Initialize crypto backends. */
crypt_init();