X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lua%2Fmadmutt.cpkg;h=88479db698c2d201fd0bbaa32d2e5e913ae89968;hp=458bdb5ff136aaa3132615c47b3a44dd8abb1a05;hb=dc726add2e8fe52be1f6859ea7cbe4651498eeb8;hpb=38fc1689b9f344f253841f5acd7bf79ed2f49b97 diff --git a/lib-lua/madmutt.cpkg b/lib-lua/madmutt.cpkg index 458bdb5..88479db 100644 --- a/lib-lua/madmutt.cpkg +++ b/lib-lua/madmutt.cpkg @@ -24,6 +24,7 @@ #include #include +#include #include #include "../mutt.h" @@ -72,15 +73,46 @@ static char *madmutt_init_hostname(void) return m_strdup("@"); if (*buffer != '@') { - int len = m_strlen(buffer) + m_strlen(MCore.shorthost) + 2; + int len = m_strlen(buffer) + m_strlen(mod_core.shorthost) + 2; char *res = p_new(char, len); - snprintf(res, len, "%s.%s", NONULL(MCore.shorthost), buffer); + snprintf(res, len, "%s.%s", NONULL(mod_core.shorthost), buffer); return res; } - return m_strdup(NONULL(MCore.shorthost)); + return m_strdup(NONULL(mod_core.shorthost)); } +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_QDBM) # define HCACHE_BACKEND "qdbm" #elif defined(HAVE_GDBM) @@ -91,7 +123,13 @@ static char *madmutt_init_hostname(void) # define HCACHE_BACKEND NULL #endif -@package MCore { +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 ** \fIThis is a read-only system property and specifies madmutt's @@ -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;