X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=imap%2Fbrowse.c;h=3c741b1637f66828a3d9ca7a3c24206e21221e2f;hp=54d608b79638b8f3b57ff748a46155bf8589b4e3;hb=f5a370338d87eba00bc8696636a90f6c50b05d14;hpb=c6b9d35ed9361e4defab9762a7480d5126405ae9 diff --git a/imap/browse.c b/imap/browse.c index 54d608b..3c741b1 100644 --- a/imap/browse.c +++ b/imap/browse.c @@ -10,22 +10,11 @@ /* Mutt browser support routines */ -#if HAVE_CONFIG_H -# include "config.h" -#endif +#include -#include -#include - -#include -#include -#include -#include - -#include "lib/debug.h" +#include #include "mutt.h" -#include "enter.h" #include "imap_private.h" /* -- forward declarations -- */ @@ -73,8 +62,8 @@ int imap_browse (char *path, struct browser_state *state) save_lsub = option (OPTIMAPCHECKSUBSCRIBED); unset_option (OPTIMAPCHECKSUBSCRIBED); - strfcpy (list_cmd, option (OPTIMAPLSUB) ? "LSUB" : "LIST", - sizeof (list_cmd)); + m_strcpy(list_cmd, sizeof(list_cmd), + option(OPTIMAPLSUB) ? "LSUB" : "LIST"); if (!(idata = imap_conn_find (&(mx.account), 0))) goto fail; @@ -82,7 +71,6 @@ int imap_browse (char *path, struct browser_state *state) if (!mx.mbox) { home_namespace = 1; mbox[0] = '\0'; /* Do not replace "" with "INBOX" here */ - mx.mbox = m_strdup(ImapHomeNamespace); if (mutt_bit_isset (idata->capabilities, NAMESPACE)) { mutt_message _("Getting namespaces..."); @@ -104,8 +92,6 @@ int imap_browse (char *path, struct browser_state *state) m_strcpy(mbox, sizeof(mbox), buf); n = m_strlen(mbox); - debug_print (3, ("mbox: %s\n", mbox)); - /* if our target exists and has inferiors, enter it if we * aren't already going to */ if (mbox[n - 1] != idata->delim) { @@ -125,8 +111,7 @@ int imap_browse (char *path, struct browser_state *state) mbox[n] = '\0'; } } - } - while (ascii_strncmp (idata->cmd.buf, idata->cmd.seq, SEQLEN)); + } while (m_strncmp(idata->cmd.buf.data, idata->cmd.seq, SEQLEN)); } /* if we're descending a folder, mark it as current in browser_state */ @@ -153,7 +138,6 @@ int imap_browse (char *path, struct browser_state *state) mbox[n] = '\0'; if (showparents) { - debug_print (3, ("adding parent %s\n", mbox)); imap_add_folder (idata->delim, mbox, 1, 0, state, 1); } @@ -193,17 +177,14 @@ 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. */ - debug_print (3, ("adding INBOX\n")); if (browse_add_list_result (idata, "LIST \"\" \"INBOX\"", state, 0)) goto fail; } nsup = state->entrylen; - debug_print (3, ("Quoting mailbox scan: %s:\n", mbox)); snprintf (buf, sizeof (buf), "%s%%", mbox); imap_quote_string (buf2, sizeof (buf2), buf); - debug_print (3, ("%s\n", buf2)); snprintf (buf, sizeof (buf), "%s \"\" %s", list_cmd, buf2); if (browse_add_list_result (idata, buf, state, 0)) goto fail; @@ -224,7 +205,6 @@ 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); - debug_print (3, ("adding namespace: %s\n", nsi[i].prefix)); } } @@ -250,20 +230,18 @@ int imap_mailbox_create (const char *folder) short n; if (imap_parse_path (folder, &mx) < 0) { - debug_print (1, ("Bad starting path %s\n", folder)); return -1; } if (!(idata = imap_conn_find (&mx.account, M_IMAP_CONN_NONEW))) { - debug_print (1, ("Couldn't find open connection to %s\n", mx.account.host)); goto fail; } - strfcpy (buf, NONULL (mx.mbox), sizeof (buf)); + m_strcpy(buf, sizeof(buf), NONULL(mx.mbox)); /* append a delimiter if necessary */ n = m_strlen(buf); - if (n && (n < sizeof (buf) - 1) && (buf[n - 1] != idata->delim)) { + if (n && (n < ssizeof (buf) - 1) && (buf[n - 1] != idata->delim)) { buf[n++] = idata->delim; buf[n] = '\0'; } @@ -297,15 +275,13 @@ int imap_mailbox_rename (const char *mailbox) IMAP_DATA *idata; IMAP_MBOX mx; char buf[LONG_STRING]; - char newname[SHORT_STRING]; + char newname[STRING]; if (imap_parse_path (mailbox, &mx) < 0) { - debug_print (1, ("Bad source mailbox %s\n", mailbox)); return -1; } if (!(idata = imap_conn_find (&mx.account, M_IMAP_CONN_NONEW))) { - debug_print (1, ("Couldn't find open connection to %s\n", mx.account.host)); goto fail; } @@ -321,7 +297,8 @@ int imap_mailbox_rename (const char *mailbox) } if (imap_rename_mailbox (idata, &mx, newname) < 0) { - mutt_error (_("Rename failed: %s"), imap_get_qualifier (idata->cmd.buf)); + mutt_error (_("Rename failed: %s"), + imap_get_qualifier(idata->cmd.buf.data)); mutt_sleep (1); goto fail; } @@ -347,7 +324,6 @@ static int browse_add_list_result (IMAP_DATA * idata, const char *cmd, IMAP_MBOX mx; if (imap_parse_path (state->folder, &mx)) { - debug_print (2, ("current folder %s makes no sense\n", state->folder)); return -1; } @@ -365,12 +341,11 @@ static int browse_add_list_result (IMAP_DATA * idata, const char *cmd, if (isparent) noselect = 1; /* prune current folder from output */ - if (isparent || str_ncmp (name, mx.mbox, m_strlen(name))) + if (isparent || m_strncmp(name, mx.mbox, m_strlen(name))) imap_add_folder (idata->delim, name, noselect, noinferiors, state, isparent); } - } - while ((ascii_strncmp (idata->cmd.buf, idata->cmd.seq, SEQLEN) != 0)); + } while ((m_strncmp(idata->cmd.buf.data, idata->cmd.seq, SEQLEN) != 0)); p_delete(&mx.mbox); return 0; @@ -399,17 +374,17 @@ static void imap_add_folder (char delim, char *folder, int noselect, /* render superiors as unix-standard ".." */ if (isparent) - strfcpy (relpath, "../", sizeof (relpath)); + m_strcpy(relpath, sizeof(relpath), "../"); /* strip current folder from target, to render a relative path */ - else if (!str_ncmp (mx.mbox, folder, m_strlen(mx.mbox))) - strfcpy (relpath, folder + m_strlen(mx.mbox), sizeof (relpath)); + else if (!m_strncmp(mx.mbox, folder, m_strlen(mx.mbox))) + m_strcpy(relpath, sizeof(relpath), folder + m_strlen(mx.mbox)); else - strfcpy (relpath, folder, sizeof (relpath)); + m_strcpy(relpath, sizeof(relpath), folder); /* apply filemask filter. This should really be done at menu setup rather * than at scan, since it's so expensive to scan. But that's big changes * to browser.c */ - if (!((regexec (Mask.rx, relpath, 0, NULL, 0) == 0) ^ Mask.not)) { + if (!((regexec (Mask.rx, relpath, 0, NULL, 0) == 0) ^ Mask.neg)) { p_delete(&mx.mbox); return; } @@ -418,7 +393,7 @@ static void imap_add_folder (char delim, char *folder, int noselect, (state->entry)[state->entrylen].name = m_strdup(tmp); /* mark desc with delim in browser if it can have subfolders */ - if (!isparent && !noinferiors && m_strlen(relpath) < sizeof (relpath) - 1) { + if (!isparent && !noinferiors && m_strlen(relpath) < ssizeof (relpath) - 1) { relpath[m_strlen(relpath) + 1] = '\0'; relpath[m_strlen(relpath)] = delim; } @@ -463,7 +438,7 @@ static int browse_get_namespace (IMAP_DATA * idata, char *nsbuf, int nsblen, if ((rc = imap_cmd_step (idata)) != IMAP_CMD_CONTINUE) break; - s = imap_next_word (idata->cmd.buf); + s = imap_next_word (idata->cmd.buf.data); if (ascii_strncasecmp ("NAMESPACE", s, 9) == 0) { /* There are three sections to the response, User, Other, Shared, * and maybe more by extension */ @@ -506,7 +481,6 @@ static int browse_get_namespace (IMAP_DATA * idata, char *nsbuf, int nsblen, } /* skip "" namespaces, they are already listed at the root */ if ((ns[0] != '\0') && (nsbused < nsblen) && (*nns < nsilen)) { - debug_print (3, ("adding %s\n", ns)); nsi->type = type; /* Cyrus doesn't append the delimiter to the namespace, * but UW-IMAP does. We'll strip it here and add it back @@ -567,8 +541,7 @@ static int browse_verify_namespace (IMAP_DATA * idata, &nsi->noinferiors, &delim) != 0) return -1; nsi->listable |= (name != NULL); - } - while ((ascii_strncmp (idata->cmd.buf, idata->cmd.seq, SEQLEN) != 0)); + } while ((m_strncmp(idata->cmd.buf.data, idata->cmd.seq, SEQLEN) != 0)); } return 0;