/* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. * * Copyright © 2007 Pierre Habouzit */ #include #include #include #include #include "../mutt.h" static const char *madmutt_init_shell(void) { struct passwd *pw = getpwuid(getuid()); return pw ? pw->pw_shell : (getenv("SHELL") ?: "/bin/sh"); } static const char *madmutt_pwd(void) { char path[_POSIX_PATH_MAX]; getcwd(path, sizeof(path)); 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 *; }; @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" #elif defined(HAVE_GDBM) # define HCACHE_BACKEND "gdbm" #elif defined(HAVE_DB4) # define HCACHE_BACKEND "db4" #else # define HCACHE_BACKEND "unknown" #endif @package madmutt { 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(); quadopt_t quit = M_YES; bool beep = 1; bool beep_new = 0; const string_t pwd(void) = madmutt_pwd(); } ml_core; /* vim:set ft=c: */