summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--imap/browse.c13
-rw-r--r--imap/util.c13
-rw-r--r--mutt_socket.c13
3 files changed, 26 insertions, 13 deletions
diff --git a/imap/browse.c b/imap/browse.c
index 284ba2dd..daf02a2f 100644
--- a/imap/browse.c
+++ b/imap/browse.c
@@ -42,6 +42,7 @@ int imap_browse (char* path, struct browser_state* state)
{
IMAP_DATA* idata;
char buf[LONG_STRING];
+ char buf2[LONG_STRING];
char nsbuf[LONG_STRING];
char mbox[LONG_STRING];
char list_cmd[5];
@@ -154,7 +155,7 @@ int imap_browse (char* path, struct browser_state* state)
if (showparents)
{
- dprint (2, (debugfile, "imap_init_browse: adding parent %s\n", mbox));
+ dprint (3, (debugfile, "imap_init_browse: adding parent %s\n", mbox));
imap_add_folder (idata->delim, mbox, 1, 0, state, 1);
}
@@ -198,14 +199,18 @@ int imap_browse (char* path, struct browser_state* state)
/* Listing the home namespace, so INBOX should be included. Home
* namespace is not "", so we have to list it explicitly. We ask the
* server to see if it has descendants. */
- dprint (4, (debugfile, "imap_init_browse: adding INBOX\n"));
+ dprint (3, (debugfile, "imap_browse: adding INBOX\n"));
if (browse_add_list_result (idata, "LIST \"\" \"INBOX\"", state, 0))
goto fail;
}
nsup = state->entrylen;
- snprintf (buf, sizeof (buf), "%s \"\" \"%s%%\"", list_cmd, mbox);
+ dprint (3, (debugfile, "imap_browse: Quoting mailbox scan: %s -> ", mbox));
+ snprintf (buf, sizeof (buf), "%s%%", mbox);
+ imap_quote_string (buf2, sizeof (buf2), buf);
+ dprint (3, (debugfile, "%s\n", buf2));
+ snprintf (buf, sizeof (buf), "%s \"\" %s", list_cmd, buf2);
if (browse_add_list_result (idata, buf, state, 0))
goto fail;
@@ -219,7 +224,7 @@ int imap_browse (char* path, struct browser_state* state)
if (nsi[i].listable && !nsi[i].home_namespace) {
imap_add_folder(nsi[i].delim, nsi[i].prefix, nsi[i].noselect,
nsi[i].noinferiors, state, 0);
- dprint (4, (debugfile, "imap_init_browse: adding namespace: %s\n",
+ dprint (3, (debugfile, "imap_browse: adding namespace: %s\n",
nsi[i].prefix));
}
}
diff --git a/imap/util.c b/imap/util.c
index 97a0bce3..46a4c6e7 100644
--- a/imap/util.c
+++ b/imap/util.c
@@ -391,25 +391,24 @@ void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path)
/* imap_quote_string: quote string according to IMAP rules:
* surround string with quotes, escape " and \ with \ */
-void imap_quote_string (char *dest, size_t slen, const char *src)
+void imap_quote_string (char *dest, size_t dlen, const char *src)
{
char quote[] = "\"\\", *pt;
const char *s;
- size_t len = slen;
pt = dest;
s = src;
*pt++ = '"';
/* save room for trailing quote-char */
- len -= 2;
+ dlen -= 2;
- for (; *s && len; s++)
+ for (; *s && dlen; s++)
{
if (strchr (quote, *s))
{
- len -= 2;
- if (!len)
+ dlen -= 2;
+ if (!dlen)
break;
*pt++ = '\\';
*pt++ = *s;
@@ -417,7 +416,7 @@ void imap_quote_string (char *dest, size_t slen, const char *src)
else
{
*pt++ = *s;
- len--;
+ dlen--;
}
}
*pt++ = '"';
diff --git a/mutt_socket.c b/mutt_socket.c
index e628d65e..44771459 100644
--- a/mutt_socket.c
+++ b/mutt_socket.c
@@ -65,6 +65,7 @@ int mutt_socket_close (CONNECTION* conn)
int mutt_socket_write_d (CONNECTION *conn, const char *buf, int dbg)
{
int rc;
+ int len;
dprint (dbg, (debugfile,"> %s", buf));
@@ -74,14 +75,22 @@ int mutt_socket_write_d (CONNECTION *conn, const char *buf, int dbg)
return -1;
}
- if ((rc = conn->write (conn, buf, mutt_strlen (buf))) < 0)
+ len = mutt_strlen (buf);
+ if ((rc = conn->write (conn, buf, len)) < 0)
{
- dprint (1, (debugfile, "mutt_socket_write: error writing, closing socket\n"));
+ dprint (1, (debugfile,
+ "mutt_socket_write: error writing, closing socket\n"));
mutt_socket_close (conn);
return -1;
}
+ if (rc < len)
+ {
+ dprint (1, (debugfile,
+ "mutt_socket_write: ERROR: wrote %d of %d bytes!\n", rc, len));
+ }
+
return rc;
}