#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 char *madmutt_init_username(void)
+{
+ struct passwd *pw = getpwuid(getuid());
+ return m_strdup(pw ? pw->pw_name : (getenv("USER") ?: "john_doe"));
+}
+
+static char *madmutt_init_homedir(void)
+{
+ struct passwd *pw = getpwuid(getuid());
+ return m_strdup(pw ? pw->pw_dir : (getenv("HOME") ?: "/"));
}
static const char *madmutt_pwd(void)
};
@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 = m_strdup($$);
};
@type quadopt_t = {
# define HCACHE_BACKEND "unknown"
#endif
-@package madmutt {
+@package MCore {
const string_t version = VERSION;
const string_t sysconfdir = SYSCONFDIR;
const string_t bindir = BINDIR;
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 sendmail = SENDMAIL " -eom -oi";
+ 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");
quadopt_t quit = M_YES;
bool beep = 1;
bool beep_new = 0;
const string_t pwd(void) = madmutt_pwd();
-} ml_core;
+} MCore;
+
+@package MTransport {
+ path_t sendmail = m_strdup(SENDMAIL " -eom -oi");
+
+ string_t dsn_notify = NULL;
+ string_t dsn_return = NULL;
+} MTransport;
/* vim:set ft=c: */