X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-lua%2Fmadmutt.cpkg;h=fd56f52ae8ecb91cf00c9d4e0627656362501795;hb=1681dff7a1b69b0dad31d515c466439548b71f94;hp=9d1ffd7f4299372949a468d96909918b6d955e31;hpb=cc707c1e986b60f2c1c1932d0789038d465a7a59;p=apps%2Fmadmutt.git diff --git a/lib-lua/madmutt.cpkg b/lib-lua/madmutt.cpkg index 9d1ffd7..fd56f52 100644 --- a/lib-lua/madmutt.cpkg +++ b/lib-lua/madmutt.cpkg @@ -24,76 +24,70 @@ #include #include "../mutt.h" +@import "base.cpkg" -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_pwd(void) +static char *madmutt_init_username(void) { - char path[_POSIX_PATH_MAX]; - getcwd(path, sizeof(path)); - return path; + struct passwd *pw = getpwuid(getuid()); + return m_strdup(pw ? pw->pw_name : (getenv("USER") ?: "john_doe")); } -static const char *luaM_path_post(const char *val) +static char *madmutt_init_homedir(void) { - char path[PATH_MAX]; - _mutt_expand_path(path, sizeof(path), val, 0); - return path; + struct passwd *pw = getpwuid(getuid()); + return m_strdup(pw ? pw->pw_dir : (getenv("HOME") ?: "/")); } -@type bool = { - .kind = 'b'; - .ctype = unsigned : 1; -}; - -@type string_t = { - .kind = 's'; - .ctype = const char *; -}; - -@type path_t = { - .push = luaM_path_post($$); - .kind = 's'; - .ctype = char *; -}; - -@type quadopt_t = { - .kind = 'i'; - .check = luaM_checkquadopt($L, $$); - .ctype = unsigned : 2; -}; - #if defined(HAVE_QDBM) -# define HCACHE_BACKEND "qdbm" +# define HCACHE_BACKEND "qdbm" #elif defined(HAVE_GDBM) -# define HCACHE_BACKEND "gdbm" +# define HCACHE_BACKEND "gdbm" #elif defined(HAVE_DB4) -# define HCACHE_BACKEND "db4" +# define HCACHE_BACKEND "db4" #else -# define HCACHE_BACKEND "unknown" +# define HCACHE_BACKEND NULL #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 shell = madmutt_init_shell(); + 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; bool beep_new = 0; - const string_t pwd(void) = madmutt_pwd(); -} ml_core; + const string_t pwd(void) { + char path[_POSIX_PATH_MAX]; + getcwd(path, sizeof(path)); + RETURN(path); + }; +}; + +@package MTransport { + path_t sendmail = m_strdup(SENDMAIL " -eom -oi"); + + /* TODO: check it's NULL, hdrs or full */ + string_t dsn_notify = NULL; + + /* TODO: check it's never, delay, failure, success with ',' */ + string_t dsn_return = NULL; +}; /* vim:set ft=c: */