#include "../mutt.h"
-static const char *madmutt_init_shell(void)
+static char *madmutt_init_shell(void)
{
struct passwd *pw = getpwuid(getuid());
- return pw ? pw->pw_shell : (getenv("SHELL") ?: "/bin/sh");
+ return m_strdup(pw ? pw->pw_shell : (getenv("SHELL") ?: "/bin/sh"));
}
-static const char *madmutt_init_username(void)
+static char *madmutt_init_username(void)
{
struct passwd *pw = getpwuid(getuid());
- return pw ? pw->pw_name : (getenv("USER") ?: "john_doe");
+ return m_strdup(pw ? pw->pw_name : (getenv("USER") ?: "john_doe"));
}
-static const char *madmutt_init_homedir(void)
+static char *madmutt_init_homedir(void)
{
struct passwd *pw = getpwuid(getuid());
- return pw ? pw->pw_dir : (getenv("HOME") ?: "/");
+ return m_strdup(pw ? pw->pw_dir : (getenv("HOME") ?: "/"));
}
static const char *madmutt_pwd(void)
return path;
}
-static const char *luaM_path_post(const char *val)
-{
- char path[PATH_MAX];
- _mutt_expand_path(path, sizeof(path), val, 0);
- return path;
-}
-
@type bool = {
.kind = 'b';
.ctype = unsigned : 1;
};
@type string_t = {
- .kind = 's';
- .ctype = const char *;
+ .kind = 's';
+ .ctype = char *;
+ .dtor = p_delete($$);
+ .ctor = m_strdup($$);
};
@type path_t = {
- .push = luaM_path_post($$);
.kind = 's';
.ctype = char *;
+ .dtor = p_delete($$);
+ .ctor = luaM_pathnew($$);
};
@type quadopt_t = {
.ctype = unsigned : 2;
};
+@type rx_t = {
+ .kind = 's';
+ .ctype = rx_t *;
+ .check = luaM_checkrx($L, $$);
+ .push = ($$)->pattern;
+ .ctor = luaM_rxnew($$);
+ .dtor = rx_delete($$);
+};
+
#if defined(HAVE_QDBM)
# define HCACHE_BACKEND "qdbm"
#elif defined(HAVE_GDBM)
const string_t docdir = PKGDOCDIR;
const string_t hcache_backend = HCACHE_BACKEND;
- path_t dotlock = BINDIR "/mutt_dotlock";
- path_t editor = getenv("VISUAL") ?: getenv("EDITOR") ?: "vi";
- path_t shell = madmutt_init_shell();
- path_t username = madmutt_init_username();
- path_t homedir = madmutt_init_homedir();
- path_t tmpdir = getenv("TMPDIR") ?: "/tmp";
+ path_t dotlock = m_strdup(BINDIR "/mutt_dotlock");
+ path_t editor = m_strdup(getenv("VISUAL") ?: getenv("EDITOR") ?: "vi");
+ path_t shell = madmutt_init_shell();
+ path_t username = madmutt_init_username();
+ path_t homedir = madmutt_init_homedir();
+ path_t tmpdir = m_strdup(getenv("TMPDIR") ?: "/tmp");
+ rx_t gecos_mask = luaM_rxnew("^[^,]*");
quadopt_t quit = M_YES;
bool beep = 1;
} MCore;
@package MTransport {
- path_t sendmail = SENDMAIL " -eom -oi";
+ path_t sendmail = m_strdup(SENDMAIL " -eom -oi");
- string_t dsn_notify = NULL;
- string_t dsn_return = NULL;
+ string_t dsn_notify = NULL /* TODO: check it's NULL, hdrs or full */;
+ string_t dsn_return = NULL /* TODO: check it's never, delay, failure, success with ',' */;
} MTransport;
/* vim:set ft=c: */