X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lua%2Fmadmutt.cpkg;h=270e198c48a28181c68442b16ba19f3a3f8ed02a;hp=f11fc65237f218df5eed0c0babc29b7da72e41f9;hb=0dc3054df348d3c9788ecf6aba028668c684a7bc;hpb=b1c9f537b475b3bc8f6517bb4d7008a411bb478e diff --git a/lib-lua/madmutt.cpkg b/lib-lua/madmutt.cpkg index f11fc65..270e198 100644 --- a/lib-lua/madmutt.cpkg +++ b/lib-lua/madmutt.cpkg @@ -25,10 +25,22 @@ #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) @@ -45,36 +57,68 @@ static const char *luaM_path_post(const char *val) 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 = m_strdup($$); }; @type quadopt_t = { .kind = 'i'; .check = luaM_checkquadopt($L, $$); - .ctype = quadopt_t; + .ctype = unsigned : 2; }; -@package madmutt { +#if defined(HAVE_QDBM) +# define HCACHE_BACKEND "qdbm" +#elif defined(HAVE_GDBM) +# define HCACHE_BACKEND "gdbm" +#elif defined(HAVE_DB4) +# define HCACHE_BACKEND "db4" +#else +# define HCACHE_BACKEND "unknown" +#endif + +@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; + 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: */