X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lua%2Fmadmutt.cpkg;h=ff9985ee28d0f2d2cc2094408491801eb9fa1b73;hp=5c2ebe7f21d0af7dd56a9f8751133515e914c793;hb=20e55d4252ca2db1fc2b1099acf8393c22903575;hpb=9946738a6a1c27a5602a14d1afe2eea2389732b2 diff --git a/lib-lua/madmutt.cpkg b/lib-lua/madmutt.cpkg index 5c2ebe7..ff9985e 100644 --- a/lib-lua/madmutt.cpkg +++ b/lib-lua/madmutt.cpkg @@ -24,6 +24,7 @@ #include #include +#include #include #include "../mutt.h" @@ -81,9 +82,40 @@ static char *madmutt_init_hostname(void) return m_strdup(NONULL(mod_core.shorthost)); } -#if defined(HAVE_QDBM) -# define HCACHE_BACKEND "qdbm" -#elif defined(HAVE_GDBM) +static void madmutt_update_cachedir(const char *dir) +{ + static char *cachedir = NULL; + char path[_POSIX_PATH_MAX]; + char buf[HUGE_STRING]; + struct stat st; + + _mutt_expand_path(path, sizeof(path), dir, 0); + if (lstat(path, &st) || !S_ISDIR(st.st_mode)) { + snprintf(buf, sizeof(buf), _("Directory %s not exist. Create it?"), + dir); + if (mutt_yesorno(buf, M_YES) == M_YES) + mkdir(path, 0750); + } + + if (lstat(path, &st) || !S_ISDIR(st.st_mode)) { + mutt_error(_("Cache directory not created!")); + return; + } + if (st.st_mode & 0027) { + snprintf(buf, sizeof(buf), + _("Directory %s is unsafe, do you want to use it ?"), dir); + if (mutt_yesorno(buf, M_YES) != M_YES) + return; + } + + m_strreplace(&cachedir, path); + mod_core.cachedir = cachedir; +} + + +#if defined(HAVE_TOKYOCABINET) +# define HCACHE_BACKEND "tokyocabinet" +#elif defined(HAVE_QDBM) # define HCACHE_BACKEND "gdbm" #elif defined(HAVE_DB4) # define HCACHE_BACKEND "db4" @@ -91,6 +123,12 @@ static char *madmutt_init_hostname(void) # define HCACHE_BACKEND NULL #endif +static void mod_core_init2(void) +{ + madmutt_update_cachedir("~/.cache/madmutt"); +} +#define mod_core_init() do { (mod_core_init)(); mod_core_init2(); } while (0) + @package mod_core { /* ** .pp @@ -123,12 +161,6 @@ static char *madmutt_init_hostname(void) */ const string_t hcache_backend = HCACHE_BACKEND; - /* - ** .pp - ** Contains the path of the \fTmadmutt_dotlock(1)\fP binary to be used by - ** Madmutt. - */ - path_t dotlock = m_strdup(BINDIR "/mutt_dotlock"); /* ** .pp ** This variable specifies which editor is used by Madmutt. @@ -164,8 +196,8 @@ static char *madmutt_init_hostname(void) ** Please be sure to really know what you are doing when changing this variable ** to configure a custom domain part of Message-IDs. */ - string_t hostname = madmutt_init_hostname(); string_t shorthost = madmutt_init_shorthost(); + string_t hostname = madmutt_init_hostname(); /* ** .pp @@ -273,6 +305,13 @@ static char *madmutt_init_hostname(void) RETURN(p ? p + 1 : (CurrentFolder ?: "")); } }; + + + const string_t cachedir = NULL; + void setcachedir(const string_t path) { + madmutt_update_cachedir(path); + RETURN(); + }; }; @package MTransport { @@ -287,7 +326,7 @@ static char *madmutt_init_hostname(void) /* ** .pp ** \fBNote:\fP you should not enable this unless you are using Sendmail - ** 8.8.x or greater or in connection with the SMTP support via libESMTP. + ** 8.8.x or greater. ** .pp ** This variable sets the request for when notification is returned. The ** string consists of a comma separated list (no spaces!) of one or more @@ -304,7 +343,7 @@ static char *madmutt_init_hostname(void) /* ** .pp ** \fBNote:\fP you should not enable this unless you are using Sendmail - ** 8.8.x or greater or in connection with the SMTP support via libESMTP. + ** 8.8.x or greater. ** .pp ** This variable controls how much of your message is returned in DSN ** messages. It may be set to either \fIhdrs\fP to return just the @@ -336,12 +375,11 @@ static char *madmutt_init_hostname(void) ** .pp ** \fBWarning:\fP do not set this variable unless you are using a version ** of sendmail which supports the \fT-B8BITMIME\fP flag (such as sendmail - ** 8.8.x) or in connection with the SMTP support via libESMTP. + ** 8.8.x). ** Otherwise you may not be able to send mail. ** .pp ** When \fIset\fP, Madmutt will either invoke ``$$sendmail'' with the \fT-B8BITMIME\fP - ** flag when sending 8-bit messages to enable ESMTP negotiation or tell - ** libESMTP to do so. + ** flag when sending 8-bit messages to enable ESMTP negotiation. */ bool use_8bitmime = 0; @@ -352,9 +390,8 @@ static char *madmutt_init_hostname(void) ** derive it from the "From:" header. ** ** .pp - ** \fBNote:\fP This information is passed - ** to sendmail command using the "-f" command line switch and - ** passed to the SMTP server for libESMTP (if support is compiled in). + ** \fBNote:\fP This information is passed to sendmail command using the + ** "-f" command line switch. */ bool use_envelope_from = 0;