*/
#include <lib-lib/lib-lib.h>
-#include <sys/utsname.h>
#include <lib-lua/lib-lua.h>
#include <lib-sys/unix.h>
static int CurRCLine = 0;
/* prototypes for checking for special vars */
-static int check_dsn_return (const char* option, unsigned long val,
- char* errbuf, ssize_t errlen);
-static int check_dsn_notify (const char* option, unsigned long val,
- char* errbuf, ssize_t errlen);
static int check_history (const char* option, unsigned long val,
char* errbuf, ssize_t errlen);
/* this checks that numbers are >= 0 */
int (*check) (const char* option, unsigned long val,
char* errbuf, ssize_t errlen);
} SpecialVars[] = {
- { "dsn_notify", check_dsn_notify },
- { "dsn_return", check_dsn_return },
#if defined (USE_LIBESMTP) && (defined (USE_SSL) || defined (USE_GNUTLS))
{ "smtp_use_tls", mutt_libesmtp_check_usetls },
#endif
set_option (OPTREDRAWTREE);
}
-/* check whether value for $dsn_return would be valid */
-static int check_dsn_return (const char* option __attribute__ ((unused)), unsigned long p,
- char* errbuf, ssize_t errlen) {
- char* val = (char*) p;
- if (val && *val && m_strncmp(val, "hdrs", 4) != 0 &&
- m_strncmp(val, "full", 4) != 0) {
- if (errbuf)
- snprintf (errbuf, errlen, _("'%s' is invalid for $%s"), val, "dsn_return");
- return (0);
- }
- return (1);
-}
-
-/* check whether value for $dsn_notify would be valid */
-static int
-check_dsn_notify (const char* option __attribute__ ((unused)),
- unsigned long val, char* errbuf, ssize_t errlen)
-{
- const char *p = (const char*)val;
-
- while (p && *p) {
- const char *q = m_strchrnul(p, ',');
- int len = q - p;
-
- if (!m_strncmp(p, "never", len) && !m_strncmp(p, "delay", len)
- && !m_strncmp(p, "failure", len) && !m_strncmp(p, "success", len))
- {
- if (errbuf)
- snprintf(errbuf, errlen, _("'%.*s' is invalid for $%s"),
- len, p, "dsn_notify");
- return 0;
- }
-
- p = q + 1;
- }
-
- return 1;
-}
-
static int check_num (const char* option, unsigned long p,
char* errbuf, ssize_t errlen) {
if ((int) p < 0) {
p_clear(&token, 1);
while ((linebuf = mutt_read_line(linebuf, &buflen, f, &line)) != NULL) {
- conv = ConfigCharset && (*ConfigCharset) && Charset;
+ conv = ConfigCharset && (*ConfigCharset) && MCharset.charset;
if (conv) {
currentline = m_strdup(linebuf);
if (!currentline)
continue;
- mutt_convert_string (¤tline, ConfigCharset, Charset, 0);
+ mutt_convert_string (¤tline, ConfigCharset, MCharset.charset, 0);
}
else
currentline = linebuf;
void mutt_init (int skip_sys_rc, string_list_t * commands)
{
struct passwd *pw;
- struct utsname utsname;
const char *p;
char buffer[STRING], error[STRING];
int default_rc = 0, need_pause = 0;
Realname = m_strdup(rnbuf);
}
- /* And about the host... */
- uname (&utsname);
- /* some systems report the FQDN instead of just the hostname */
- if ((p = strchr (utsname.nodename, '.'))) {
- 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);
-
- if (!p && getdnsdomainname(buffer, sizeof(buffer)) == -1)
- Fqdn = m_strdup("@");
- else
- if (*buffer != '@') {
- Fqdn = p_new(char, m_strlen(buffer) + m_strlen(Hostname) + 2);
- sprintf (Fqdn, "%s.%s", NONULL(Hostname), buffer);
- }
- else
- Fqdn = m_strdup(NONULL (Hostname));
-
#ifdef USE_NNTP
{
FILE *f;
NewsServer = m_strdup(p);
#endif
- if ((p = getenv ("MAIL")))
- Spoolfile = m_strdup(p);
- else if ((p = getenv ("MAILDIR")))
+ if ((p = getenv("MAIL") ?: getenv("MAILDIR"))) {
Spoolfile = m_strdup(p);
- else {
+ } else {
#ifdef HOMESPOOL
mutt_concat_path(buffer, sizeof(buffer), NONULL(MCore.homedir), MAILPATH);
#else
if ((p = getenv ("EMAIL")) != NULL)
From = rfc822_parse_adrlist (NULL, p);
- charset_initialize();
-
/* Set standard defaults */
hash_map (ConfigOptions, mutt_set_default, 0);
hash_map (ConfigOptions, mutt_restore_default, 0);