projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drop str_[n]cat.
[apps/madmutt.git]
/
imap
/
util.c
diff --git
a/imap/util.c
b/imap/util.c
index
ecf5d53
..
8e6832b
100644
(file)
--- a/
imap/util.c
+++ b/
imap/util.c
@@
-13,14
+13,16
@@
#include "config.h"
#include "config.h"
+#include <lib-lib/mem.h>
+#include <lib-lib/ascii.h>
+
#include "mutt.h"
#include "mx.h" /* for M_IMAP */
#include "url.h"
#include "imap_private.h"
#include "mutt_ssl.h"
#include "mutt.h"
#include "mx.h" /* for M_IMAP */
#include "url.h"
#include "imap_private.h"
#include "mutt_ssl.h"
-#include "lib/mem.h"
-#include "lib/intl.h"
+#include <lib-lib/macros.h>
#include "lib/debug.h"
#include <stdlib.h>
#include "lib/debug.h"
#include <stdlib.h>
@@
-56,7
+58,7
@@
int imap_expand_path (char *path, size_t len)
url.path = mx.mbox;
rc = url_ciss_tostring (&url, path, len, U_DECODE_PASSWD);
url.path = mx.mbox;
rc = url_ciss_tostring (&url, path, len, U_DECODE_PASSWD);
-
mem_free
(&mx.mbox);
+
p_delete
(&mx.mbox);
return rc;
}
return rc;
}
@@
-94,21
+96,21
@@
int imap_parse_path (const char *path, IMAP_MBOX * mx)
mx->account.port = ImapPort;
mx->account.type = M_ACCT_TYPE_IMAP;
mx->account.port = ImapPort;
mx->account.type = M_ACCT_TYPE_IMAP;
- c =
str_dup
(path);
+ c =
m_strdup
(path);
url_parse_ciss (&url, c);
if (!(url.scheme == U_IMAP || url.scheme == U_IMAPS) ||
url_parse_ciss (&url, c);
if (!(url.scheme == U_IMAP || url.scheme == U_IMAPS) ||
- mutt_account_fromurl (&mx->account, &url) < 0) {
-
mem_free
(&c);
+ mutt_account_fromurl (&mx->account, &url) < 0
|| !*mx->account.host
) {
+
p_delete
(&c);
return -1;
}
return -1;
}
- mx->mbox =
str_dup
(url.path);
+ mx->mbox =
m_strdup
(url.path);
if (url.scheme == U_IMAPS)
mx->account.flags |= M_ACCT_SSL;
if (url.scheme == U_IMAPS)
mx->account.flags |= M_ACCT_SSL;
-
mem_free
(&c);
+
p_delete
(&c);
if ((mx->account.flags & M_ACCT_SSL) && !(mx->account.flags & M_ACCT_PORT))
mx->account.port = ImapsPort;
if ((mx->account.flags & M_ACCT_SSL) && !(mx->account.flags & M_ACCT_PORT))
mx->account.port = ImapsPort;
@@
-130,10
+132,10
@@
void imap_pretty_mailbox (char *path)
if (imap_parse_path (path, &target) < 0)
return;
if (imap_parse_path (path, &target) < 0)
return;
- tlen =
str_len
(target.mbox);
+ tlen =
m_strlen
(target.mbox);
/* check whether we can do '=' substitution */
if (mx_get_magic (Maildir) == M_IMAP && !imap_parse_path (Maildir, &home)) {
/* check whether we can do '=' substitution */
if (mx_get_magic (Maildir) == M_IMAP && !imap_parse_path (Maildir, &home)) {
- hlen =
str_len
(home.mbox);
+ hlen =
m_strlen
(home.mbox);
if (tlen && mutt_account_match (&home.account, &target.account) &&
!str_ncmp (home.mbox, target.mbox, hlen)) {
if (!hlen)
if (tlen && mutt_account_match (&home.account, &target.account) &&
!str_ncmp (home.mbox, target.mbox, hlen)) {
if (!hlen)
@@
-143,7
+145,7
@@
void imap_pretty_mailbox (char *path)
if (target.mbox[hlen] == *delim)
home_match = 1;
}
if (target.mbox[hlen] == *delim)
home_match = 1;
}
-
mem_free
(&home.mbox);
+
p_delete
(&home.mbox);
}
/* do the '=' substitution */
}
/* do the '=' substitution */
@@
-164,7
+166,7
@@
void imap_pretty_mailbox (char *path)
url_ciss_tostring (&url, path, 1024, 0);
}
url_ciss_tostring (&url, path, 1024, 0);
}
-
mem_free
(&target.mbox);
+
p_delete
(&target.mbox);
}
/* -- library functions -- */
}
/* -- library functions -- */
@@
-188,7
+190,7
@@
void imap_error (const char *where, const char *msg)
* Returns NULL on failure (no mem) */
IMAP_DATA *imap_new_idata (void)
{
* Returns NULL on failure (no mem) */
IMAP_DATA *imap_new_idata (void)
{
- return
mem_calloc (1, sizeof (IMAP_DATA)
);
+ return
p_new(IMAP_DATA, 1
);
}
/* imap_free_idata: Release and clear storage in an IMAP_DATA structure. */
}
/* imap_free_idata: Release and clear storage in an IMAP_DATA structure. */
@@
-197,10
+199,10
@@
void imap_free_idata (IMAP_DATA ** idata)
if (!idata)
return;
if (!idata)
return;
-
mem_free
(&(*idata)->capstr);
+
p_delete
(&(*idata)->capstr);
mutt_free_list (&(*idata)->flags);
mutt_free_list (&(*idata)->flags);
-
mem_free
(&((*idata)->cmd.buf));
-
mem_free
(idata);
+
p_delete
(&((*idata)->cmd.buf));
+
p_delete
(idata);
}
/*
}
/*
@@
-424,12
+426,12
@@
void imap_munge_mbox_name (char *dest, size_t dlen, const char *src)
{
char *buf;
{
char *buf;
- buf =
str_dup
(src);
+ buf =
m_strdup
(src);
imap_utf7_encode (&buf);
imap_quote_string (dest, dlen, buf);
imap_utf7_encode (&buf);
imap_quote_string (dest, dlen, buf);
-
mem_free
(&buf);
+
p_delete
(&buf);
}
void imap_unmunge_mbox_name (char *s)
}
void imap_unmunge_mbox_name (char *s)
@@
-438,13
+440,13
@@
void imap_unmunge_mbox_name (char *s)
imap_unquote_string (s);
imap_unquote_string (s);
- buf =
str_dup
(s);
+ buf =
m_strdup
(s);
if (buf) {
imap_utf7_decode (&buf);
if (buf) {
imap_utf7_decode (&buf);
-
strncpy (s, buf, str_len (s)
);
+
m_strcpy(s, m_strlen(s) + 1, buf
);
}
}
-
mem_free
(&buf);
+
p_delete
(&buf);
}
/* imap_wordcasecmp: find word a in word list b */
}
/* imap_wordcasecmp: find word a in word list b */
@@
-494,12
+496,12
@@
void imap_keepalive (void)
if (idata->ctx)
ctx = idata->ctx;
else {
if (idata->ctx)
ctx = idata->ctx;
else {
- ctx =
mem_calloc (1, sizeof (CONTEXT)
);
+ ctx =
p_new(CONTEXT, 1
);
ctx->data = idata;
}
imap_check_mailbox (ctx, NULL, 1);
if (!idata->ctx)
ctx->data = idata;
}
imap_check_mailbox (ctx, NULL, 1);
if (!idata->ctx)
-
mem_free
(&ctx);
+
p_delete
(&ctx);
}
}
}
}
@@
-515,9
+517,11
@@
int imap_wait_keepalive (pid_t pid)
int rc;
short imap_passive = option (OPTIMAPPASSIVE);
int rc;
short imap_passive = option (OPTIMAPPASSIVE);
+ int imap_askreconnect = quadoption (OPT_IMAPRECONNECT);
set_option (OPTIMAPPASSIVE);
set_option (OPTKEEPQUIET);
set_option (OPTIMAPPASSIVE);
set_option (OPTKEEPQUIET);
+ set_quadoption (OPT_IMAPRECONNECT, M_NO);
sigprocmask (SIG_SETMASK, NULL, &oldmask);
sigprocmask (SIG_SETMASK, NULL, &oldmask);
@@
-546,6
+550,7
@@
int imap_wait_keepalive (pid_t pid)
unset_option (OPTKEEPQUIET);
if (!imap_passive)
unset_option (OPTIMAPPASSIVE);
unset_option (OPTKEEPQUIET);
if (!imap_passive)
unset_option (OPTIMAPPASSIVE);
+ set_quadoption (OPT_IMAPRECONNECT, imap_askreconnect);
return rc;
}
return rc;
}